Bundle
dsh-antigravity-bridge
Google Antigravity conversations for DeepSeek Harness — list, read and import local Antigravity SQLite sessions as DSH sidebar sessions.
- Source
- qvsix
- License
- MIT
- Updated
- Updated 20 hours ago
Readme
# dsh-antigravity-bridge A Cordis plugin that opens Google Antigravity conversations inside DeepSeek Harness. Antigravity stores each conversation as SQLite + protobuf blobs under `~/.gemini/antigravity/conversations/<cascade_id>.db`; this plugin reads them and exposes them as native DSH tools and slash commands. ## Tools | Tool | Description | |---|---| | `antigravity_list` | Recent conversations (id, timestamp, steps, title). Supports `limit`/`offset` | | `antigravity_read` | Read one conversation as cleaned text (user prompts, tool results, summaries, background task output). Supports `max_chars` | | `antigravity_import` | Convert one conversation into a DSH session (`session.jsonl.zstd`), attach it to a workspace, and return a `conversation://` link | ## Slash commands (`/` autocomplete) Run directly, no need to ask the agent: | Command | Description | |---|---| | `/antigravity-list [N]` | Recent conversations (find IDs) | | `/antigravity-read <cascade_id>` | Read one conversation | | `/antigravity-import <cascade_id \| latest>` | Import as a DSH session. Bare command shows the 5 most recent plus usage | ## Requirements - Python 3 (stdlib only, no dependencies) — override via `ANTIGRAVITY_PYTHON` - `zstd` CLI (for import compression, ships with the DSH host) - Antigravity conversations default to `~/.gemini/antigravity/conversations` (override via `ANTIGRAVITY_CONVERSATIONS` or the `conversations_dir` argument) - `DSH_HOME` (falls back to the macOS default `~/Library/Application Support/dsh-desktop/harness`) ## Install ```sh dsh plugin --profile web add dsh-antigravity-bridge ``` Local path install (no build step — `src/index.js` + `decoder/*.py` run as-is): ```sh dsh plugin --profile web add /path/to/dsh-antigravity-bridge ``` ## How it works 1. `decoder/antigravity_decode.py` copies the `.db` to tmp first (avoids SQLite journal issues) and heuristically decodes `steps.step_payload` protobuf blobs (`type 14=user`, `132/15=tool`, `23=summary`, `101=background task`). 2. `antigravity_import` builds a spec-compliant DSH session log at `sessions/<projectKey(cwd)>/session-<cascade_id>/session.jsonl.zstd` (atomic tmp+rename write) and attaches it through the **sanctioned path**: `workspaceRegistry.resolveByPath` + `attachSession` while running (same write-chain as native flows, sidebar updates without restart), atomic `workspace.json` edit as fallback for profiles without a registry. (`projectKey`/`encodeSegment` mirror `@deepseek-ai/dsh-session-persistence-jsonl`) 3. `session_projcache` is intentionally untouched. The backend materializes projections from the session log on first open (verified in practice). 4. Re-importing is idempotent — returns the existing link instead of overwriting. ## Sidebar-plugin conflicts Effectively none. `attachSession` is the same funnel native flows use, so `dsh-better-sidebar` / `dsh-archived-chats` / `dsh-rewind-plugin` see imported sessions like any ordinary session. Imports run once per explicit invocation — no background writes, no projcache edits, no global state changes. ## Check ```sh npm run check # node --check + python py_compile python3 decoder/antigravity_decode.py list --limit 5 ``` ## License [MIT](LICENSE)
Install
dsh plugin --profile web add github:qvsix/dsh-antigravity-bridge
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-antigravity-bridge from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.