Tamamon - A desktop pet that grows as you code with Claude Code

by
Tamamon is a macOS desktop pet that lives on top of your screen and grows the more you build with Claude Code. What it does: - 20 species to collect through a weekly gacha, each with its own evolved forms and quirks - Feed it, play (ball, bubbles), and decorate its habitat - Reacts to real time and weather — when it rains or night falls, your pet heads home to rest - Nothing leaves your Mac. No account, no sign-in, no tracking, nothing uploaded.

Add a comment

Replies

Best
Hi everyone 👋 I'm the solo maker behind Tamamon. I live in Claude Code all day, and I wanted something on my screen that grew alongside the work — a small companion instead of another dashboard. So Tamamon starts as an egg, and the more you build with Claude Code, the more it hatches, grows, and evolves. A few honest notes, because I want to get this right: - It grows from your local Claude Code coding activity on your Mac (token-based). The little HUD shows today + this week of that activity, plus live CPU and Memory. - It does NOT show your Claude subscription session or weekly limit %. People sometimes assume that, so I want to be upfront: it reflects your local coding activity, not your account status. - Everything stays on your Mac. No account, no sign-in, no tracking, nothing uploaded. Beyond the growth loop: there are 20 species to collect via a weekly gacha (each with evolved forms and quirks), you can feed and play with it (ball, bubbles), decorate its habitat, and it reacts to time and weather — when it rains or night falls, it wanders home to rest. It's early beta, free, macOS 15+ Apple Silicon (signed + notarized). Download is on GitHub Releases; there's a Ko-fi if you'd like to help me keep drawing pixels. Website:

 been running a handful of parallel claude code sessions across different repos most days. curious if tamamon pools that into one global growth counter or can tell projects apart. kind of hoping the answer is one pet for everything, not five pets side-eyeing me from different corners of the screen.

 Good news — it's one pet for everything. Tamamon pools all your local Claude Code activity on this Mac into your single active pet's growth; it doesn't split by repo or project. So no corner-of-the-screen committee side-eyeing you — just one companion growing from the whole day's work. Thanks Dmitry!

 Congrats. Quick question: what behaviors or coding milestones unlock different species or evolutions, and do you plan any ways for users to influence progression explicitly beyond the passive activity tracking?

 Great question. Species come from the weekly gacha roll (luck, not a behavior gate) — so collecting is its own loop. The growth stages (hatch → adult → evolved) come from your cumulative coding activity. The one place you DO explicitly influence things today is care: how well you keep your pet fed and happy shapes its final evolved form (a bright "radiant" form vs a darker one — it's karma). And yes — making progression react to coding behaviors (debugging, shipping, tests) rather than raw volume is the direction I'm most excited to explore next; several people asked for exactly that.

 congrats on the launch!!!

I love that you turned coding activity into something playful instead of another productivity chart. Sometimes a little companion is a much better motivator than another dashboard full of numbers.

I'm curious, after watching people use Tamamon, have you noticed it actually encouraging developers to code more consistently, or is it more about making long coding sessions feel a bit more enjoyable?

Wishing you an awesome launch! 💥💥💥

 Thank you! Honest answer: it's deliberately the second one. I didn't want it to nag you into coding more — that's the guilt-loop I was trying to avoid — so it's built to make the sessions you're already having feel a bit cozier and less lonely. It's early to claim hard behavioral data, but the reactions I love most are the ones about it just being nice company, not about output. Appreciate the kind words 💥

 Such an awesome launch This is a fun concept! Have you thought about tying its growth to something like weekly coding streaks or merged PRs rather than raw session time, so it stays meaningful the longer people use Claude Code? Curious what early retention looks like after the first week or two.

The "grows from local Claude Code token activity, nothing leaves the Mac" framing is what keeps this charming instead of turning into a productivity guilt-meter. Since there's no account or sync, what happens to a collection I've spent weeks on if I switch Macs or reinstall — is there a local backup/export, or does the gacha roster start over? I'd happily leave it running all day if the evolved species carry across machines.

 Really appreciate this — "productivity guilt-meter" is exactly the trap I was trying to avoid. Quick update: you asked, and it just shipped. As of v0.4.8 there's one-click Export / Import in the tray menu — save your whole collection to a file and load it on another Mac. Fully local, no account, and your current collection is backed up automatically before any import, so nothing is ever lost.

On the same Mac it was already safe (the save lives in ~/.config, separate from the app). Leave it running — I'd love that.

Turnaround from question to shipped export is genuinely wild. Does the export carry the evolution progress and streak history too, or just the current species roster? Wondering if a restored collection picks up where it left off or resets the growth clock.

 Great question. It carries the full state, not just the roster — every creature keeps its stage, its evolved form, and the care history (the karma that decides how it grows). So a restored collection picks up exactly where it left off; nothing resets. It even preserves your weekly-draw timing, so re-importing can't reset the gacha clock. Your evolved companions travel intact.

launched my own product this week and spent the whole time staring at analytics dashboards, so a pet that just vibes next to the work instead of measuring me is weirdly exactly what I needed lol

the "heads home when it rains" detail is what sold me. that's not a feature, that's a personality

 "That's not a feature, that's a personality" might be my favorite thing anyone's said about it. I had the same staring-at-dashboards fatigue, which is why it measures nothing and just keeps you company. Congrats on your own launch this week.

The same should be done for people who code without AI, so they will be motivated to work on their own code more organically :)

 Love that — a version that grows from your own commits or activity regardless of AI is a genuinely nice idea. I'll keep it in mind. Thanks for the thought.

