Open source · Windows · Rust

Ambient status for Claude Code

A lightweight pixel-art desktop companion for Windows that reflects your Claude Code activity at a glance. It shows when Claude is working, when your session is idle, and when you approach your usage limits. A single small executable, about 13 MB of memory.

npx claude-pixel-pet

Windows only. Requires Node.js. Running the command again while the pet is open does not start a second instance.

The five moods, animated side by side: idle (blinking), working (typing at a desk), sleeping (Zz), scream, and RIP (a tombstone with a flower)
Swipe to view all five moods

01 / Moods

Five states that track Claude Code activity

The pet monitors Claude Code activity and your usage, and updates its appearance so the current status is clear at a glance.

Working

Active session

Claude Code was active within the last 90 seconds.

Idle

Standing by

Claude is open but quiet, or Claude is closed.

Sleeping

Inactive

All Claude windows are minimized, or there has been no activity for 10 minutes.

Scream

Limit warning

Usage has reached 80% of the 5-hour limit.

RIP

Limit reached

Usage has reached 100% of the weekly limit.

02 / Skins

Customizable skins

Select a skin and it applies across every mood.

NoneHeadphonesCrownCat earsBeanie

Right-click the pet → Skin to select one. Your choice is retained between sessions and saved in ~/.claude/pet_settings.json.

Every mood in each skin, animated: four rows showing headphones, crown, cat ears and beanie, each across idle, working, sleeping, scream and RIP
Swipe to see every mood

03 / How it works

Usage limit data sources

The Scream and RIP moods depend on your usage data, which the pet obtains in one of two ways. Right-click the pet to view your usage and the active source.

Real limits Recommended

If you use a Claude Code status line, add one line to your status line script immediately after it reads its input. The line saves the 5-hour and weekly percentages that Claude provides to the status line into ~/.claude/pet_limits.json, which the pet reads. Values refresh each time the status line runs (Claude Code in a terminal), and the right-click menu shows source: Claude.

PowerShell · $data is the parsed input JSON
if ($data.rate_limits) { try { $data.rate_limits | ConvertTo-Json -Depth 5 | Set-Content -Encoding utf8 "$HOME/.claude/pet_limits.json" } catch {} }
Bash · $input is the raw input JSON, needs jq
echo "$input" | jq -c '.rate_limits // empty' > ~/.claude/pet_limits.json.tmp && [ -s ~/.claude/pet_limits.json.tmp ] && mv ~/.claude/pet_limits.json.tmp ~/.claude/pet_limits.json

Fallback estimate Automatic

Without that file, the pet totals the tokens in your Claude Code logs over a rolling 5 hours and 7 days and compares them with FIVE_H_LIMIT and WEEK_LIMIT at the top of src/main.rs. Adjust these values to match your plan, then rebuild with cargo build --release.

Activity and windows

The working, idle and sleeping states are derived from recent Claude Code activity and whether Claude windows are open or minimized. The Claude desktop app and the native claude.exe CLI are detected.

04 / Privacy

Local by design. No data transmitted.

No account, no telemetry, no network calls.

Reads local files

Claude Code's logs in ~/.claude/projects and ~/.claude/pet_limits.json.

Writes one file

Only ~/.claude/pet_settings.json, which stores your skin selection.

Sends nothing

No data is sent over the network. The source code is open for inspection.

05 / Usage

Usage, build and limitations

To obtain the newest version, run npx claude-pixel-pet@latest; npx retains the copy it previously downloaded.

Usage

  • Drag the pet with the left mouse button to reposition it.
  • Right-click to view your usage and its source, preview any mood, or quit.
  • Right-click → Skin to select a skin.

Build from source

Install Rust (MSVC with the Windows SDK, or the GNU toolchain). The built pixel_pet.exe is self-contained and can be copied to any location.

Terminal
git clone https://github.com/giannisBFMV/claude-pixel-pet.git
cd claude-pixel-pet
cargo build --release
target\release\pixel_pet.exe

Limitations

  • Windows only: window detection and the transparent window rely on Windows APIs.
  • An npm-installed CLI (node.exe) is not detected as an open window.
  • No automatic start with Windows. Place a shortcut to pixel_pet.exe, or a .cmd file containing npx claude-pixel-pet, in your Startup folder (Win+R → shell:startup).

Get started

Install in one command

Free and open source under the MIT license.

npx claude-pixel-pet