I reverse-engineered where 6 AI coding tools store your prompts — and built a dashboard for it
Source: Dev.to
I use a lot of AI coding tools — Claude Code, Cursor, GitHub Copilot, OpenCode, So I built AI Prompt Monitor — Aggregates prompts from all six tools into a local SQLite index Filter by platform, project, and date range; full-text search Stats (total prompts, sessions, projects) + charts (prompts/day, per platform) A dedicated page per platform Copy any prompt or session ID with one click 100% local and read-only — nothing is ever uploaded This is where it got interesting. Here’s what I found:
Tool Storage Format
Claude Code ~/.claude/history.jsonl JSONL — easy
Cursor
state.vscdb (~700MB) SQLite; prompts split across composerData + bubbleId rows
OpenCode opencode.db clean relational SQLite (sessions/messages/parts)
Copilot workspaceStorage//chatSessions/.json per-workspace JSON
Windsurf ~/.codeium/chat_state/*.pbtxt text-format protobuf (legacy); Cascade is encrypted
Antigravity
state.vscdb trajectory summaries base64’d protobuf I decoded by hand
A few things I had to solve: Locked databases — IDEs hold their SQLite files open, so I copy them to a temp dir and open the copy read-only. No native dependencies — using Node 22’s built-in node:sqlite means no better-sqlite3 build step. Encrypted stores — Windsurf Cascade and Antigravity conversation bodies are encrypted on disk, so those gracefully fall back to titles only. Project attribution — Cursor doesn’t directly link prompts to a project, so I match against workspace generation data by text and timestamp. git clone https://github.com/alaminrifat/ai-prompt-monitor.git cd ai-prompt-monitor npm install npm run dev
Open http://localhost:3000 and hit Refresh. Needs Node 22+. It’s MIT licensed and I’d love contributions — especially parsers for more tools. ⭐ https://github.com/alaminrifat/ai-prompt-monitor