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.
| Hook | When it fires | What it does |
|---|---|---|
SessionStart | New session (startup / clear) | Injects the project-scoped wake-up bundle |
UserPromptSubmit | When you type a prompt | Searches past sessions; if a similar one exists, injects "you've worked on this before" into the agent's context |
Stop | After every assistant turn | Auto-saves topics, decisions, and tools to ~/.chat-recall/memory/ |
PreCompact | Before Claude Code compacts context | Emergency save so nothing is lost to compaction |
SessionEnd | When the session closes | Escalates the session's learnings in the background, so nothing is delayed |
SessionStart, UserPromptSubmit, Stop, SessionEnd | Each turn | Messages between sessions: tells the session its id, delivers what waits for it, reports its state |
SessionStart, UserPromptSubmit, Stop (background) | Until a message arrives | Waits 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:
| Tool | Where | When a message arrives in the session |
|---|---|---|
| Codex | ~/.codex/hooks.json | At the next prompt. Approve the hook once with /hooks in Codex. |
| Antigravity | ~/.gemini/config/hooks.json | At the next prompt |
| Cursor | ~/.cursor/hooks.json | When the agent stops, as a follow-up prompt |
| opencode | ~/.config/opencode/plugins/chat-recall-messages.js | Within a few seconds, also when the session is idle |
| pi | ~/.pi/agent/extensions/chat-recall-messages.js | Within 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.