AI Prompt Extractor & Conversation History Browser for Cursor, Claude Code, Codex CLI, Rovo Dev, Kiro, Windsurf, Antigravity, VS Code Copilot, Cline, Continue, Zed, Qodo Gen, and Gemini CLI
The fastest way to browse, search, and export every AI prompt you've ever written β across every agentic IDE and AI coding CLI on your Mac.
A local, privacy-first prompt history viewer Β· a Claude Code prompt extractor Β· a Cursor chat history exporter Β· a Codex CLI session viewer Β· a Rovo Dev session log analyzer Β· and a prompt verification tool β all in one app.
Quick Start Β· Features Β· Supported IDEs Β· Screenshots Β· Docs
ContextBridgeAI is a local, privacy-first prompt extractor and session history browser for AI coding tools. It reads the on-disk session storage of 13 popular agentic IDEs and AI command-line tools, normalizes their conversations into one common schema, and gives you a single Web UI to:
- Browse every chat from every IDE in one place β grouped by app and date
- Search across all your AI prompts with hybrid BM25 keyword + semantic embedding search (fused with Reciprocal Rank Fusion)
- Export any session as plain text, markdown, or JSON β for prompt engineering, debugging, blog posts, audits, or feeding context back to another LLM
- Verify prompt fidelity β see the exact reconstructed system prompt, tool calls, tool results, and assistant turns that were really used
- Live-update β a 3-second file watcher picks up new chats from any IDE without you lifting a finger
Use cases this app solves:
- π§ Prompt extraction from Cursor, Claude Code, Codex CLI, Rovo Dev, etc.
- π Cross-IDE prompt search β "find every chat where I discussed MCP"
- π Prompt verification β see the actual system prompt your agent sees
- π Personal AI knowledge base β your own searchable archive of every conversation
- π§ͺ Prompt engineering & debugging β compare how Cursor vs. Claude Code vs. Codex CLI answered the same question
- πΎ Local backup of cloud-synced agent conversations
- πͺ Migration helper β moving from one AI IDE to another, take your conversation history with you
| Problem | How ContextBridgeAI solves it |
|---|---|
| Every AI IDE locks your conversation history into its own private format | One normalized schema across 13 tools β Cursor's SQLite, Claude Code's JSONL, Codex CLI's rollouts, Kiro's protobufs, all readable in one UI |
| You forgot which IDE you asked that question in | Cross-IDE search β type a query, get hits from Cursor, Rovo Dev, and Claude Code at once |
| You want to verify what your agent actually sent to the LLM | Plain-text reconstruction shows the exact <SYSTEM>β¦<USER>β¦<ASSISTANT>β¦ blob |
| You want to back up your prompt history before uninstalling a tool | Local SQLite + JSON exports β own your data |
| You want hybrid search, not just full-text grep | BM25 (SQLite FTS5) + semantic embeddings (sentence-transformers) fused with RRF |
ContextBridgeAI ships with 13 dedicated adapters, each carefully written to handle that tool's private storage format:
| IDE | Fidelity | What we extract | Storage |
|---|---|---|---|
| Cursor | β β β β β | Composer chats, bubble messages, tool calls, model info | state.vscdb (SQLite) |
| VS Code + GitHub Copilot Chat | β β β β β | Per-request user/assistant turns + tool invocations | chatSessions/*.json |
| Antigravity (Google) | β β β ββ | VSCode-fork chats + Jetski agent protobuf salvage | state.vscdb + jetskiState* blobs |
| Windsurf (Codeium) | β β βββ | Cascade chat text (protobuf salvage) | ~/.codeium/windsurf/{chat_state,cascade}/*.pb |
| Kiro | β β β β β | Per-execution agent records with messages, actions, results | kiro.kiroagent/<conv>/<exec>/ JSON |
| Zed | β β β β β | Thread JSON (zstd-decoded) with Rust-enum-style messages | threads.db (SQLite + zstd) |
| CLI | Fidelity | What we extract | Storage |
|---|---|---|---|
Claude Code (claude CLI) |
β β β β β | Full session JSONL with user, assistant, tool_use, tool_result | ~/.claude/projects/<workspace>/*.jsonl |
Codex CLI (codex, OpenAI) |
β β β β β | Rollouts with structured response_item, reasoning, function_calls |
~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl |
| Rovo Dev (Atlassian) | β β β β β | Full message_history with system prompts, tool calls, tool returns |
~/.rovodev/sessions/<uuid>/session_context.json |
| Gemini CLI (Google, including Antigravity-Gemini agent) | βββββ | Placeholders only (Google encrypts on disk) | ~/.gemini/<variant>/conversations/*.pb |
| Extension | Fidelity | What we extract | Storage |
|---|---|---|---|
| Cline (autonomous coding agent) | β β β β β | Anthropic-style API history + task metadata | ~/.cline/data/tasks/<ms>/api_conversation_history.json |
| Continue.dev | β β β β β | Session JSON with full history array | ~/.continue/sessions/<id>.json |
| Qodo Gen | β β β β β | Per-thread message groups with git/workspace metadata | ~/.qodo/history/<sha256>.json |
Fidelity legend: β β β β β exact transcript Β· β β β β β full + tool blocks Β· β β β ββ most messages, role labels best-effort Β· β β βββ text salvaged from binary protobufs Β· βββββ encrypted on disk, file-level placeholders only.
Want a tool we don't support yet? Adding an adapter is ~120 LOC β see
docs/CONTRIBUTING.md.
- π Cross-IDE prompt browser β every chat from every tool in one UI
- π Hybrid search β BM25 (SQLite FTS5) + semantic (
all-MiniLM-L6-v2or hashed-TF-IDF fallback) + Reciprocal Rank Fusion (k=60) - π¨ Real macOS app icons auto-extracted from each installed app's
.icns(Cursor, VS Code, Antigravity, Windsurf, Kiro, Codex, β¦) with SVG fallbacks for CLI-only tools - π Date-grouped sessions list β Today (green), Yesterday, weekdays, then dated for older sessions, each with a count badge
- π Live file watcher (3 s poll) β new sessions appear in the UI within seconds of typing them in your IDE
- π Three export formats β Rendered (color-coded message bubbles),
Plain text (
<SYSTEM>β¦</USER>β¦tagged blob, copy-paste ready), JSON (raw normalized schema) - π― Detection-aware β auto-prunes sessions for IDEs you've uninstalled; shows "X/13 IDEs detected on this machine" so you know what was scanned
- π 100 % local β zero network calls, UI binds to
127.0.0.1, opens IDE storage with SQLiteimmutable=1(read-only) - π± Double-click launchers β
run.commandon macOS,run.cmdon Windows - π CLI parity β every UI feature has a
cliequivalent (list-apps,search,export,verify-current,ui)
The viewer pane shows the exact system prompt + user turns + assistant turns + tool calls + tool results that were sent to the LLM. Tabs let you switch between Rendered (color-coded bubbles), Plain text (tagged blob), and JSON (raw schema).
Click any app and its sessions appear, grouped by date with count badges
per day. Today is highlighted green, yesterday blue, then weekdays, then
older dates show as Mon, May 18.
Type a query β ContextBridgeAI runs BM25 and semantic retrieval in parallel,
then fuses them with RRF. Every hit exposes its bm25 rank, semantic rank, and fused score for transparency, with the matching snippet
highlighted in yellow.
Perfect for copy-pasting into a blog post, bug report, or a fresh chat that
needs the same context. The plain-text view reconstructs the entire
conversation as a single <SYSTEM>β¦</SYSTEM>\n<USER>β¦</USER>\nβ¦ blob.
Requires Python 3.10+. (install from python.org)
git clone https://github.com/T-Gojo/ContextBridgeAi.git
cd ContextBridgeAi
./install.sh --launch # installs everything and opens the UI in your browserThat's it. The UI opens at http://127.0.0.1:8765 with every prompt ContextBridgeAI found on your Mac already indexed.
Prefer double-clicking? Open Finder, navigate to the project folder, and
double-click run.command.
For Windows & Linux (currently experimental) and full install options,
see docs/INSTALL.md.
Every UI feature has a CLI equivalent β handy for scripting and CI:
# Show all detected IDEs + session counts
./.venv/bin/python -m context_bridge.cli list-apps
# Recent sessions, optionally filtered by app
./.venv/bin/python -m context_bridge.cli list-sessions --app cursor --limit 20
# Hybrid BM25 + semantic search across every indexed prompt
./.venv/bin/python -m context_bridge.cli search "MCP context manager"
# Extract a specific Claude Code session to plain text
./.venv/bin/python -m context_bridge.cli export claude-code:<id> -f text -o out.txt
# Find this workspace's current Rovo Dev session and verify its prompt
./.venv/bin/python -m context_bridge.cli verify-current
# Force a full re-scrape + rebuild semantic vectors
./.venv/bin/python -m context_bridge.cli index
# Launch the Web UI (auto-opens your default browser)
./.venv/bin/python -m context_bridge.cli ui --port 8765Per-IDE adapters turn private on-disk formats (Cursor SQLite, Claude
Code JSONL, Codex rollouts, Kiro protobufs, β¦) into a single normalized
PromptTranscript schema. Stored in local SQLite with FTS5 BM25.
Optional semantic embeddings (sentence-transformers/all-MiniLM-L6-v2
or hashed-TF-IDF fallback) are fused with Reciprocal Rank Fusion for
hybrid search. Exposed via a FastAPI Web UI and a Typer CLI. A
background SessionWatcher polls every 3 s to auto-refresh data;
semantic-index rebuilds are a manual user action so they don't churn while
you type.
Full deep-dive: docs/ARCHITECTURE.md.
- 100 % local. UI binds to
127.0.0.1. Zero outbound network calls in the codebase. - Read-only. Every adapter opens IDE storage with SQLite's
immutable=1read-only URI, or justread_bytes()for plain files. - No agent integration. ContextBridgeAI does NOT touch any IDE's configuration, MCP setup, settings, or extensions.
- You control the data. Everything extracted lives in
data/index.dbanddata/semantic_index.pkl. Delete them to wipe.
More in docs/FAQ.md#privacy--safety.
| File | Audience | Contents |
|---|---|---|
| README.md | Everyone | Overview + quick start (you're here) |
| docs/INSTALL.md | Everyone | macOS / Windows / Linux install + per-OS storage paths |
| docs/USER_GUIDE.md | Users | UI tour, search syntax, watcher, re-index, CLI |
| docs/ARCHITECTURE.md | Devs | Data flow, schema, search engine, storage |
| docs/ADAPTERS.md | Devs / curious users | Per-IDE storage details, fidelity notes |
| docs/CONTRIBUTING.md | Contributors | Adding a new adapter, code conventions |
| docs/FAQ.md | Everyone | Privacy, performance, troubleshooting |
| docs/PUBLISHING.md | Maintainers | How to push a new release |
| OS | Status |
|---|---|
| π macOS (Sonoma, Sequoia) | Fully supported & tested |
| πͺ Windows 10 / 11 | Experimental β code is OS-aware; awaiting community testing |
| π§ Linux (Ubuntu, Fedora, Arch) | Experimental β code is OS-aware; awaiting community testing |
If you run ContextBridgeAI on Windows or Linux, open an issue with what worked and what didn't.
Found a new agentic AI tool we should support β Aider, Goose, Amazon Q,
JetBrains AI Assistant, OpenCode, Tabnine? Adapters are tiny (~120 LOC)
and well-documented. Walk-through with full example code:
docs/CONTRIBUTING.md.
ai prompt extractor Β· claude code prompt extractor Β· cursor chat history exporter Β· codex cli session viewer Β· rovo dev session viewer Β· kiro session extractor Β· windsurf cascade history Β· antigravity chat extractor Β· cline conversation history Β· continue.dev session export Β· zed assistant history Β· qodo gen prompt history Β· gemini cli history Β· ai coding assistant history Β· prompt verification tool Β· prompt engineering Β· local prompt search Β· hybrid search bm25 semantic rrf Β· mcp prompt manager Β· ai conversation backup Β· agentic ide prompt browser Β· llm session log analyzer Β· ai prompt audit tool Β· sqlite fts5 prompts Β· sentence transformers ai chat search Β· privacy-first ai history Β· macos ai tools
MIT β see LICENSE.
Made with β€οΈ for everyone who's ever lost a brilliant prompt to a closed IDE tab.
β Star this repo if ContextBridgeAI helps you keep track of your AI conversations.




