Unified analytics for your AI coding agents
Cursor · Windsurf · Claude Code · VS Code Copilot · Zed · Antigravity · OpenCode · Codex · Gemini CLI · Copilot CLI · Cursor Agent · Command Code
Agentlytics reads local chat history from every major AI coding assistant and presents a unified analytics dashboard in your browser. No data ever leaves your machine.
npx agentlyticsOpens at http://localhost:4637. Requires Node.js ≥ 20.19 or ≥ 22.12, macOS.
To only build the cache database without starting the server:
npx agentlytics --collectFor local development, run npm run dev from the repo root. That starts both the backend on http://localhost:4637 and the Vite frontend on http://localhost:5173.
- Dashboard — KPIs, activity heatmap, editor breakdown, coding streaks, token economy, peak hours, top models & tools
- Sessions — Search, filter, full conversation viewer with syntax highlighting and diff views
- Projects — Per-project analytics: sessions, messages, tokens, models, editor breakdown
- Deep Analysis — Tool frequency, model distribution, token breakdown with drill-down
- Compare — Side-by-side editor comparison with efficiency ratios
- Refetch — One-click cache rebuild with live progress
- Relay — Multi-user context sharing with MCP server for cross-team AI session querying
| Editor | ID | Msgs | Tools | Models | Tokens |
|---|---|---|---|---|---|
| Cursor | cursor |
✅ | ✅ | ||
| Windsurf | windsurf |
✅ | ✅ | ✅ | ✅ |
| Windsurf Next | windsurf-next |
✅ | ✅ | ✅ | ✅ |
| Antigravity | antigravity |
✅ | ✅ | ✅ | ✅ |
| Claude Code | claude-code |
✅ | ✅ | ✅ | ✅ |
| VS Code | vscode |
✅ | ✅ | ✅ | ✅ |
| VS Code Insiders | vscode-insiders |
✅ | ✅ | ✅ | ✅ |
| Zed | zed |
✅ | ✅ | ✅ | ❌ |
| OpenCode | opencode |
✅ | ✅ | ✅ | ✅ |
| Codex | codex |
✅ | ✅ | ✅ | ✅ |
| Gemini CLI | gemini-cli |
✅ | ✅ | ✅ | ✅ |
| Copilot CLI | copilot-cli |
✅ | ✅ | ✅ | ✅ |
| Cursor Agent | cursor-agent |
✅ | ❌ | ❌ | ❌ |
| Command Code | commandcode |
✅ | ✅ | ❌ | ❌ |
Windsurf, Windsurf Next, and Antigravity must be running during scan.
Codex sessions are read from ${CODEX_HOME:-~/.codex}/sessions/**/*.jsonl. Reasoning summaries may appear in transcripts when Codex records them in clear text, but encrypted reasoning content is not readable. Codex Desktop and CLI sessions are aggregated into one codex editor in analytics.
Relay enables multi-user context sharing across a team. One person starts a relay server, others join and share selected project sessions. An MCP server is exposed so AI clients can query across everyone's coding history.
npx agentlytics --relayOptionally protect with a password:
RELAY_PASSWORD=secret npx agentlytics --relayThis starts a relay server on port 4638 and prints the join command and MCP endpoint:
⚡ Agentlytics Relay
Share this command with your team:
cd /path/to/project
npx agentlytics --join 192.168.1.16:4638
MCP server endpoint (add to your AI client):
http://192.168.1.16:4638/mcp
cd /path/to/your-project
npx agentlytics --join <host:port>If the relay is password-protected:
RELAY_PASSWORD=secret npx agentlytics --join <host:port>Username is auto-detected from git config user.email. You can override it with --username <name>.
You'll be prompted to select which projects to share. The client then syncs session data to the relay every 30 seconds.
Connect your AI client to the relay's MCP endpoint (http://<host>:4638/mcp) to access these tools:
| Tool | Description |
|---|---|
list_users |
List all connected users and their shared projects |
search_sessions |
Full-text search across all users' chat messages |
get_user_activity |
Get recent sessions for a specific user |
get_session_detail |
Get full conversation messages for a session |
Example query to your AI: "What did alice do in auth.js?"
| Endpoint | Description |
|---|---|
GET /relay/health |
Health check and user count |
GET /relay/users |
List connected users |
GET /relay/search?q=<query> |
Search messages across all users |
GET /relay/activity/:username |
User's recent sessions |
GET /relay/session/:chatId |
Full session detail |
POST /relay/sync |
Receives data from join clients |
Relay is designed for trusted local networks. Set
RELAY_PASSWORDenv on both server and clients to enable password protection.
Editor files/APIs → editors/*.js → cache.js (SQLite) → server.js (REST) → React SPA
Relay: join clients → POST /relay/sync → relay.db (SQLite) → MCP server → AI clients
All data is normalized into a local SQLite cache at ~/.agentlytics/cache.db. The Express server exposes read-only REST endpoints consumed by the React frontend. Relay data is stored separately in ~/.agentlytics/relay.db.
| Endpoint | Description |
|---|---|
GET /api/overview |
Dashboard KPIs, editors, modes, trends |
GET /api/daily-activity |
Daily counts for heatmap |
GET /api/dashboard-stats |
Hourly, weekday, streaks, tokens, velocity |
GET /api/chats |
Paginated session list |
GET /api/chats/:id |
Full chat with messages |
GET /api/projects |
Project-level aggregations |
GET /api/deep-analytics |
Tool/model/token breakdowns |
GET /api/tool-calls |
Individual tool call instances |
GET /api/refetch |
SSE: wipe cache and rescan |
All endpoints accept optional editor filter. See API.md for full request/response documentation.
- Offline Windsurf/Antigravity support — Read cascade data from local file structure instead of requiring the app to be running (see below)
- LLM-powered insights — Use an LLM to analyze session patterns, generate summaries, detect coding habits, and surface actionable recommendations
- Linux & Windows support — Adapt editor paths for non-macOS platforms
- Export & reports — PDF/CSV export of analytics and session data
- Cost tracking — Estimate API costs per editor/model based on token usage
Windsurf / Windsurf Next / Antigravity offline reading — Currently these editors require their app to be running because data is fetched via ConnectRPC from the language server process. Unlike Cursor or Claude Code, there's no known local file structure to read cascade history from. If you know where Windsurf stores trajectory data on disk, or can help reverse-engineer the storage format, contributions are very welcome.
LLM-based analytics — We'd love to add intelligent analysis on top of the raw data — session summaries, coding pattern detection, productivity insights, and natural language queries over your agent history. If you have ideas or want to build this, open an issue or PR.
See CONTRIBUTING.md for development setup, editor adapter details, database schema, and how to add support for new editors.
MIT — Built by @f
