See your first usage data
This tutorial starts txtop with local coding-agent history, reads the dashboard, and leaves you with a persistent configuration. It does not need an API key.
Install txtop
Install from crates.io with Rust 1.88 or newer:
cargo install txtop --locked
Prebuilt archives are also available from GitHub Releases.
Open your local history
Start txtop with all three local subscription readers enabled:
txtop \
--subscription-enabled true \
--subscription-codex-enabled true \
--subscription-claude-code-enabled true \
--subscription-gemini-cli-enabled true
txtop discovers history under the normal Codex, Claude Code, and Gemini CLI directories. Missing clients are harmless; they contribute no rows. The first scan can take a moment when the history is large.
The collector starts with the TUI and exits after the last TUI closes. Press
r to request a refresh if the dashboard opened before the first scan finished.
Read the dashboard
The graph and summary combine enabled data sources. Press 2 once to hide the
subscription lane and again to restore it; this confirms which rows came from
local coding-agent history.
Use j and k to move, t and T to change the time bucket, and f to open
the focused view. Press ? at any time for the complete in-app keymap.
If the dashboard remains empty, press D for source diagnostics, then follow
troubleshooting.
Keep the configuration
Open the Config panel with Tab, then enable Subscription and the clients you
use. Config-panel changes are written to the active file. You can also add this
to config.toml:
[subscription]
enabled = true
codex_enabled = true
claude_code_enabled = true
gemini_cli_enabled = true
The configuration reference lists the platform-specific file location and every field. Continue with provider API usage if you also need organization billing data, or live subscription limits if you accept the risks of credential-backed experimental requests.