yalethom.as/txtop

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.