Shipping export/import mid-launch because a commenter asked for it beats any launch video. Well done! I was wondering if token volume used to mean a human at the keyboard (but a growing share of Claude Code usage is agents grinding unattended overnight), then does an egg hatched by a background run feel earned?

 Really good question, and one I'm genuinely sitting with. Today it counts token activity flat, so an overnight agent run grows the pet the same as hands-on-keyboard time — which does dilute the "earned" feeling you're pointing at. Distinguishing attended vs unattended, and weighting the hard human runs more, is exactly the direction the top feedback is pushing me. Thanks for the thoughtful one!

Great work and a fun idea for me as a retired tamagotchi enjoyer to make me want to maximise my usage of Claude code. That is while my plan simultaneously ensures i am using it for productive tasks.

The tool was very easy to install and immediately went to work which, as someone who uses Claude code but works in marketing and isn't necessarily looking to debug anything, is much appreciated.

One thing I do note (appreciating that I may not be the main target audience here), is that at my roles usage levels of Claude code, it is going to take me a very long time to hatch this first egg. Given the multiple species and gacha element this will limit my enjoyment a bit. As this is a personal tool and nothing leaves the device, it would be interesting if it could assess the weekly usage for the individual installing and re-balance the experience gain for the Tamamon dependent on the expected weekly usage.

 This is genuinely one of the most useful notes from the whole launch — thank you. You've put your finger on a real gap: at lighter usage the first hatch takes too long, and since that hatch is the gateway to the whole collection loop, it gates the fun before it even starts. Your instinct also fits the design perfectly — because everything stays on your Mac, the app can read your own baseline pace and calibrate the early growth so the first hatch lands in a satisfying window no matter how heavy your usage is (while keeping the top-end evolution aspirational for the all-day-in-Claude crowd). That adaptive early pacing is exactly what I want to explore next. Really appreciate you taking the time to write this out.

 No problem, great work and glad this is something you are interested in. Will continue following the build and I look forward to hatching this egg!

 Thank you John! 🐣 Since your update — the hatch is now a proper little moment: your friend appears, you name them, and you can share the card. Hope yours cracks open soon!

 Back with just a question this time. Could you explain to me what I am seeing when I activate "session pets"? I recognize their names, but they are idle and I am wondering what this is telling me.

 Great question, and it's a fair one because they're doing something different from your main Tamamon.

The session pets are one little character per active Claude Code session you have running. Each one is labeled with that session's project, so you can tell them apart at a glance — that's the names you're recognizing. They wander your desktop as a lightweight, ambient way to see all your sessions at once without alt-tabbing around.

