Meet Zeca β a pixel-art parrot that lives on top of your screen and reacts to Claude Code running in your terminal.
When Claude finishes a task, he celebrates. When Claude needs you β a question, a plan to approve, a permission β he chirps and calls you. When you step away, he naps. Click him and you jump straight to the terminal of the session that needs you most. Drag him anywhere; he remembers where you put him on each monitor, and follows the one you're working on.
| | Claude finished β a hop, a short flight, confetti β and a bigger flight across the screen with a confetti rain when the job was large. |
| | Claude needs you β he chirps with a! and a bubble showing the project. If you're not looking, the call escalates β always with a ceiling. |
| | Working β nearly still, pecking a seed now and then. |
| | Nobody around β yawns and sleeps. |
He sees every Claude Code session β even ones you opened before installing him β by reading your session transcripts, so there's nothing to reload.
It's Rust. All the pet logic β the "brain," the animator, the L1βL4 escalation state machine β lives in a platform-pure core with fake-clock tests; each OS (Linux/Wayland, macOS, Windows) just implements a small Overlay/ Desktop trait pair behind it, so cargo clippy --target cross-checks all three from one machine. unsafe is confined to the platform crates (Win32/AppKit).
It draws as a click-through, always-on-top overlay and is deliberately cheap: an idle, awake pet averages β€2 screen redraws per second, and 0 while asleep.
Zeca only ever sees metadata β event names, a session id, the project folder name, a hash of an edited file's path. Your prompts, Claude's responses, your code, and window titles never leave the machine, never hit a log, and are never written to disk. The daemon binds to 127.0.0.1 only and talks to no network. (So no, there's no usage telemetry β by design.)
The art is CC0 β the whole point is your pet. A skin is just a sprite sheet + a small skin.json mapping animations to states, so even a recolor is a one-liner:
macOS or Linux (Hyprland):
curl -fsSL https://raw.githubusercontent.com/butkeraites/claude-pet/main/scripts/get.sh | sh
Windows (PowerShell):
irm https://raw.githubusercontent.com/butkeraites/claude-pet/main/scripts/get.ps1 | iex
It's brand new and MIT-licensed. I'd love your feedback, a star, your own sprites, and especially help with more Linux compositors: