Adding memory to Kilo Code
two stores, no hooks yet — so recall is a tool it reaches for
Kilo Code keeps two stores, and which one holds your history depends on how you use it. The extension writes Roo's task shape under the editor's global storage — tasks/<taskId>/api_conversation_history.json — and the CLI writes OpenCode's message schema to ~/.local/share/kilo/kilo.db. Kilo vendors OpenCode and its own legacy-migration imports the task directory into that database, so the task files are the history of anyone who used Kilo before the migration and the database is where it goes afterwards. deja reads both.
Adding recall
deja install kilocode
That writes two things:
- The MCP server, into
<globalStorage>/kilocode.kilo-code/settings/mcp_settings.jsonfor every host that carries the extension. One tool with a mode: search past sessions, read one in full, see a file's history, ask what fixed an error, ask how a command is really run here, get the commands and files this project's past sessions worked with, store a decision. - The
deja-searchskill, into~/.kilocode/skills, which is where Kilo's loader looks first. It is what tells the model when to look: before re-debugging an error, when you say "didn't we fix this".
On a machine with the CLI and no editor, the skill is still written and the run says so rather than reporting a server it wired nowhere.
Why there is no session-start injection
Kilo has no lifecycle hooks. It is a Roo fork, and Roo's Claude Code-style hooks system is still in flight upstream — PR #10785 among others — so there is no event deja can answer and recall is something the model reaches for. The day one of those merges, auto-recall becomes work rather than a promise; until then the registry entry records it as a gap.
Reading the CLI store
The database half needs the sqlite3 CLI, and deja doctor says so by name when it is missing rather than reporting a store with no sessions in it.
The part that is not about this harness
The index covers every agent's transcripts on the machine — thirty-four of them, each in its own format — so a fix found in Kilo Code answers a question asked in Claude Code, and the Roo tasks you had before switching are read too. Nothing here writes memories, so there is nothing to hallucinate into your history; indexing and search are local, and credentials are stripped as the index is built (privacy).
Getting started · Switching between agents · The Kilo Code session format
Found this useful? Star deja-vu on GitHub.