Adding memory to Cherry Studio
a desktop app running Claude Code — and one snapshot per stream chunk
Cherry Studio runs Claude Code sessions from a desktop app, and it writes them as ordinary Claude Code transcripts under its own data directory. So the sessions are readable — but they are the app's, not the CLI's, and deja reports them as Cherry Studio rather than folding them into Claude Code: a reader should see which app the work happened in.
Reading what is already there
deja index
Agents on Cherry Studio's other two runtimes, pi and dsh, keep their logs beside the Claude ones, under Data/Agents/.pi/sessions and Data/Agents/.dsh/sessions; deja reads those too and files them under Cherry Studio. If you moved the data directory in the app's settings, the new place is read from ~/.cherrystudio/boot-config.json.
One difference from a stock Claude Code store matters for text rather than for tokens. Cherry Studio appends the same API call three or four times as the response streams — a new uuid each time, the same request id, the text growing. Read plainly that turns one reply into three messages, each a prefix of the next, so a recall can quote half a sentence and deja show prints the answer twice before finishing it. deja collapses the run and keeps the whole answer.
Getting recall into the app
deja install cherrystudio deja install cherrystudio-auto # also the hooks
Cherry Studio keeps its MCP servers in its own SQLite store, seeded from a built-in list, so there is no config file to write and writing into a running app's database is not an installer's job. What the app has is import: Settings → MCP → Import from JSON. The command writes that file — <config>/deja/cherrystudio-mcp.json — and says where to point it. The .mcpb bundle from the latest release is the same server through the app's other import path.
Once imported, the agent has 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.
deja doctor reads the app's server list from Data/cherrystudio.sqlite, read-only, and says not imported until one of them runs deja mcp. If deja moves, re-import the file: rewriting it does not change the copy the app already has.
Recall on its own
Cherry Studio's own agents run Claude Code with Data/Agents/.claude as their config directory, so deja install cherrystudio-auto adds Claude Code's hooks in that directory's settings.json: the project digest at session start, recall on each prompt, a file's history before an edit and the fix after a failed command. Two kinds of agent get none of it, by the app's design: the sealed built-in Support agent loads no settings, and an external-CLI provider reads only the project's settings. The registry entry has the details.
The part that is not about this harness
The index covers every agent's transcripts on the machine — forty-three of them, each in its own format — so a session you ran in the app answers a question asked in Claude Code or Cursor later. 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 Cherry Studio session format
Found this useful? Star deja-vu on GitHub.