Skip to content

sahil87/tu

Repository files navigation

tu

Part of @sahil87's open source toolkit — see all projects there.

Latest release Downloads Stars

AI coding assistant cost tracking CLI. Track your token usage in style!

tu terminal output showing today's AI coding assistant costs across Claude Code, Codex, and OpenCode

Install

📖 Full walkthrough: the install guide covers install, shell completions, and multi-machine setup in depth.

brew tap sahil87/tap
brew install tu

Shell completions

# bash
echo 'eval "$(tu shell-init bash)"' >> ~/.bashrc

# zsh
echo 'eval "$(tu shell-init zsh)"' >> ~/.zshrc

# fish
tu shell-init fish > ~/.config/fish/completions/tu.fish

💡 Have other sahil87 tools? shll shell-install handles all of their shell integrations and autocompletions at once.

Update

tu update
# brew update
# brew upgrade tu

Usage

📖 See workflows for end-to-end recipes, and the full command reference for every command and flag.

tu                   # Today's cost, all tools
tu cc                # Today's cost, Claude Code
tu h                 # Daily cost history, all tools
tu cc mh             # Monthly cost history, Claude Code
tu m                 # This month's cost, all tools

Sources: cc (Claude Code), codex/co (Codex), oc (OpenCode), all (default)

Flags

  --json               Output data as JSON (data commands only)
  --sync               Sync metrics before fetching (multi mode)
  --fresh / -f         Bypass cache, fetch fresh data (data commands only)
  --watch / -w         Persistent polling mode with live display (data commands only)
  --interval / -i <s>  Poll interval in seconds (default: 10, range: 5-3600)
  --user / -u <user>   Show usage for a specific user (multi mode only)
  --by-machine         Show per-machine cost breakdown (data commands only)
  --no-color           Disable ANSI color output
  --no-rain            Disable matrix rain animation in watch mode

Setup (multi-machine sync)

tu init-conf         # Scaffold ~/.tu.conf
tu init-metrics      # Clone metrics repo
tu sync              # Push/pull metrics
tu status            # Show config and sync state

For end-to-end recipes — daily snapshots, history pivots, multi-machine sync, and watch mode — see workflows.

CI / branch protection

main is gated by a required status check named ci-gate. The CI workflow runs the build and the test suite on every pull request targeting main (and on pushes to main); the aggregating ci-gate job passes only when build-and-test succeeds. A branch ruleset on main requires ci-gate to be green before a PR can be merged.

Reproduce CI locally before opening a PR:

npm ci && npm run build && npm test
# or, with the task runner:
just test

Applying or adjusting the ruleset is an admin action (needs a gh token with admin scope on the repo). The exact, idempotent command is captured in scripts/ci-gate-ruleset.sh:

scripts/ci-gate-ruleset.sh           # dry-run: preview the ruleset payload
scripts/ci-gate-ruleset.sh --apply   # create/update the ruleset (admin only)

The script degrades gracefully — if gh is missing, unauthenticated, or lacks admin scope, it prints the manual steps instead of failing.

About

AI coding assistant cost tracking CLI — track token usage across Claude Code, Codex, OpenCode

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors