Skip to content
Menu-bar app for Codex

See what your Codex uses and limits.

A menu-bar dashboard for local Codex usage: tokens, estimated API value, model mix, tool calls, account stats, and rate limits. Read-only, zero intrusion.

View on GitHub
CodexScope
Day
Week
Month
Total tokens
0.00M14%
Est. API value
$46.10
Input 8.13M Output 4.27M56% cached
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Tokens by model
GPT-5 Codex
5.82M46.9%
GPT-5 high
3.07M24.8%
GPT-5
1.94M15.7%
Gemini 2.5 Pro
910K7.3%
Llama 3.3 70B
660K5.3%

Day, week, and month Codex usage breakdowns.

Model mix, estimated API value, top Codex tool calls, account signals, and retained-history activity in one panel.

API value by model

Estimated OpenAI API value by model for the selected period.
$46.10
GPT-5 high$19.10
GPT-5 Codex$18.40
GPT-5$6.20
Gemini 2.5 Pro$2.40
Responses
2,847
143 threads
Value trend
$46.10
this week

Codex activity you actually use

Top explicit tool calls and account signals collected from local Codex data.
Tool calls10 · 5 tools
shell
3
apply_patch
2
web_search
2
tool_search
2
browser
1
Codex background events are separated from explicit tool calls.
Account reads12 · 5 signals
account/usage/read
4
account/rateLimits/read
3
reset-credit
2
reasoning-effort
2
thread-profile
1
Backed by local codex app-server --stdio account and rate-limit data.

Codex activity heatmap

Daily Codex activity across the retained history window.
DecJanFebMarAprMayJun
LessMore

Codex token buckets at a glance

56% cached
Codex token_count events expose input, cached input, output, and reasoning output. CodexScope keeps reasoning output as context, but totals and API-value estimates are based on input, cached input, and output tokens.

Read-only by design — no telemetry, no API key.

CodexScope reads local Codex rollout JSONL files and Codex account metadata. It does not edit Codex configuration or session history; your logs stay on your computer.

Read

Scans ~/.codex/sessions/**/rollout-*.jsonl and archived sessions for token_count events, model context, and tool calls.

Attribute

Tracks session_meta / turn_context so appended token events stay attached to the correct session, model, and reasoning effort.

Price

Prices with models.dev after OpenAI API prices, then LiteLLM, plus the bundled snapshot as an offline fallback.

Show

Renders today's Codex usage in the menu bar, with account stats, rate-limit windows, and the full dashboard one click away.

How CodexScope estimates API value.

CodexScope reads Codex token_count events, separates input, cached input, output, and reasoning output, then estimates API value from the billable input/cache/output buckets with the best matching OpenAI/Codex price entry.

// gpt-5-codex · one Codex session
tokens: {
  input_tokens               : 88,000
  cached_input_tokens       : 1,120,000
  reasoning_output_tokens  : 2,400,000
  output_tokens              : 320,000
}
typetokens × $/Mcost
Input88,000 × $3.00$0.2640
Cached input1,120,000 × $3.75$4.2000
Reasoning output2,400,000 × $0.30$0.7200
Output320,000 × $15.00$4.8000
total · one Codex session$9.98

Notice that reasoning output is shown for context, not added again to API value. while 0.32M output tokens can still dominate the estimate. API value follows public OpenAI/Codex prices when available; ChatGPT/Codex subscription quotas may differ.

Build on macOS or Windows.

There is no packaged public release yet. Build locally from source, then open the macOS app bundle or Windows NSIS installer from the Tauri release output.

macOS
$ pnpm install; pnpm tauri build
Windows
Build NSIS installer

The unsigned Windows installer is written under src-tauri/target/release/bundle/nsis/.

Prefer macOS? Build locally and open CodexScope.app from the Tauri bundle. It is an unsigned build, so on first launch right-click and choose Open, or run xattr -cr src-tauri/target/release/bundle/macos/CodexScope.app if macOS blocks the unsigned local build.

Frequently asked.

The questions that come up before running CodexScope locally.

No. It reads local Codex rollout logs from ~/.codex/sessions/, prices them against a locally cached snapshot of models.dev / LiteLLM, and renders the statistics in your dashboard. No telemetry upload, no API key.
CodexScope is not code-signed through Apple Developer or Windows publisher programs yet. Build it locally with pnpm install; pnpm tauri build. On macOS, first launch may require right-click → Open, or run xattr -cr src-tauri/target/release/bundle/macos/CodexScope.app and then open it. On Windows, the .exe installer is unsigned, so on first launch click More info → Run anyway to clear SmartScreen.
Input, cached input, and output tokens are priced with the best matching OpenAI/Codex entry, pulled from models.dev first, LiteLLM as a fallback, then a built-in snapshot if you're offline. Rate data is cached on disk for 24 hours. Known OpenAI/Codex models use public OpenAI API prices first; models with no published pricing are temporarily flagged as “unpriced” in the panel.
codex app-server exposes account usage and rate-limit windows. CodexScope calls codex app-server --stdio when available, then combines those account signals with local rollout logs and models.dev / LiteLLM rate tables, but as a menu-bar GUI: today's usage is always visible, the panel adds bar charts, a donut chart, and a heatmap. Reach for codex app-server when you want a scriptable terminal command; reach for CodexScope when you want to visualize usage anytime.
The background process watches the projects directory for file changes and only re-parses files whose mtime moved. Idle CPU is essentially zero; memory holds steady around 40MB. Refreshing the panel is just a single pass over the new JSONL bytes since the last read. Performance is excellent.
Today only Codex's JSONL format is parsed. Other tools write different shapes — if you want one supported, open an issue on the repo with a redacted log sample and I'll consider adding support.
Yes. MIT licensed, source available, and no paid tier is built into this project. The repo is at github.com/poer2023/CodexScope.

Implementation notes from CodexScope.

A few implementation details from the product repository that matter in daily use.

Reads local ~/.codex/sessions rollout JSONL incrementally, so the panel can refresh without rescanning everything.
CodexScopeCodexScope repository
Uses session_meta and turn_context to keep token events tied to the right session, model, and reasoning effort.
CodexScopeCodexScope repository
Reads account/usage/read and rate-limit windows from codex app-server --stdio when that local interface is available.
CodexScopeCodexScope repository
Estimates API value with OpenAI/Codex pricing first, then public fallbacks and the bundled snapshot.
CodexScopeCodexScope repository
Day, week, and month views compare against the previous matching period and keep a retained-history heatmap.
CodexScopeCodexScope repository
A one-click screenshot writes the current dashboard to Desktop for quick sharing and debugging.
CodexScopeCodexScope repository
Reads local ~/.codex/sessions rollout JSONL incrementally, so the panel can refresh without rescanning everything.
CodexScopeCodexScope repository
Uses session_meta and turn_context to keep token events tied to the right session, model, and reasoning effort.
CodexScopeCodexScope repository
Reads account/usage/read and rate-limit windows from codex app-server --stdio when that local interface is available.
CodexScopeCodexScope repository
Estimates API value with OpenAI/Codex pricing first, then public fallbacks and the bundled snapshot.
CodexScopeCodexScope repository
Day, week, and month views compare against the previous matching period and keep a retained-history heatmap.
CodexScopeCodexScope repository
A one-click screenshot writes the current dashboard to Desktop for quick sharing and debugging.
CodexScopeCodexScope repository

Start watching Codex usage.

Free, MIT licensed, and built for your Codex menu bar.

View on GitHub