A floating desktop companion for Claude Code power users.
Real-time session monitoring • Pixel pet gacha • Dynamic Island mode
Running multiple Claude Code sessions in parallel means constantly switching terminal tabs to check:
- Is that session waiting for my permission?
- Did that long task finish yet?
- What is Claude doing right now?
Claude Buddy puts all of this into a single floating widget. One glance, full picture.
Real-time tracking via Claude Code hooks. Zero configuration needed.
| Status | Indicator | Meaning |
|---|---|---|
| Running | 🟢 Pulsing green | Claude is working |
| Waiting | 🟡 Solid yellow | Needs your permission |
| Idle | ⚪ Gray | Done or paused |
- Auto-sort: waiting sessions float to the top so you never miss them
- Quick jump: click a session card to focus its terminal tab
- Context menu: right-click for Focus / Rename / Remove (names persisted per directory)
A compact pill-shaped floating bar for minimal screen distraction:
- Color-coded dots per session (yellow = needs attention)
- Pixel pet animates with session state changes
- Draggable, always on top, theme-aware
Every time a Claude Code session ends, there's a chance to hatch a pet. The egg-crack animation plays right inside the Dynamic Island.
14 pets across 5 rarity tiers:
| Rarity | Pets | Drop Rule |
|---|---|---|
| N | Chick, Snail, Hamster, Turtle | One-time (removed from pool once owned) |
| R | Cat, Fox, Penguin, Bunny | One-time |
| SR | Capybara, Pikachu | One-time |
| SSR | Lei Yi, Dao Dun | Repeatable |
| UR | Dragon, Phoenix | Repeatable |
- Base drop rate: 15%, +10% if session > 10 min, +10% if > 30 min
- Collect 3 of the same SSR/UR pet to trigger Golden Evolution (special glow effect)
Browse all 14 pets. Click any unlocked pet to set it as your active companion. Golden-evolved pets display a star badge and golden border.
4 built-in themes with opacity slider:
| Dark | Light | Glass | Cyberpunk |
|---|
- Always on top (screen-saver level)
- Minimize to system tray
- Frameless & draggable
- Auto-launch when Claude Code starts a session
git clone https://github.com/handsome-rich/claude-buddy.git
cd claude-buddy
npm install
npm startOn first launch, Claude Buddy automatically configures hooks in ~/.claude/settings.json. Your starter pet (Chick) is unlocked immediately.
npm run build
# Output: dist/ClaudeDashboard.exeClaude Code hooks ──curl──▶ Express (127.0.0.1:3120) ──ws──▶ Electron UI
│
Gacha roll on Stop
│
~/.claude/dashboard/gacha.json
- Claude Code fires lifecycle hooks (SessionStart / PreToolUse / Stop)
- Hooks send HTTP POST to the local Express server inside Electron
- Express broadcasts state changes to the renderer via WebSocket
- On session stop, a gacha roll is triggered with rarity-weighted RNG
claude-buddy/
├── main.js # Main process: Express + WebSocket + Gacha engine
├── preload.js # Electron context bridge
├── focus-tab.ps1 # PowerShell script to focus Windows Terminal tabs
├── package.json
├── icon.ico
├── renderer/
│ ├── index.html # UI shell
│ ├── style.css # 4 themes + Dynamic Island + animations
│ ├── app.js # WebSocket client, rendering, gacha notifications
│ └── pets.js # 14 pixel pets (compressed pixel art) + unlock system
└── screenshots/
- OS: Windows 10 / 11 (Windows Terminal recommended)
- Runtime: Node.js >= 18
- CLI: Claude Code installed
MIT