Each pet also carries a small status badge:

  • ⚙️ Working — Claude is actively doing something in that session

  • ⏳ Waiting — that session is waiting on you for input (the useful one — it's your "come back to me" nudge)

  • 💤 Idle — the session's just sitting there, nothing happening right now

So if they're all showing Idle, that's the honest read: those sessions aren't doing anything at that moment. One thing worth checking — the live Working/Waiting states only update when "Session detection" is enabled (menu bar → Session detection (waiting-for-input alerts)). Without it on, they'll stay idle-looking. With it on, you'll see them flip to ⏳ Waiting the moment a session needs you, and the main pet will even startle to point it out.

(And to be clear — these are separate from the Tamamon you're hatching. Think of the session pets as your little crew of workers, and your Tamamon as the companion that grows from all that coding. 🐾)

Really appreciate you digging in — let me know if that clears it up!

 Hey John — I just shipped a fix for exactly this (v0.9.0). 🐣

Quick answer to your question: each roaming pet is one of your Claude Code sessions, and the badge is meant to tell you its live status — working, waiting for your input (the useful one — your "come back to me" nudge), or idle. The reason yours all read idle is that the live states only light up when Session detection is turned on (menu bar), and it's off by default — so the app was showing you a placeholder and not explaining it. That's on me.

As of the update: if detection's off, the pets now honestly say "Detection off" and every one has a hover tooltip telling you what it means and how to light them up. Flip on Session detection and they go green while a session's working, blue the moment one needs your reply — and your main Tamamon even startles to point it out.

Thank you for asking instead of just bouncing — this one's straight from your question. 🐾

Congrats on the launch! 🚀

This is such a fun idea. I like that Tamamon makes coding feel a little more playful without turning into another productivity dashboard or streak-pressure tool.

The local-only approach is also a big plus. Curious if you plan to support backup/export later so people can keep their pets and evolved species when switching Macs.

 Thank you. And good timing — it just shipped: v0.4.8 adds one-click Export / Import of your whole collection, so your pets and evolved species come with you when you switch Macs. Fully local, no account, with an automatic backup before every import.

The Claude Code hook is clever because it ties the pet's state to something that actually varies across sessions, not just a timer or a step counter. Curious what signals Tamamon is actually reading. Is it token usage, task completions, session length, or something more granular like whether the agent succeeded or had to retry? The difference matters because a pet that grows when you grind through a painful debugging session feels earned, but one that just tracks raw activity is basically a Tamagotchi skinned over a pomodoro timer.

 Great question, and you've hit the exact tension I kept thinking about. Right now the growth follows your coding activity over time — the weekly volume moves it from egg to baby to adult to evolved. A separate care layer decides the final form: look after it and it grows into a radiant version, neglect or overfeed it and it darkens. What it doesn't do yet is tell a hard-won debugging grind apart from raw activity. Honestly, growth you earn by pushing through a painful session is a direction I'd love to explore. It all reads locally, nothing uploaded.

   the earned-vs-raw-activity question is the interesting one. i hook into claude code's own events for other automation (pre-push gates, stale-state checks) and the signal that's lready sitting there for a "hard session" is compaction count — a session that trips context compaction a few times reads as a longer grind than one that finishes in one pass, independent of raw token volume. probably cheaper to read than scoring task success/retry directly.

   This is genuinely useful — thank you. Compaction count as a "this was a grind" proxy is clever precisely because it's already in the transcript and needs no success/failure scoring; a session that trips compaction a few times really does encode effort that raw token volume misses. That's exactly the kind of cheap, honest signal I want if I make growth feel earned rather than just accumulated. Noting this one down for the behavior-aware growth work. Really appreciate you thinking it through.

This is super cute. Dolloproof just hatched. I get a feeling this is going to be fun
One question, does it track session limits or can it suggest optimal coding period, eg clubbing two sessions?
Also, one pain point on claude code is to remember putting a querry to start a session so i optimize the day better, can it do that for me?

 Congrats on Dolloproof hatching 🥚 Honest answer: it's deliberately not a scheduler or a dashboard — it won't track your session limits, suggest clubbing sessions, or kick off queries for you. It just grows quietly from your local activity and stays out of the way. Those planning features are a different tool than the one I wanted this to be, but I hear the pain point. Glad you're having fun!

the 'waves when a session's waiting on input' bit is the sharp part — in the local jsonl, blocked-on-a-permission-prompt and you-walked-away look identical. last event's an assistant turn either way, so the tell has to come from outside the transcript.

 Sharp read — that's exactly the hard part. From the transcript alone a permission-block and a walked-away both look like "last event was an assistant turn," so the waiting signal has to come from the harness/idle state rather than the jsonl content itself. You nailed the tell.

1234
Next