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

> Source: <https://dev.to/butkeraites/zeca-a-pixel-art-desktop-pet-that-reacts-to-claude-code-38o4>
> Published: 2026-10-08 19:34:17+00:00

Meet **Zeca** — a pixel-art parrot that lives on top of your screen and reacts to [Claude Code](https://claude.com/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:
