Launched this week

Tamamon
A desktop pet that grows as you code with Claude Code
442 followers
A desktop pet that grows as you code with Claude Code
442 followers
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.




Tamamon
@besslframework 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.
Tamamon
@dmitry_isaevski 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!
@besslframework 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?
Tamamon
@swati_paliwal 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.
@besslframework 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! 💥💥💥
Tamamon
@md_khayruzzaman 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 💥
Foyer
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.
Tamamon
@fberrez1 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.
@fberrez1 @besslframework 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.
Tamamon
@fberrez1 @webappski 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.
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.
Tamamon
@jhooley 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.
@besslframework 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!
The detail that got me isn't the gacha — it's that the pet perks up and waves when a Claude Code session is waiting on your input. I usually have two or three sessions running side by side, and "which one is blocked on me" is a problem I've half-solved with terminal bells. A pixel pet doing that job ambiently is honestly better UX.
Also appreciated the upfront note that it reads local coding activity, not subscription limits — that kind of honesty in a launch post is rare. Congrats on shipping, @besslframework 👌
Tamamon
@akbar_b This is exactly the use I hoped someone would catch — with three sessions side by side, a little creature perking up at the one that's blocked on you is a calmer signal than a wall of terminal bells. And keeping the honesty upfront mattered to me: it reads your local activity, nothing leaves the Mac. Thanks for the kind
words, Akbar 🙏
The no-account, no-upload framing is the detail that keeps this from becoming a productivity surveillance toy. For a local Mac companion tied to coding-agent work, I would keep the user-facing promise very explicit: what signal is read, where it is stored, and how someone can back up or reset it. That trust boundary is what makes small local tools feel safe to leave running all day.
Tamamon
@krekeltronics This is the most useful kind of feedback — thank you. You're right that for something you leave running all day, the trust boundary is the product. I'm making "what's read, where it's stored, how to back up or reset" more explicit in the app and on the site; export/import already shipped for the backup/reset half. Keeping that promise legible is the whole point.
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.
Tamamon
@qifengzheng 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.
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.
Tamamon
@leo404 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.
Tamamon
@leo404 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.