Skip to content

Repository files navigation

claude-pushups

Claude Code does your job. You do push ups. That's the deal.

It counts the tokens Claude just burned doing your work, turns them into reps you owe, and puts the number in your status line where you can't ignore it.

The status line counting reps up while Claude Code works, then banking them to 48 owed

Nothing is blocked, nothing is gated, your prompts always go through. It just watches and adds up.

Get it

Needs bash, jq and awk.

git clone https://github.com/Deorbiting/claude-pushups.git
cd claude-pushups
./install.sh

Restart Claude Code. Got a status line already? It's kept, and the reps get stapled on the end of it. ./uninstall.sh puts everything back.

Use it

pu              # what you owe
pu done         # cleared 47. sure you did.
pu 20           # paid 20. 27 still owed.
pu skip         # write it off
pu tier rat     # switch tier

Inside Claude Code put a ! in front: ! pu done.

Debt survives turns, sessions and restarts. Only pu clears it.

Tiers

        name           tokens/rep   cap/turn   cap/day
  fat   fat fuck            4000         15        30
  cuck  claude cuck         2000         35        75     ← default
  rat   gym rat             1000         60       150
  roid  roid monkey          600         99       250
pu tier roid

Each tier talks to you differently. Find out.

Say something else

It's all in talk.txt, one line each:

tier|kind|text                       # tier "*" hits every tier
roid|jab-mid|your delts are lying
fat|tally-low|{n} reps. that is one advert break, fatty.
  • jab-low / jab-mid / jab-high / jab-max — status bar, at debt ≤20, ≤50, ≤100, 100+. Keep under 28 characters or the line wraps.
  • tally-zero / tally-low / tally-mid / tally-high — turn-end notification, at 0, ≤10, ≤30, 30+ reps. {n} is the number.

Drop your own talk.txt into ~/.claude/pushups/ and it overrides the shipped one. git pull won't touch it.

Bits and pieces

Reps come from output tokens, not the clock, so you don't get billed while you read a permission prompt. Subagents are +5 each. Ledger lives at ~/.claude/pushups/ledger.

macOS everything
Linux everything, notifications need notify-send
Windows, Git Bash or WSL works, no desktop notification
Windows, no bash no

bash test.sh — 34 asserts, no framework.

No streaks, no leaderboard, and nothing checks that you actually did them.

Licence

MIT.

About

Claude Code does your job. You do push ups. Reps priced in output tokens, shown in your status line, with escalating abuse.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages