Skip to main content

Connect your AI tools

chat-recall init does this for you. Manual equivalent in ~/.mcp.json:

{
"mcpServers": {
"chat-recall": {
"command": "chat-recall-mcp"
}
}
}

chat-recall-mcp is a relay, not the server. It finds the background daemon for your tool profile, starts one if there is none, and passes bytes to it. Every session on a machine therefore shares one loaded engine instead of carrying its own: a session costs about 50 MB rather than 87 MB, against a single shared daemon, and background sync runs in one process instead of racing a lock in all of them. The daemon exits 15 minutes after the last session closes.

Two knobs, both optional:

CHAT_RECALL_NO_DAEMON=1 # load the whole server in each session instead
CHAT_RECALL_DAEMON_IDLE_SECS=0 # keep the daemon resident (default 900)

If the daemon cannot be reached for any reason, the session loads the server itself and works exactly as it did before — slower, never broken.

chat-recall init installs the Claude Code hooks in every profile's settings.json. If you added only the MCP server, from a marketplace button or by hand, the MCP server installs them when it starts. You run nothing else.

To choose which hooks run, or to remove them:

chat-recall install-hooks --no-resume-hint # without the resume warning
chat-recall install-hooks --no-messages # without messages between sessions
chat-recall install-hooks --uninstall # remove ours; third-party hooks stay

After --uninstall the MCP server does not put them back.

HookWhen it firesWhat it does
SessionStartNew session (startup / clear)Injects the project-scoped wake-up bundle
UserPromptSubmitWhen you type a promptSearches past sessions; if a similar one exists, injects "you've worked on this before" into the agent's context
StopAfter every assistant turnAuto-saves topics, decisions, and tools to ~/.chat-recall/memory/
PreCompactBefore Claude Code compacts contextEmergency save so nothing is lost to compaction
SessionEndWhen the session closesEscalates the session's learnings in the background, so nothing is delayed
SessionStart, UserPromptSubmit, Stop, SessionEndEach turnMessages between sessions: tells the session its id, delivers what waits for it, reports its state
SessionStart, UserPromptSubmit, Stop (background)Until a message arrivesWaits for a message from another session and wakes this one, also when it is idle

The other AI tools get the message hook too, so their sessions can send and receive messages. The installer writes it only for a tool that is installed:

ToolWhereWhen a message arrives in the session
Codex~/.codex/hooks.jsonAt the next prompt. Approve the hook once with /hooks in Codex.
Antigravity~/.gemini/config/hooks.jsonAt the next prompt
Cursor~/.cursor/hooks.jsonWhen the agent stops, as a follow-up prompt
opencode~/.config/opencode/plugins/chat-recall-messages.jsWithin a few seconds, also when the session is idle
pi~/.pi/agent/extensions/chat-recall-messages.jsWithin a few seconds, also when the session is idle

Claude Code, opencode and pi wake an idle session. In Codex, Antigravity and Cursor, an idle session reads its messages when its user types next. chat-recall doctor shows the hook of each tool.