No. The Web UI binds to 127.0.0.1 and there are zero outbound network
calls in the codebase. Nothing is sent to any cloud service.
You can verify with:
.venv/bin/python -m context_bridge.cli ui --host 127.0.0.1127.0.0.1 is unreachable from any other machine on the network. If you
want to access the UI from another device on your LAN, use
--host 0.0.0.0 (and be aware that anyone on your network can then read
your prompts).
No. We open IDE storage files read-only (with SQLite's
mode=ro&immutable=1 URI for .vscdb files). We do not modify
configuration, settings, MCP setup, extensions, or chat history of any
IDE.
| File | Contents |
|---|---|
data/index.db |
SQLite with one row per session (the full normalized JSON), plus FTS5 indexes |
data/semantic_index.pkl |
Cached embedding vectors (built when you click Re-index) |
data/icons/* |
Extracted app icons / bundled SVG fallbacks |
Delete the data/ folder to wipe everything ContextBridgeAI knows about.
The initial scrape walks every adapter and serializes every transcript into SQLite. On a Mac with ~2 700 sessions across 13 adapters, this takes ~10-30 seconds end-to-end. The biggest contributors:
- Cursor: ~100 k bubbles to join
- Codex CLI: ~200 rollouts with up to 500 turns each
- Kiro: ~25 conv directories × multiple execution JSONs
All subsequent loads use the cached data/index.db and start
instantly.
We tried it. Two problems:
- SQLite databases mutate via
*-walfiles (Write-Ahead Logging); the OS-level file-change events fire unpredictably. watchdogadds a heavy dependency that doesn't reliably catch the exact "session was updated" moment anyway.
The 3-second poll costs ~5 ms of CPU per cycle (sum of os.stat calls
across all watched files). For the latency UX we want, that's an obvious
trade.
Yes:
CONTEXT_BRIDGE_WATCH_INTERVAL=1 make ui # 1-second pollOr disable it entirely if you don't need live updates:
CONTEXT_BRIDGE_NO_WATCH=1 make uiThe semantic-vector matrix has to be loaded into memory on the first search after a fresh start (a few hundred MB for ~3 000 sessions with sentence-transformers, much smaller for the hashed-TF-IDF fallback). Subsequent searches reuse the in-memory matrix and are instant.
Because you haven't generated any Continue.dev sessions on this Mac. The adapter is fully working — it just has nothing to read. Open a Continue chat in VS Code and within 3 seconds the watcher will pick it up.
Google encrypts Gemini conversation files (*.pb) on disk. The
plaintext is not recoverable without Google's private key. To still give
you a useful timeline, we emit a placeholder transcript per file showing
the file name, size, timestamps, and a note explaining the encryption.
Open the Antigravity app itself to view the actual chat.
Cursor stores its data in a 2 GB SQLite file (globalStorage/state.vscdb).
We extract every composerData:* chat and join it with all
bubbleId:*:* rows. If you see a low count, it's likely because you
recently logged into a new account or wiped Cursor's storage. Run
cli test-extract to see what's actually on disk.
Windsurf's chat_state/*.pb files are protobuf without a published
schema. We use the salvage pattern (extract long printable byte runs)
which produces a searchable text dump but loses turn boundaries. If
Codeium ever publishes the schema, we can do better — PRs welcome.
- Make sure you ran
make installand the venv exists (ls .venv). - Run the diagnostic:
Every adapter should report whether it's
.venv/bin/python -m context_bridge.cli test-extract
available=True/Falseand how many sessions it found. - If an adapter says
available=Truebutextracted: 0, the source directory exists but has no parseable content. Check the path listed in ADAPTERS.md.
Click the yellow Re-index button in the UI header. Or from the CLI:
.venv/bin/python -m context_bridge.cli index.venv/bin/python -m context_bridge.cli ui --port 8770 # any free portThe watcher detects file changes by (size, mtime). If your filesystem
isn't updating mtimes (rare, but happens on some networked drives),
force a re-scrape:
.venv/bin/python -m context_bridge.cli indexmake clean # removes .venv/ and data/
rm -rf . # delete the project folderNo global state is left behind — ContextBridgeAI doesn't install any system-wide files, daemons, or configurations.
The architecture is OS-agnostic, but most current adapters use
~/Library/Application Support/... paths that are macOS-specific. For
each adapter we'd need to add the equivalent Linux (~/.config/...,
~/.local/share/...) and Windows (%APPDATA%\...) paths. PRs welcome.
That requires fundamentally different architecture (auth, multi-tenant storage, remote sync agent). Out of scope for the local tool, but the groundwork is here if someone wants to fork it.
An earlier prototype did. The problem: MCP today has no way for a server to observe what an agent is doing turn-by-turn — only respond when called. So an MCP-only ContextBridge would need every agent to voluntarily call our tool every turn. The file-scraping approach gives us 100 % coverage without that cooperation. (We'd happily revisit MCP if/when the spec adds a turn-subscription primitive.)