Free & open source · macOS menu bar

A desktop pet
for Claude Code

A small floating companion that reacts to your Claude Code sessions in real time — idle, working, needs your permission, ready for review, or failed. Click it to jump straight back to the right session.

>_

Fix login redirect bug

Editing AuthController.swift

01

A hook fires

Claude Code already runs hooks on every prompt, tool call, and permission check — no extra config beyond merging one JSON snippet.

02

A tiny script writes state

A stdlib-only Python bridge writes one small JSON file per session — fast enough to never add latency to your turn.

03

The pet reacts

The menu-bar app watches that file and updates the pet's pose and status bubble in real time.

Features

Everything you'd want from a status pet

Built to mirror the real Codex desktop pets, adapted for a CLI-first tool with no first-party app window of its own.

Reacts to your session

Idle, working, needs permission, ready for review, or failed — each with its own pose and a plain-English status line.

Inline permission bubble

Allow or Deny right on the pet when Claude Code actually needs a decision — never on every auto-approved tool call.

Activity tray

Every active session, ranked by urgency. Click a row to jump straight to that terminal or IDE window.

Multi-session pets

Prefer one pet per session instead of a single aggregate? Toggle a mode that lays them out in a row.

Custom pets

Drop in your own spritesheet, or reuse real Codex-format pets — same manifest, same conventions.

Reduce Motion aware

Freezes on a still frame instead of animating when your system's Reduce Motion setting is on.

Install

Two minutes, no App Store

A plain .app bundle plus one hook snippet merged into your Claude Code settings.

# 1. Download and open the app
open ClaudePet.dmg
# drag ClaudePet.app to Applications

# 2. Wire up the hooks (see README)
cp ~/.claude/settings.json ~/.claude/settings.json.bak
# merge hooks/settings-snippet.json into it

# 3. Launch it
open /Applications/ClaudePet.app

Ad-hoc signed, not notarized — right-click → Open on first launch, or run xattr -dr com.apple.quarantine on the app.

# Build from source instead
git clone https://github.com/MOHAMEDSAMEER78/claudepet
cd claudepet
./build_app.sh release
open ClaudePet.app

Requires macOS 13+ and Swift 5.9+ (Xcode Command Line Tools is enough). Full hook wiring and custom-pet instructions are in the README.