> Source: https://www.esfis.com/en/blog/agent-usage-from-disk · esfis, your projects, your context, your agents. Updated 17 September 2026.

# Agent usage, read straight off the disk

> The bar at the bottom of the Agents section shows how much each CLI has used and how the machine is doing, with no API and no key. What each agent records, what it does not, and why there are figures we would rather not show.

Francesc Pinyol, Founder · 15 September 2026 · 2 min read

If you have Claude Code, Codex and Copilot open at once, the question “how much have I got left?” has three answers in three different places. The Agents section in esfis brings them together in a single bar. It calls no API and needs no key: it reads what each CLI already writes locally.

The difficulty is that every CLI writes something different, and some of them do not write the very thing you want to know.

## Codex: the only one that reports the real limit

Codex records a `token_count` event in its sessions, with cumulative usage and the limit window its server has told it about. It is the only official quota of any of the agents: the Codex percentage you see in the bar is the one Codex itself knows. esfis only reads the tail of the file, where the latest block is.

## Claude Code: the limit only ever reaches the status line

Claude Code writes every message to `~/.claude/projects`, and that is where the tokens come from, read incrementally. The quota, on the other hand, is never written to disk: it is only passed, on each update, to whichever command you have configured as your status line.

So esfis can install a bridge for it:

```sh
esfis --claude-bridge           # installs it
esfis --claude-bridge --remove  # takes it out
```

It is a small script that stores those figures somewhere esfis can read them and passes them through untouched to the status line you already had, which goes on showing exactly what it showed before. Without the bridge there is no real Claude limit, and esfis does not invent one.

## Copilot, Grok, Antigravity and Ollama

- **Copilot** records every model call in a SQLite table, in the unit GitHub bills premium requests in. That is where its usage comes from.
- **Grok** has no token counter at all. Each session has a file with how full its context is. So the Grok percentage tells you how full one session's context is, not a usage limit, and the panel says so.
- **Antigravity** stores conversations in SQLite, but publishes no counter. Until we can read that format, the panel shows what it can show honestly: the open sessions.
- **Ollama** runs on your own machine, and the conversation with it is local (`127.0.0.1`).

## The costs are an estimate

The dollar figures in the panel come from multiplying tokens by public prices. The first time round they are written to `~/.config/agent-orchestrator/pricing.json`, and from then on that file is in charge: if a price changes, you fix it there without recompiling anything. If you are on a subscription, what you actually pay is not that number.

## Measuring should not be expensive

A usage panel that burns more than the agents it measures is not much use. At first, every refresh opened a shell to run `top`, and it was one of the heaviest processes in the app. Now machine load is read straight from the kernel, and the logs are only re-read while the Agents section is visible and esfis is in the foreground.

The same information, as text:

```sh
esfis --usage --days 14
```

None of this leaves the Mac. The details are in the [documentation](/en/docs#usage).
