AgentTally is a standalone macOS menu bar app for tracking AI agent spending.
The app shows Claude Code and Codex spend for today and the current month, and refreshes every 60s.
Download the latest packaged build from GitHub Releases:
Then:
- Download
AgentTally.app.zip - Unzip it
- Move
AgentTally.appto/Applications - Open
AgentTally.app
On first launch, macOS may ask you to confirm opening the app.
AgentTally checks GitHub Releases for updates once per day and includes a
Check for Updates... menu item.
To build from source, you need:
mise
From this directory:
mise trust
mise install
mise run installThe install task copies the bundle to /Applications/AgentTally.app and launches it.
It also enables "Open at Login" by default the first time the app runs.
For local development:
mise run devFor screenshot/demo work with canned fixture data instead of live usage:
mise run demomise manages the Bun toolchain for this project and uses the system Swift toolchain. The build tasks install the local ccusage dependency, compile the helper, and stage both binaries into AgentTally.app.
To cut a new release:
mise run check
git tag -a v0.10 -m "v0.10"
git push origin v0.10Pushing the tag runs the GitHub Actions release workflow, which builds the app,
uploads AgentTally.app.zip, publishes appcast.xml, and makes the release
available to Sparkle. After the workflow completes, verify the new version at:
- https://github.com/stephanos/agenttally-macos/releases
- https://github.com/stephanos/agenttally-macos/releases/latest/download/appcast.xml
Release archives are signed for Sparkle updates with an EdDSA key. For local
releases, the private key is read from the macOS Keychain. For GitHub Actions,
set SPARKLE_PRIVATE_ED_KEY to the value exported by:
.build/artifacts/sparkle/Sparkle/bin/generate_keys -x sparkle_private_keyThe app bundle is ad-hoc code signed by default so Sparkle can verify release
archives without requiring an Apple Developer ID certificate. Set
CODESIGN_IDENTITY to use a real signing identity later.
