by f
Comprehensive analytics dashboard for AI coding agents — Cursor, Windsurf, Claude Code, VS Code Copilot, Zed, Antigravity, OpenCode, Command Code
# Add to your Claude Code skills
git clone https://github.com/f/agentlyticsLast scanned: 5/15/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@hono/node-server: @hono/node-server: Middleware bypass via repeated slashes in serveStatic",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "express-rate-limit: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "fast-uri: fast-uri vulnerable to path traversal via percent-encoded dot segments",
"severity": "high"
},
{
"type": "npm-audit",
"message": "hono: Hono missing validation of cookie name on write path in setCookie()",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "ip-address: ip-address has XSS in Address6 HTML-emitting methods",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "path-to-regexp: path-to-regexp vulnerable to Regular Expression Denial of Service via multiple route parameters",
"severity": "high"
}
],
"status": "WARNING",
"scannedAt": "2026-05-15T06:58:22.033Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
You switch between Cursor, Devin, Claude Code, VS Code Copilot, and more — each with its own siloed conversation history.
One command. Full picture. All local.
npx agentlytics
# or
pnpm dlx agentlytics
# or
yarn dlx agentlytics
# or
bunx agentlytics
Opens at http://localhost:4637. Requires Node.js ≥ 20.19 or ≥ 22.12, macOS. No data ever leaves your machine.
$ npx agentlytics
(● ●) [● ●] Agentlytics
{● ●} <● ●> Unified analytics for your AI coding agents
Looking for AI coding agents...
✓ Cursor 498 sessions
✓ Devin 20 sessions
✓ Devin Next 56 sessions
✓ Claude Code 6 sessions
✓ VS Code 23 sessions
✓ Zed 1 session
✓ Codex 3 sessions
✓ Gemini CLI 2 sessions
...and 6 more
(● ●) [● ●] {● ●} <● ●> ✓ 691 analyzed, 360 cached (27.1s)
✓ Dashboard ready at http://localhost:4637
To only build the cache without starting the server:
npx agentlytics --collect
# or: pnpm dlx agentlytics --collect
| Editor | Msgs | Tools | Models | Tokens |
|---|---|---|---|---|
| Cursor | ✅ | ✅ | ✅ | ✅ |
| Devin | ✅ | ✅ | ✅ | ✅ |
| Devin Next | ✅ | ✅ | ✅ | ✅ |
| Antigravity | ✅ | ✅ | ✅ | ✅ |
| Claude Code | ✅ | ✅ | ✅ | ✅ |
| VS Code | ✅ | ✅ | ✅ | ✅ |
| VS Code Insiders | ✅ | ✅ | ✅ | ✅ |
| Zed | ✅ | ✅ | ✅ | ❌ |
| OpenCode | ✅ | ✅ | ✅ | ✅ |
| Codex | ✅ | ✅ | ✅ | ✅ |
| Gemini CLI | ✅ | ✅ | ✅ | ✅ |
| GitHub Copilot | ✅ | ✅ | ✅ | ✅ |
| Cursor Agent | ✅ | ❌ | ❌ | ❌ |
| Command Code | ✅ | ✅ | ❌ | ❌ |
| Goose | ✅ | ✅ | ✅ | ❌ |
| Kiro | ✅ | ✅ | ✅ | ❌ |
| Codebuff | ✅ | ✅ | ⚠️ | ⚠️ |
Devin, Devin Next, and Antigravity must be running during scan.
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 --relay
# or: pnpm dlx agentlytics --relay
Optionally protect with a password:
RELAY_PASSWORD=secret npx agentlytics --relay
This 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>
# or: pnpm dlx 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.
Devin / Devin 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. Legacy Windsurf identifiers and ~/.windsurf configuration are still supported for backwards compatibility.
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