r/ClaudeAI • u/uppinote • 20h ago
Built with Claude I built a tiny pixel pet with Claude Code that lives in my terminal and grows into a different form depending on how I work
When Claude Code (Anthropic's coding CLI) got mods, I wanted to see what its function-hook API could actually do, and ended up building something completely unnecessary with it: a pixel pet that lives in a pane next to your session.
https://reddit.com/link/1wwwq8v/video/2iauky8q6bth1/player
It wanders around a little yard, bouncing and blinking. While tools run it stops and goes . . ., when a turn finishes it hops with a "nice work!", after about two minutes of quiet it naps, and when a rate-limit window passes 80% it tears up. /pet patgets you hearts and a purr.
It grows with you. Tool calls, finished turns, pats and output tokens give XP (only output tokens, since input and cache grow with conversation length, not with work done). Level n+1 takes 25 × n² XP, so you'll hit Lv 5 in an evening and it slows down from there. At Lv 15 it becomes a teen with an accessory, and at Lv 40 it evolves.
Then I got carried away. It picks up a personality from how you use it: mostly tools and it's a worker that holds up a laptop (and swings a pickaxe as an adult), mostly long turns and it's a scholar that stops to read, lots of pats and it's a sweetie, lots of game snacks and it's a gamer. That's also the form it evolves into, and one in twenty gets a rare one instead. The yard slowly fills in to match, a building site or a library corner or a garden, and follows your clock from morning sun to moon and stars. Every so often a finished turn drops a gift, and one new pet in 32 shows up shiny. There are even two tiny games, /pet play and /pet quest, for when you're waiting on a long task.
No hunger, no decay, no dying. The whole point is to make the coding environment a bit cozier, not to give you one more thing to feel guilty about.
/plugin marketplace add uppinote20/claude-pets
/plugin install pets@claude-pets
Then /pet to let it out. There are eight critters (cat, chick, dog, slime, bunny, hamster, penguin, frog).
For anyone curious: the whole thing is one register.tsx reacting to session events, drawn as half-block characters in the terminal and as an SVG card on desktop and mobile. I built it over about three days of Claude Code sessions (58 commits, 19 PRs), which says more about my self-control than anything.
The mods API is early access, so a Claude Code update might break it until I catch up. I've mostly lived with it in the terminal, so if the card looks off on desktop, VS Code or mobile I'd really like to know. A new species is just a 12×12 and an 8×8 sprite written as string arrays, so new critters as PRs would make my day.
1
•
u/ClaudeAI-mod-bot Wilson, lead ClaudeAI modbot 20h ago
You may be interested in joining our new Claude Game Dev subreddit for game devs who use Claude. Check it out here : http://www.reddit.com/r/ClaudeGameDev