DEV Community

Cover image for Zeca: a pixel-art desktop pet that reacts to Claude Code
Renan Brito Cano Butkeraites
Renan Brito Cano Butkeraites

Posted on Fully Autonomous

Zeca: a pixel-art desktop pet that reacts to Claude Code

Meet Zeca — a pixel-art parrot that lives on top of your screen and reacts to Claude Code running in your terminal.

Zeca celebrating

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.

What he does

done Claude finished → a hop, a short flight, confetti — and a bigger flight across the screen with a confetti rain when the job was large.
needs you 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 Working → nearly still, pecking a seed now and then.
idle 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.

How it works

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.

Privacy was a hard constraint

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

Bring your own sprite

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:

Zeca in three palettes

Install — one command

macOS or Linux (Hyprland):

curl -fsSL https://raw.githubusercontent.com/butkeraites/claude-pet/main/scripts/get.sh | sh
Enter fullscreen mode Exit fullscreen mode

Windows (PowerShell):

irm https://raw.githubusercontent.com/butkeraites/claude-pet/main/scripts/get.ps1 | iex
Enter fullscreen mode Exit fullscreen mode

It's brand new and MIT-licensed. I'd love your feedback, a star, your own sprites, and especially help with more Linux compositors:

👉 https://github.com/butkeraites/claude-pet

Top comments (0)