Claude Code has one line under the prompt that you stare at all night. I gave it a face.

@(^_^)@ jitters fresh | 12 min | ctx 8% @(O_O)@ jitters wired | 134 min | ctx 41% @(-_-)@ c[_] jitters groggy | 214 min | ctx 63% @(x_x)@ jitters fried | 301 min | ctx 92% 

He is Jitters, an anxious monkey who codes. He starts every session fresh and gets more wrecked the longer you stay.

Install

pipx install jitters-cli # or: uv tool install jitters-cli 

Then one line in ~/.claude/settings.json:

{ "statusLine": { "type": "command", "command": "jitters-cli statusline" } } 

Already have a status line? Keep it; he sits after it:

{ "statusLine": { "type": "command", "command": "jitters-cli statusline -- ~/.claude/statusline.sh" } } 

The rules, first one that holds

  1. 85% of the context window or more: fried
  2. between 2 and 6 am on your clock: groggy, with a coffee
  3. 90 minutes or more in the session: wired
  4. anything else: fresh

What it reads

Only the JSON Claude Code pipes to a status line command (cost.total_duration_ms and context_window.used_percentage) and your local hour. No network call, no telemetry, the standard library only. About 25 ms a run, so the line never waits on him.

The word jitters links to him drawn in that state, like this; it is clickable in iTerm2, Kitty and WezTerm. --no-link turns that off. The package: pypi.org/project/jitters-cli.

How fried is yours right now?

The Vibeoverflow team