ClaudePet is a native macOS companion that lives in a floating panel and reacts in real time to your Claude Code sessions — idle, working, waiting on permission, ready for review, or failed. Built entirely on Claude Code's hooks (no first-party API exists). Track streaks, XP, and per-project spend, jump between sessions with a command palette, and use custom Codex-format pet skins. Everything runs locally — nothing is ever uploaded.
Hey Product Hunt 👋
I built ClaudePet because I run Claude Code in a terminal all day and kept tabbing back and forth just to check if it was still working, waiting on me, or done. There's no first-party API for this — Claude Code is just a CLI — so ClaudePet is entirely hooks + a menu-bar app: a stdlib Python hook script writes session state to a JSON file, and the Swift app watches that file and animates a little pet accordingly.
A few things I'm proud of:
- Real hook-driven states (not polling), so it reflects the CLI within milliseconds
- It never makes decisions for you — when Claude Code needs a permission approval, ClaudePet just makes sure you notice; your terminal still handles the actual approval
- Local-only stats: streaks, XP/levels, and a spend/token breakdown, all derived from a local history log — nothing leaves your machine
- Drop-in support for Codex-format custom pets
Would love feedback, especially from anyone running multiple Claude Code sessions at once (there's a multi-pet mode + Activity Tray for that).