About this project
Vole is a local-first usage, cost, and anomaly monitor for AI coding agents. It is designed for developers who run multiple agents side by side and want to know whether an agent is misbehaving, not only how much it has spent.
The app runs on macOS 26+ for Apple silicon and lives in the menu bar. It reads logs that coding tools already write to disk, normalises them into a common schema, and keeps everything local: no cloud APIs, no account, and no prompt or tool content is stored. It requires only optional notification permission, and it does not request Full Disk Access because the sources are local dotfiles and application support files.
Vole supports several tools, including Claude Code, OpenCode, Codex CLI, Grok CLI, Cursor, Devin, and Antigravity. It distinguishes data confidence tiers: exact values read directly from tool logs, deterministic estimates with a recorded method, and activity-only rows when a tool records that a call happened but not enough detail to measure tokens. Totals state which tiers they include, and unknown models return NULL rather than being guessed.
The dashboard provides headline token and cost figures, a sparkline, per-tool bars, and an incident-annotated timeline. The timeline stacks tokens by tool and marks incidents, making spikes and their causes easier to inspect. The menu-bar item can show live tokens, cost, or just a status mark, and it is tinted while an incident is open.
Anomaly detection includes rules for billable burn spikes, repeat call loops, error storms, rate-limit pressure, and context pressure. Baselines use leave-one-out comparison so a single spike does not hide inside its own baseline. Loop detection combines call volume with flat output and rising cache reads to reduce false positives.
Cost is calculated as equivalent API value at list price, not subscription billing. Pricing rates are stored as versioned data, can be overridden per installation, and unknown models are left null. A verification command independently re-derives stored rows from their source records to catch pricing or parsing bugs.
The project also includes CLI commands for live sessions, digests, PR usage tables, status lines, optimization findings, budget caps, model efficiency, and health checks. An MCP server exposes the same local data to agents, allowing an agent to query its own session cost, context usage, and incident status. Budget caps can be enforced through supported hooks where available, while remaining advisory for tools without hook support.
Known limitations include limited local token data for Devin and Antigravity, partially derived Cursor message times, Cursor’s recent lack of local token counts, API-only error coverage, lower-bound generation speeds for some tools, and context-window resolution only for first-party model IDs.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.