← all work

Claude Buddy

Pixel-art desktop pets that react to the state of a Claude Code session - idle, thinking, working, done - published as an open-source repo on GitHub.

Type
Open Source · Open Source / Tooling
Year
2026
Role
Sole developer - built and publicly released.
github.com/JohanStefanes/claude-buddy ↗

Turns opaque agent activity into a glanceable desktop pet, driven by a decoupled state file and an idempotent launcher that only restarts the buddy when needed.

  • Published open source on GitHub
  • Decoupled state-file architecture
  • Idempotent hook-driven launcher

The problem

What Claude Code is doing in a session is invisible at a glance - I wanted an ambient, playful signal of its state without watching the terminal.

A pixel-art desktop pet that reflects a Claude Code session's state in real time, wired up through Claude Code hooks.

What I did

  1. Integrated via Claude Code hooks in settings.json that write a small state file on session events.
  2. Built a Tkinter renderer that polls the state file, keeping the pet fully decoupled from Claude Code itself.
  3. Added an idempotent launcher (ensure_buddy.sh) that only relaunches the buddy at session start when it isn't already running.

Outcome

A published open-source project with documentation - a small, finished tool that others can install and run.

Stack

  • Python 3
  • Tkinter
  • Shell
  • Claude Code Hooks
Next caseQuota

© Johan Stefanesback home

Get in touch
Still building this site