Components/Agent pets

A pet for your coding agent

Put a pixel pet in a terminal pane next to Claude Code or Codex. It watches your agent work, live: it paces while it thinks, sniffs about while it reads your files, gets busy while it edits, panics when a command fails, cheers when the turn is done, and falls asleep when you wander off. It levels up as your agent ships.

Six terminal panes: a beetle pacing while the agent thinks, a cat reading colors.ts, a triangle editing Toggle.tsx, a penguin running npm test, a red jelly saying that didn't work, a duckling cheering done

Get it running

Split your terminal (Windows Terminal: Alt+Shift+D · iTerm: Cmd+D · tmux: Ctrl+B % · VS Code: the split button on the terminal), run your agent in one half and this in the other:

npx piixpal-pet

Or grab the single file (no npm needed, just Node 18+):

# macOS, Linux, Git Bash
curl -fsSL https://piixpal.dvkk.dev/pet.mjs -o pet.mjs
node pet.mjs
# Windows PowerShell
iwr https://piixpal.dvkk.dev/pet.mjs -OutFile pet.mjs
node pet.mjs

No setup: it finds whichever session was active last, Claude Code or Codex, by reading the logs they already write (~/.claude/projects, ~/.codex/sessions). Nothing leaves your machine. Press p to pet it, q to quit.

Thinkingpaces up and down while the agent works it out
Readingsniffs about: "reading colors.ts"
Editinggets busy: "editing Toggle.tsx"
Runningruns about: "running npm test"
Oopspanics, flashes red, when a command fails
Donecheers and hops when the turn is finished
Needs youwaves and rings the bell (with the hook below)
Asleepdozes off when nothing's happened for a while

The pets

Pick one with --pal; it remembers. npx piixpal-pet list draws them all in your terminal.

--pal bitbug --pal pip --pal boing --pal moss --pal kitty --pal penguin --pal gecko --pal tri --pal bumble --pal shibe --pal capy --pal frog --pal duckling --pal shel --pal roomba --pal hiss --pal termi --pal beep

Or bring your own: make a pal in the Pal Maker's Pixel tab, copy its code, and run npx piixpal-pet --make <code>. Your pet, watching your agent.

In Claude Code's status line

No room for a pane? Put a one-line pet in Claude Code's status line. Add this to ~/.claude/settings.json (point it at where you saved pet.mjs, or use npx -y piixpal-pet statusline):

"statusLine": { "type": "command", "command": "node ~/pet.mjs statusline" }

It shows the pet's face and what the agent is up to: (•̀ᴗ•́)✎ bitbug editing app.ts.

Let it tell you when the agent needs you

Optional. When the agent stops to ask permission, the pet waves and rings the terminal bell, so you can look away while it works.

Claude Code: a Notification hook in ~/.claude/settings.json

"hooks": {
  "Notification": [{ "hooks": [
    { "type": "command", "command": "node ~/pet.mjs notify" }
  ] }]
}

Codex: in ~/.codex/config.toml

notify = ["node", "/home/you/pet.mjs", "notify"]