total-recall in Claude Code¶
Status¶
- MCP support: yes
- Hook support: yes (UserPromptSubmit, SessionStart, PreToolUse, Stop, ...)
- Session storage:
~/.claude/projects/<slug>/<session-uuid>.jsonl - Adapter complexity: ~100 LOC (thin wrapper over
lib.jsonl_walker)
Install the MCP server¶
total-recall is shipped as a plugin: the MCP server lives inside the
plugin directory and runs via uv so no manual venv work is required.
- Install the plugin (or pin the dev checkout) so
${CLAUDE_PLUGIN_ROOT}and${CLAUDE_PLUGIN_DATA}resolve in your Claude Code config. - Drop this into
~/.claude/claude_desktop_config.json(or the equivalent project-level config):
{
"mcpServers": {
"total-recall": {
"command": "uv",
"args": ["run", "--directory", "${CLAUDE_PLUGIN_ROOT}", "python", "-m", "mcp_server"],
"env": {"TOTAL_RECALL_DB_DIR": "${CLAUDE_PLUGIN_DATA}/total-recall"}
}
}
}
- Restart Claude Code (or reload via
/mcp). - Verify:
/mcpshould listtotal-recalland its 26 tools.
What you get¶
- 26 MCP tools (recall, get_operator_context, check_banned, get_voice, get_decisions, ...).
- Full hook integration: hooks under
hooks/fire on UserPromptSubmit, SessionStart, PreToolUse, Stop, etc. — seehooks/README.mdin the plugin. - Real-time session ingest: the live
.jsonlis tailed, so recall reflects the current conversation within seconds.
Session ingest¶
total-recall autodetects Claude Code sessions under ~/.claude/projects. Verify:
total-recall sources test claude_code
Caveats¶
- The plugin needs
uvon$PATHfor the snippet above. Install via the Astral installer if missing. ${CLAUDE_PLUGIN_DATA}is only expanded by Claude Code itself — if you launch the server outside Claude Code, setTOTAL_RECALL_DB_DIRexplicitly.- Sidechain (Task subagent) transcripts are stored in the same JSONL and ingested by default; they show up as
is_sidechain=1rows.