Skip to content

[Feature] Add Antigravity CLI as a local conversation source #8

Description

@tolmachevmaxim

Problem

Retain currently supports Gemini CLI as a local CLI source, but Antigravity CLI is a separate and increasingly important source for local AI conversations.

For users who moved most of their coding-agent work from Gemini CLI to Antigravity CLI, Retain now misses a large part of the actual conversation history. Gemini CLI support is useful, but it no longer covers the newer Antigravity CLI storage layout.

I checked the current Retain repo and Gemini CLI appears to be discovered from ~/.gemini/tmp/ via GeminiCLIParser. Antigravity CLI data is not covered by that path.

Proposed solution

Please add Antigravity CLI as a first-class local provider/source, ideally with automatic file watching like the other CLI providers.

Observed Antigravity locations on macOS include:

  • ~/.gemini/antigravity-cli/
  • ~/.gemini/antigravity-cli/conversations/*.db
  • ~/.gemini/antigravity-cli/brain/<conversation-id>/.system_generated/logs/transcript.jsonl
  • ~/.gemini/antigravity-cli/brain/<conversation-id>/.system_generated/logs/transcript_full.jsonl
  • ~/.gemini/antigravity-cli/cache/last_conversations.json

There are also legacy / migration-related locations that may be worth detecting:

  • ~/.gemini/antigravity/
  • ~/.gemini/antigravity/conversations/*.pb and *.db
  • ~/.gemini/antigravity-ide/
  • ~/.gemini/antigravity-ide/conversations/*.pb
  • ~/Library/Application Support/Antigravity/
  • ~/Library/Application Support/Antigravity IDE/

The most pragmatic first implementation may be to parse the JSONL transcripts under:

~/.gemini/antigravity-cli/brain/<conversation-id>/.system_generated/logs/transcript_full.jsonl

In my local sample, transcript JSONL rows contain fields like:

step_index, source, type, status, created_at, content

That looks much easier to support than starting from the protobuf files or SQLite blobs. The .db files under conversations/ appear to contain trajectory tables with blob payloads, for example steps, trajectory_meta, gen_metadata, etc., so they may be useful later but are probably a more expensive first target.

Suggested behavior:

  1. Add a new provider, e.g. antigravityCLI, separate from geminiCLI.
  2. Discover conversations from ~/.gemini/antigravity-cli/brain/*/.system_generated/logs/transcript_full.jsonl first.
  3. Use the conversation id from the brain/<conversation-id> directory as the stable external id.
  4. Use cache/last_conversations.json when available to enrich titles / workspace paths, but do not require it.
  5. Watch the Antigravity CLI directory for .jsonl changes.
  6. Optionally detect legacy ~/.gemini/antigravity* paths and either import what is parseable or show a clear unsupported-format message.

Alternatives

A weaker workaround is to manually export individual conversations or write a local conversion script from Antigravity transcripts into another provider format. That defeats Retain's main value: automatic, searchable aggregation across AI tools.

Another possible approach is to extend the existing Gemini CLI provider to also scan Antigravity paths. I think a separate provider is cleaner because Antigravity uses different paths, different formats, and migration/legacy folders that should be handled explicitly.

Additional context

Retain already lists Gemini CLI as a supported local source, but Antigravity CLI is now where a lot of Gemini CLI-style agent work has moved for me.

Relevant references:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions