Skip to content

Latest commit

Β 

History

304 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.

✨ Ten things he does when nobody asked


Jump

Stretch

Look around

Scuttle

Wave

Wiggle

Kickflip

Varial flip

Ollie

Cruise

These run on a seven-second cycle, but only about seven cycles in ten fire, so the gaps stay irregular and he is still most of the time. The rotation leans toward the skateboard. Land a trick and he says something about it, and about one trick in fifty 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 β€” one short enough to sit still, the rest scrolling past as tickers

Short lines sit still. Long ones scroll past, and stay 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. Keep lines under 28 characters and they sit still; longer ones scroll past as a ticker.

β†’ 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 eighteen props in one strip: sparkles, terminal, check, bang, servers, mug, plan, hard hat, phone, fire, glasses, star, joystick, shades, and four skateboards

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