Skip to content

Latest commit

Β 

History

366 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Claude Pet β€” your Claude Code sessions, as a crab on your desk Claw'd cycling through every state β€” idle, thinking, working, cooking, waiting on you, done, and the status ticker

Every state, in order. Rendered straight from the sprite rig.

⬇️ Download for macOS Β Β·Β  Build it yourself Β Β·Β  What he never does

πŸ™ˆ The moment you switch windows, Claude goes dark

Claude Code tells you what it is doing inside the terminal. Switch to a browser, a design tool, or another repo and that goes away β€” and if you run several sessions at once, it was never visible in the first place.

Claw'd puts it back where you can see it. He sits on the desktop, always on top, and reflects your sessions continuously: which tool is running, what task is in progress, which one just finished, and which one is stuck waiting on you. No window to check, no tab to switch to. You glance at him.

He watches every running session, mirrors whichever is busiest, and clicking him opens a roster of them all.

πŸ¦€ Eight states, and every one is reading something real


Working
a tool call is in flight

πŸ”₯ Cooking
8+ tool calls a minute

Thinking
reasoning, no tool

πŸ‘€ Nudging
a plan awaits you

Done
a turn just ended

Needs you
blocked on a prompt

Idle
between tasks

Asleep
nothing running

Each state maps to something measurable. Cooking fires at 8+ tool calls a minute or a live subagent fan-out. Why 8? A normal session runs about 4 a minute and rarely passes 7, while a fanned-out sprint runs 22. Nudging means an ExitPlanMode is sitting there waiting for your answer. Thinking just shows three dots. There's no honest label for that moment, so he doesn't pretend to have one.

✨ Sixteen things he does when nobody asked


Jump

Stretch

Look around

Scuttle

Wave

Wiggle

Kickflip

Varial flip

Ollie

Cruise

Manual

Shove-it

Nollie

Bigspin

Tre flip

Laser flip

These run on a seven-second cycle, but only about eight cycles in ten fire, so the gaps stay irregular and he is still most of the time. The rotation leans hard toward the skateboard, and harder still when he is dressed for it: the Skater rides more sessions and finds more gold, Sonic leans toward the roll-away, and the Gundam would rather stand there. Land a trick and he says something about it β€” in character, if he is wearing one β€” and about one trick in twenty rides a golden board.

While he waits he shares what he knows: 76 fun facts across computer science, AI and Claude, plus 16 tips about Claude Code itself, every one checked against the installed build rather than the documentation.

Five fun facts in speech bubbles, each sitting still and wrapping to two lines

Every line sits still, wraps to two lines, and stays up long enough to read.

πŸ‘‹ He notices you


Hover him and he reacts β€” a wink, a little jump, a wave or a wiggle, picked once per hover so it holds while you stay. He stirs even when asleep.

Click him and he squashes down, then the roster opens. Press and hold to pet him and hearts rise. Poke him three times quickly for something else. πŸŽ‰πŸͺ„

Drag him anywhere, including onto a second display β€” he remembers where.

πŸ‘• Ten costumes, and every one of them moves

Claw'd front and centre landing a kickflip and shouting about it, Gundam reading an Anthropic fact on his left, the ninja thinking silently on his right

Pick one from the menu bar. Each costume is its own drawing, with its own animation. Frankenstein has bolts at the temples and throws sparks. Arcade is lit from inside like a cabinet. Arctic White gets falling snow, Gundam a scanning visor, Tiger a swishing tail.

He also keeps a calendar. Some weeks of the year, the menu grows.

πŸ“‹ Every session at once

The session roster: three live sessions with status dots, activities and project names, one pinned

These sessions are made up for the screenshot. The real panel shows your actual project directories, which is why we didn't screenshot the real one.

Click a row to pin him to that session; click again to go back to following the busiest. Summon a second pet from the menu bar and the two park beside each other without their speech bubbles ever overlapping.

πŸ—£οΈ Make him say your words

Every line in his speech bubble lives in one file. No strings scattered through the codebase, no config format to learn. Open Sources/ClaudePet/Support/vocab.swift, change the strings, rebuild:

// πŸ’¬ Between tasks. Encouragement, mostly.
case .idle: [
    "Let's build something awesome!",
    "your line here",          // ← add as many as you like
]

Rules let him say something specific when a task matches a pattern β€” a commit joke for git commit, your own line for deploy. The bubble holds 76 characters across two lines, so anything shorter than that sits still and is read whole. Only a status prompt scrolls.

β†’ The full guide to writing his lines

⬇️ Get him on your desktop

Download the latest .dmg, open it, drag Claw'd to Applications.

Requires macOS 14 or later on Apple silicon. There is no Intel build.

First launch says "unidentified developer". That is expected, and deliberate: notarizing would publish the author's legal name and Apple Team ID inside every copy. The one command that works on every version of macOS:

xattr -dr com.apple.quarantine /Applications/ClaudePet.app

If you'd rather use the UI: open it once, dismiss the warning, then go to System Settings β†’ Privacy & Security β†’ Open Anyway. On macOS 14 you can also right-click β†’ Open. macOS 15 removed that shortcut.

And if you'd rather not run someone else's binary at all, fair enough. Build it yourself in about thirty seconds.

Claw'd has no Dock icon. He lives in the menu bar: click the little crab there for size, sounds, Open at login, costumes, session pinning, a second pet, and hook installation.

πŸ”’ What he never does

This app reads your live Claude Code session data, so here is exactly what it does with it. Specifics, so you can check them yourself.

  • No network. At all. There is no URLSession, no socket, no analytics, no update check, and zero dependencies. Verifiable in one grep β€” which is most of why this repo is public.
  • Read-only on everything Claude Code owns. He never writes to sessions/, projects/ or tasks/. The file watcher opens with O_EVTONLY, a descriptor that cannot write.
  • He never reads a transcript whole. A bounded tail off the end. Measured on a 92 MB file: 21 events in 0.006s, 426 KB of memory.
  • One writer, and you press it. "Install Claude hooks…" is the only thing that touches settings.json. It backs up first, merges without destroying your existing hooks, preserves file permissions, and refuses rather than resets if the file will not parse.
  • Nothing leaves your machine, because nothing can.

πŸ”¨ Build him yourself

git clone https://github.com/internetdialup/claude-pet.git && cd claude-pet && ./run.sh

Builds, assembles the .app, ad-hoc signs it, launches it. Swift 6 toolchain, no dependencies, no package manager.

πŸ“š More

πŸ—£οΈ Writing his lines β€” the vocabulary, rules and banner copy
πŸ” How he knows β€” what on disk drives each state
🎨 The art β€” one 32Γ—32 rig, no sprite sheets
πŸ“‹ Changelog
🀝 Contributing

All twenty-five props in one strip: sparkles, terminal, check, bang, servers, mug, plan, hard hat, phone, fire, glasses, star, joystick, shades, ten skateboards and a surfboard

Every prop, from the same rig β€” no sprite sheet anywhere.

Unofficial, and not affiliated with or endorsed by Anthropic.
MIT β€” see LICENSE; trademark note in NOTICE.md.

About

Claw'd the desktop crab mirrors your live Claude Code sessions β€” every tool call, plan, and πŸ”₯ sprint, always on top, never online

Topics

Resources

Contributing

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages