v0.1.11Claude Fable 5 pricingLatest update

Limits before
they interrupt you.

CodexIsland keeps Claude Code and Codex usage windows, reset times, and local token-cost estimates in the MacBook notch, so you can decide whether to keep going before a task stalls.

Free · MIT · local-first · macOS

i. hover

Check the window before the next ask.

Hover the notch for the current 5-hour usage and reset countdown. Click when you need the full Claude and Codex panel.

ii. idle

A Mac utility, not another dashboard.

Collapsed, it sits on the physical notch with a quiet glow. The rest of the desktop stays clickable.

The CodexIsland notch pill sitting quietly with a soft cobalt glow.
iii. charts

Pick the chart that reads fastest.

Ring, bar, stepped, numeric, or sparkline. Cycle styles from the panel and keep the shape that helps you judge pressure at a glance.

CodexIsland sparkline panel showing Claude and Codex usage windows.
iv. cost

Cost stays beside the limit signal.

Swipe once for local token and dollar estimates from Claude Code and Codex logs. It is a working estimate, not a hosted billing dashboard.

CodexIsland token panel showing Claude and Codex daily and monthly token totals.
Privacy

Local-first, because this data is sensitive.

  • No CodexIsland account
  • No app telemetry
  • No crash reporting
  • No proxy service

The macOS app reads the auth state your tools already created — ~/.codex/auth.json, Claude's macOS Keychain item, or CLAUDE_CODE_OAUTH_TOKEN— and calls only the providers' usage endpoints. Cost estimates come from local session logs.

Sources/Usage/UsageFetcher.swiftview on GitHub
// the entire privacy story, in code
let token = readKeychain("anthropic.com")
let req   = URLRequest(url: anthropicUsageURL)
req.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
let (data, _) = try await URLSession.shared.data(for: req)
// the request goes only to Anthropic. nothing else sees
// the token, nothing else sees the response.
Install

One command. Or a DMG.

Homebrew is the fastest path. Direct download is there if you prefer.

$brew install --cask ericjypark/tap/codexisland

Download CodexIsland-0.1.11.dmg — or browse all releases. Then run this once to clear the quarantine bit:

$xattr -d com.apple.quarantine /Applications/CodexIsland.app
FAQ

Questions, answered honestly.

Claude Code and Codex can interrupt a coding run when a usage window gets tight. CodexIsland keeps the current window, reset timing, and local cost context visible before that becomes a surprise.
Yes. Hide the provider you do not use. The panel uses the freed space for per-model breakdowns instead of showing an empty second provider.
No. It is a small macOS utility that lives near the notch. Hover for the quick read, click for detail, then get back to the editor or terminal.
No. Claude Code and Codex session logs are read locally for token-cost estimates. The app does not run a CodexIsland account, proxy service, cloud sync, app telemetry, or crash reporting.
Apple charges $99/year for a Developer ID and CodexIsland is free. The unsigned route is normal for OSS Mac apps. If you'd like to sponsor a signed build, GitHub Sponsors is open.
Yes. The GitHub Release ships a universal macOS build for Apple Silicon and Intel Macs.
CodexIsland may need an app update when those undocumented endpoints change. File an issue and the User-Agent, beta header, or parser will be updated.
5 minutes is the floor — Settings lets you bump it to 15m or 30m. Anthropic rate-limits the usage endpoint aggressively per token; 30-second polling burns the daily quota in an afternoon and the window-based data has nothing to show for itself except a 429.
It reads the session logs Claude Code and Codex already write to ~/.claude/projects/ and ~/.codex/sessions/, then prices token events against an embedded pricing snapshot. No upload, no calls to any billing endpoint — the estimate is local.
If a session log references a model that isn't in the embedded pricing snapshot — usually a brand-new release or a preview — CodexIsland counts the tokens but can't translate them to dollars. The total stays an undercount until the next release ships an updated snapshot. The warning shows how many models in the current window are affected.
The app embeds Sparkle and checks an appcast attached to the latest GitHub Release on launch and once a day. New versions are signed with an EdDSA key — verified end-to-end before installing — so an unsigned-by-Apple build still gets cryptographically authenticated updates. Toggle the auto-check off in Settings if you want to pin a version.
Yes. Falls back to a 200×28 pill in the menu-bar area. The notch is the visual anchor, not a hard requirement.
Run claude once on the command line, or open Claude Desktop. Either populates the credentials CodexIsland reads.