Nothing to grant
The first launch asks for nothing: no Full Disk Access, no keychain dialog, no prompt of any kind.
What Claude Code and Codex cost today, and how close each account is to a rate limit. One panel in the macOS menu bar.
macOS 26 or later·Apple Silicon or Intel·No account, no telemetry
The cost is what Sissy counted at published rates, not what a vendor charged.
The provider rows, the agents line and the identity line open the pages behind them.
Rate limits
The Overview shows one gauge per account, on the window it is closest to running out of.
69%
The mark on the bar is where even spending would have reached by now, so being ahead of pace is visible instead of calculated.
Claude · xSmyile · weekly windowPace at this hour
Click the gauge for that account's own page: the session and the week, each with what is used, how far off pace it is, when it runs out at this rate and when it resets. Under them, today against the days before it, and this account's own projects.
Accounts
A work account, a personal one, a Codex sign-in beside them: each gets its own row, its own windows and its own plan. The day's cost adds them up. The limits never do, because a window belongs to an account.
claude starts as it, and a session that is already open will switch it back when it next refreshes its token, so quit that one first.Agents
A rate limit and the Mac's memory are the two things that stop work now, so the Overview keeps one line about agents next to the gauges. Click it for the page behind it.
Every running session with its memory and how long it has been up, named after the repository it is working in, and under them the day: how many sessions and agents it has had, how long it was worked, and when.
Git
The work repository you are about to push under your personal name, or the other way round. For every repository your agents have worked in, Sissy asks git who would sign the next commit, and compares it with the other repositories on the same forge account.
Findings come first, with the name it would commit under, what its forge expects and how many repositories say so, and the file the wrong value comes from. Where that file is the repository's own, Copy the fix puts the git config --unset-all command on the clipboard. Sissy never writes to a repository or to any git config. A commit made with -c, --author or GIT_AUTHOR_EMAIL is outside what it can see, and the page says so.
Privacy
Sissy reads the logs Claude Code and Codex already write on your Mac and does the arithmetic there. It has no account of its own, no analytics and no crash reporting, and it binds no port.
The first launch asks for nothing: no Full Disk Access, no keychain dialog, no prompt of any kind.
Sissy does connect out, for readings you asked for: each vendor's usage endpoint, the public price list, a forge you connected, a status page. Each has an off switch of its own, the way the counters above do.
Anything that costs a permission, or writes into another program's files, is off until you switch it on and says what it will do first.
| Host | For | Off |
|---|---|---|
raw.githubusercontent.com | LiteLLM's public price list, daily | remotePricing: false |
api.anthropic.com | Usage and profile, with Claude Code's own token | Switch the Claude Code provider off |
claude.ai | Usage and credits for a Claude account you linked | Unlink the account |
chatgpt.com | The Codex usage endpoint | Switch the Codex provider off, or unlink |
auth.openai.com | Signing a Codex account in, and renewing that credential afterwards | Unlink the account |
api.github.com, or the Enterprise or GitLab host you connected | Your own activity counts | Disconnect it in Settings ▸ Forge |
status.claude.com, status.openai.com | Each vendor's public status page | statusChecks: false |
One day-by-model archive under ~/Library/Application Support/Sissy/history/: totals, repository paths, session counts and how long each day was worked. Never prompts, and never a line of your logs. Settings names the folder, deletes it on a button, and historyRetentionDays bounds it, with 0 recording nothing.
Off by default. Name projects even when Sissy is off adds one line to ~/.claude/settings.json and one to ~/.codex/hooks.json, and takes both out when you switch it off. Use in CLI writes the Claude account you picked into the slot the CLI reads its credential from.
How it works
No daemon, no socket, no second half to keep in step. Quit Sissy and the counting stops.
ccusage prices from LiteLLM too, which is why the two agree.~/.claude/projects/**/*.jsonl, or wherever claudeDataDir points~/.codex/sessions/**/rollout-*.jsonl, honoring CODEX_HOMEgit, to resolve a project and read its commit identityBoth CLIs report the same things: tokens, cost, the per-repository split, the sessions and agents behind them, every rate-limit window, the plan and the credits. Claude Code is on unless you switch it off; Codex is picked up whenever its session directory exists.
Install
macOS 26 or later, Apple Silicon or Intel. Free and open source.
brew install --cask xsmyile/sissy/sissyThe app is Developer ID signed and notarized, so there is no xattr workaround and no right-click → Open. The first launch asks for nothing.
brew uninstall --cask sissyOr drag Sissy out of Applications. Either way the counting stops: no daemon to kill, no power assertion still held, nothing listening anywhere.