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.json for 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-search skill, 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.