The menu bar worth keeping for AI coding.
Quota rings at a glance. Assemble the rest only when you need it.
Kaji keeps the live state that matters to you in the menu bar: how much Claude Code and Codex quota is left, whether you are in a focus block, what you said you would do today.
Why the menu bar? It stays beside whatever you are doing — glance to know, hover for context, click to act. No app switch, no notification demanding attention.
Kaji starts small. Quota is on; everything else is opt-in. Kaji is Japanese 舵 / かじ — rudder.
1. Know how much AI quota is left, without asking. 5h session window and 7d window per provider, with time to reset — shown above. The rings live in the menu bar; the numbers are one click away.
2. Work in focus blocks instead of drifting. A countdown you can read from the menu bar, and a break that actually interrupts you.
3. Keep today's goals where you can't ignore them. Today / Week / Vision horizons, tags, notes — and a kaji CLI so your agent can add and close goals for you.
curl -fsSL https://raw.githubusercontent.com/MisterBrookT/kaji/main/install.sh | bashNeeds macOS 13+ (Apple Silicon), git, swift (Xcode or the Swift toolchain), and a working python3. The installer clones the latest release tag, builds locally, installs to /Applications, clears quarantine, and launches.
Kaji ships no prebuilt .app.zip: it is not yet signed with a Developer ID, and unsigned browser downloads trip Gatekeeper. Building from source is currently the honest path. From a clone: ./scripts/build-local.sh.
Something went wrong, or you want it gone? FAQ & troubleshooting.
| Module | Default | What you get |
|---|---|---|
| Quota | on | 5h / 7d usage, reset timing, per-provider rings |
| Work / Break | off | Focus timer, menu-bar countdown, break overlay |
| System | off | CPU / memory, disk categories, top processes |
| Goals | off | Today / Week / Vision / Schedule, notes, tags, heatmap |
Disabling a module removes its page and stops its timers and polling. Theme: Mono only (black / white / gray, light & dark).
Kaji reads local files that AI coding tools already write on your Mac, and — for providers that only publish quota server-side — calls that provider's own usage endpoint with the credentials already stored on your machine.
- Read locally:
~/.claude/projects/**/*.jsonl,~/.codex/sessions/**/rollout-*.jsonl, and, when the provider needs it, the local credential stores (~/.claude/.credentials.json, Cursor'sstate.vscdb). - Leaves your Mac: a usage request to
api.anthropic.com(Claude) andapi2.cursor.sh(Cursor) using your token, plus a version check againstapi.github.com. Nothing else, and only for providers you enable. - No analytics, no account, no server of ours. Your usage data, prompts, and goals are never sent anywhere. Goals stay in local storage; the CLI talks to the app over
127.0.0.1only.
Details, including exactly how each number is computed: how quota works.
- How quota works — sources, accuracy, providers, privacy
- FAQ & troubleshooting — python3 errors, blank quota, uninstall
- CLI reference — drive goals from a shell or an agent
- Product principles · module architecture · design language
- AGENTS.md — contributor and agent notes
- Latest release
Issues and PRs welcome. Run swift test before opening a PR; UI-test layering and layout invariants are documented in AGENTS.md.
MIT. See LICENSE.
Not affiliated with Anthropic, OpenAI, Anysphere, or any other provider. Product names and marks belong to their owners.

