Adding memory to Antigravity
it records every conversation and starts each one from nothing
Antigravity writes a transcript per brain — ~/.gemini/antigravity*/brain/<id>/.system_generated/logs/transcript.jsonl — and it can reopen a conversation. That is resumption, not memory: the next conversation starts from nothing, and nothing in it knows what you did in Claude Code or Codex in the same repo last week. This page is about adding that.
What Antigravity already has
The transcripts, a way back into one, and a customization surface: a directory under a customization root's plugins/ marked by plugin.json, where everything beside the marker — hooks.json, mcp_config.json, skills/, rules/ — is ingested automatically.
Adding recall
deja install antigravity-auto
Four files, all reversible with deja uninstall antigravity-auto:
- The MCP server in
~/.gemini/config/mcp_config.json, so the model can search past sessions, read one in full, see a file's history, ask what fixed an error, or store a decision. - The plugin at
~/.gemini/config/plugins/deja/—plugin.jsonas the marker andhooks.jsonwiringPreInvocationtodeja hook-antigravitywith a 10-second timeout. - The skill at
plugins/deja/skills/deja-history/SKILL.md, which the plugin directory ingests along with the rest. - The launcher at
~/.config/deja/bin/deja-hook, which the hook command names instead of this build, so the wiring survives the binary moving.
Three details settled by running antigravity-cli 1.1.13 rather than by reading its docs:
- The customization root is the same
~/.gemini/configthat holdsmcp_config.json. The docs also name.agents/, but a probe placed there never fired. - Without
plugin.jsonthe directory is not a plugin, andhooks.jsonbeside it is ignored with no error. PreInvocationis the only event whose output the model sees.PreToolUsefires but its reason never arrives, andPostToolUsehas to answer with an empty object.
So one event carries both channels: the project digest on the first invocation, and the history your prompt is about on the ones after it — read out of the transcriptPath the hook is handed, because Antigravity has no per-prompt event of its own.
What arrives
An injected step before the model call: the digest once per conversation, then at most one short block when your own history answers what you just asked. Silence is the common case, and an injection is capped at 1,536 bytes per prompt and about 4 KB per tool call. What memory costs has the measured comparison.
The part that is not about Antigravity
The index covers every agent's transcripts on the machine — thirty-four of them, each in its own format — so a fix found in Claude Code answers a question asked in Antigravity, including sessions from before any of this was installed. A transcript a client later deletes stays searchable; only deja forget drops one on purpose. 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 Antigravity session format
Found this useful? Star deja-vu on GitHub.