┌─ palinode ─┐
│ ░░░░░░░░░░ │
│ ▓▓▓▓▓▓▓▓▓▓ │
│ ██████████ │
└────────────┘
Audit-grade memory for AI agents. Every stored claim can carry an explicit epistemic status (fact / inference / open_question / unverified), typed links to the evidence that backs or contradicts it, and a verifiable quote-level citation to its source. MCP-first, so one memory works in every editor.
Agent memory is becoming a commodity. Auditable agent memory is not: Palinode is the memory layer where a remembered fact says how strongly it is believed and what evidence backs it — and where every fact is a line in a git-versioned markdown file, readable, diffable, attributable to the commit that recorded it, and revertible when it's wrong. An unmarked memory is unmarked, never silently promoted to fact. No black-box vector store you have to trust.
Your agent's memory is a folder of markdown files. Palinode indexes them with hybrid search, compacts them with an LLM, and serves them through MCP — so the same memory works in Claude Code, Cursor, Windsurf, Zed, VS Code (Continue/Cline), and any other MCP-compatible editor. Bring your own Obsidian vault, or use Palinode as one: palinode init --obsidian /path/to/vault scaffolds a full vault with graph defaults, daily-notes wiring, and an LLM-maintained wiki contract. Enterprises can govern AI memory the same way they govern code. If every service crashes, cat still works.
A palinode is a poem that retracts what was said before and says it better. That's what memory compaction does.
Built by Paul Kyle at phasespace-labs. See
| Platform | Session Skill Path | MCP Config |
|---|---|---|
| Claude Code CLI | ~/.claude/skills/ |
~/.claude.json |
| Claude Desktop | ~/.claude/skills/ |
claude_desktop_config.json |
| Cursor | .cursor/skills/ |
.cursor/mcp.json |
| VS Code + Claude (Continue / Cline) | ~/.claude/skills/ |
see |
| JetBrains + Claude | ~/.claude/skills/ |
~/.claude.json |
| Antigravity IDE | .agent/skills/ |
native 3-dot MCP menu |
| Codex CLI | N/A (no skills) | ~/.codex/config.toml |
| Pi | N/A (native extension) |
All platforms share the same MCP server — install once on your server, connect from any IDE.
Most agent memory is a black box. You can't read it, you can't diff it, you can't grep it when the vector DB is down. Palinode bets on plain files as the source of truth and builds everything else as a derived index.
Files (markdown + YAML frontmatter)
↓ watched
Index (SQLite-vec vectors + FTS5 keywords, single .db file)
↓ queried by
Interfaces (MCP server, REST API, CLI, OpenClaw plugin)
↓ compacted by
Consolidation (structured operations → validation and application → git commits)
That's the whole architecture. One directory of .md files, one SQLite database, one API server. No Postgres, no Redis, no cloud dependency.