Metadata-Version: 2.4
Name: jitters-cli
Version: 0.2.0
Summary: Jitters the VibeCoder, an anxious monkey, in the state of your week of commits: groggy after 2 am, fit after a week of daytime ones. CLI, MCP server and a Claude Code status line; sends nothing.
Author: Vibeoverflow
License-Expression: MIT
Project-URL: Homepage, https://vibeoverflow.lol/week?src=pypi
Project-URL: Shop, https://vibeoverflow.lol/shop.html?src=pypi
Keywords: mcp,mcp-server,git,commits,vibe-coding,claude-code,statusline,status-line,cli,tamagotchi,monkey
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: Console
Classifier: Topic :: Software Development :: Version Control :: Git
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# jitters-cli

**Jitters the VibeCoder, an anxious monkey who codes, in the state of your week of commits.** Groggy after your 2 am commits, fit after a week of daytime ones, on the sofa after a week of none.

![Jitters at 3:33 am, asleep on the keys](https://vibeoverflow.lol/shop/333am.webp)

```
uvx jitters-cli
```

(or `pipx run jitters-cli`; with Node: `npx -y https://vibeoverflow.lol/dl/jitters-cli.tgz`)

```
        .-"""-.   3am
   .-. / .---. \ .-.
  ( (_|  @   -  |_) )
   '-.|    v    |.-'
      \   ~~~   /
       '-.___.-'
  c[_] c[_] c[_] c[_] c[_]

Jitters, your week: groggy
You commit after midnight. He is groggy and on his fifth coffee.
```

It prints one link to see him drawn in that mood, with a picture to save: [vibeoverflow.lol/week](https://vibeoverflow.lol/week?src=pypi).

## What it reads

Only the dates and hours of **your own** commits (your `git config user.email`) of the last 7 days in the folder it runs in. No network call, no telemetry, no dependency. The link carries the mood word, nothing else. `--all` counts every author.

## The rules, first that holds

1. seven days with nothing committed: **sofa**
2. a third or more of your commits between midnight and 5 am: **groggy**
3. ten or more a day: **wired**
4. five days or more of daytime commits, none after midnight: **fit**
5. one or more a day: **steady**
6. less than one a day: **sleepy**

## In your Claude Code status line

He sits under your prompt all session, and gets more wrecked the longer you stay: fresh, wired after 90 minutes, groggy from 2 am, fried near a full context.

```
@(O_O)@ jitters wired | 133 min | ctx 41%
```

Install once, then one line in `~/.claude/settings.json`:

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

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

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

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

It reads only the JSON Claude Code pipes to it (session minutes and context use) and your clock; nothing leaves your machine. About 25 ms a run. The word `jitters` links to him drawn in that state (a clickable link in iTerm2, Kitty, WezTerm); `--no-link` turns that off.

## For your coding agent (MCP)

One tool, `jitters_week`: "how wrecked is my monkey?"

```json
{ "mcpServers": { "jitters": { "command": "uvx", "args": ["jitters-cli", "--mcp"] } } }
```

Claude Code: `claude mcp add jitters -- uvx jitters-cli --mcp`

## Options

`--json` prints the answer as JSON; `--all` every author; `--mcp` runs the stdio server; `statusline` the status line above.

## Him, on your desk

Jitters at your own commit hour on a mug, and his night as stickers: [the shop](https://vibeoverflow.lol/shop.html?src=pypi).

MIT. Made by the Vibeoverflow team, [vibeoverflow.lol](https://vibeoverflow.lol/?src=pypi).

<!-- mcp-name: lol.vibeoverflow/jitters -->
