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 pat gets 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. https://github.com/uppinote20/claude-pets submitted by /u/uppinote [link] [comments]