Uncover what your agents did
- Projects and sessions browser - filter by date range or keyword, paginated and sorted newest-first
- Full execution trace viewer - every message, tool call, thinking block, and system event
- Nested subagent logs - expand to see subagent executions inline, pre-loaded with the session
- Virtual scrolling - handles sessions with thousands of entries without performance issues
Understand where they struggle
- Session stats bar - turns, tool calls, subagents, duration, and models at a glance
- Custom evals - grade sessions with pass/fail results and 0-1 scores
- Per-eval recompute - re-run a single eval without reprocessing all others
- Conditional evals - gate evals globally or per-item, with session and subagent scope control
- Cache invalidation hook - register a custom function to invalidate stale cached results based on age, score, or any custom logic
Utilize insights to improve
- Custom enrichments - compute metadata (token counts, quality signals, labels) as key-value pairs
- Custom actions - on-demand tasks triggered from the dashboard with full access to eval and enrichment results
- Alerts - callbacks that fire after all evals complete for a session (Slack webhooks, CI notifications, logging)
- Dashboard views and filters - organize filters into named views with boolean toggles, range sliders, and multi-select dropdowns
- Dashboard aggregates - cross-session summary tables with full control over collect and reduce logic
- Unified queue - all evals and enrichments go through a single priority queue with bounded concurrency, live tracking at
/queue - JSONL export - download raw session logs
- Auto-refresh - monitor live sessions at 5s, 10s, or 30s intervals
How Claudeye compares
| Feature | Claudeye | Langfuse | Dev-Agent-Lens | ccusage | Raw JSONL |
|---|---|---|---|---|---|
| Local-first (no cloud) | Yes | Self-host option | Proxy required | Yes | Yes |
| Session replay | Yes | Traces only | Traces only | No | Manual |
| Custom evals | Yes | Limited | No | No | No |
| Subagent expansion | Yes | No | No | No | No |
| Zero config | Yes | Setup required | Proxy setup | Yes | N/A |
| Visual dashboard | Yes | Yes | Yes (Phoenix) | CLI only | No |
How it works
createApp()andapp.eval()/app.enrich()/app.action()/app.alert()/app.condition()/app.dashboard.*register functions in global registries- When you run
claudeye --evals ./my-file.js, the server dynamically imports your file, populating those registries - All eval and enrichment execution routes through a unified priority queue - each individual eval and enrichment is a separate queue item. UI requests use HIGH priority; background scanning uses LOW priority
- Each item runs through: cache check - execute if uncached - cache result - check if session complete - fire alerts if complete
- The global condition is checked first. If it fails, everything is skipped
- Per-item conditions are checked individually. Skipped items don’t block others
- Each function is individually error-isolated. If one throws, the others still run
- After all evals and enrichments complete for a session, registered alerts fire with the full eval and enrichment summary
- Results are serialized and displayed in separate panels in the dashboard UI
- Named dashboard views compute filter values incrementally - only new or changed sessions are processed - then filter and paginate server-side
- Dashboard aggregates run a separate server action that collects per-session values and reduces them via user-defined reduce functions into sortable summary tables
- When
--queue-intervalis set, a background processor scans for uncached items on a timer. Track queue state at/queueor via the navbar dropdown
Distribution
Claudeye is distributed as a compiled native binary per platform. Theclaudeye npm package is a thin JS wrapper that proxies createApp() calls to the binary via JSON IPC.
User-defined functions (eval closures, enrich callbacks, etc.) remain in your Node.js process - they are never serialized into the binary. The public API surface is identical regardless of how you run Claudeye; no code changes are required.
When you install claudeye, npm automatically pulls the correct platform-specific package (@claudeye/linux-x64, @claudeye/darwin-arm64, etc.) as an optional dependency. Node.js >= 20.9.0 must be available on PATH.
