Skip to main content

Agent capabilities

Read this before you conclude a dashboard panel is broken.

The three supported agents do not record the same things. A panel that is empty for one agent and full for another is usually reporting that difference correctly, not failing.

Every row below was verified by reading real transcripts on a real machine — 1,862 Claude Code transcripts, 125 Codex rollouts, 8 Antigravity databases — rather than from vendor documentation, which describes intent rather than what lands on disk.

What each agent reports

Claude CodeCodex CLIAntigravity (agy)
Confidence ceilingintersectedintersectedintersected
Which files were edited
The exact lines produced
Model
Branchnone recorded
MCP server
Accept / reject outcome
Human edited the output
Input / output tokensnone at all
Cache reads
Cache writes
Reasoning tokens
Per-turn timing
Reasoning effortpartial
Permission modepartial
Context compaction

What this means in practice

Antigravity contributes no cost data. Not "reports zero" — records none. Every token and timing column is NULL for an agy session, and panels built on them exclude it from the denominator rather than counting it as free. An agy session showing 0 tokens would make Antigravity look like the cheapest agent available, which is the opposite of a measurement.

Only Claude Code reports whether a human edited the output. This is the most interesting signal in the set — the difference between "the agent wrote this" and "the agent wrote this and it was kept" — and it exists for one agent out of three. The panel's denominator counts only calls that carried the signal, so the other two do not dilute the rate.

Only Codex reports timing. Claude Code and Antigravity record none, so a latency panel is structurally empty for them. It says so rather than rendering zero, which would make them appear instantaneous.

Codex reports cache reads but never writes. That matters more than it looks: the cache write payback figure is uncomputable for Codex, and a missing denominator is not a payback of zero. See What the numbers mean.

Antigravity records no branch. Its store does contain branch-shaped strings, but they are a tracker's suggested branch name inside an MCP response — not the checked-out branch. Verified absent rather than merely unread, which is why the column is NULL instead of being filled from something that looks close enough.

Agents not supported

AgentStatusWhy
CursorBlockedChat history in an undocumented SQLite blob with no compatibility contract
WindsurfBlockedSame
Antigravity IDEPartialMessage bodies are encrypted; the CLI (agy) is supported
Gemini CLIBlockedFree tier removed 2026-06-18; no account to verify against

Cursor and Windsurf are declaration-only by decision, not by oversight. Community parsers for those stores break on minor version bumps, and reverse-engineering them is not a maintenance burden this project takes on. The adapter interface is open for a contribution.

The measured detail

This page is the version you read before installing. The full inventory — every field, with occurrence counts and a privacy classification — is in docs/adapters/field-inventory.md and the per-agent store formats are in docs/adapters/agent-support.md.