Everything you need to understand your AI coding workflows.
One command. No config. No data leaves your machine.
$ npx agentlytics
Opens 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 --collect
14 editors and counting.
| 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.
All data stays local. No accounts, no cloud, no telemetry.
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.
Share AI session context across your team.
Relay enables multi-user context sharing. 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
Optionally protect with a password:
$ RELAY_PASSWORD=secret npx agentlytics --relay
$ npx agentlytics --join <host:port> --username <name>
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.
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 |
Read-only REST API at http://localhost:4637. All endpoints return JSON.
| 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.
Endpoints for the relay server at port 4638.
| 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_PASSWORD env on both server and clients to enable password protection.
What's coming next.