Pick any Claude Code companion pet you want. Choose your species, rarity, eyes, hat, and name.
npx any-buddy@latest
That's it. If Bun is installed, you get the full interactive builder with live preview. Otherwise you'll see sequential prompts with a note to install Bun.

The builder lets you browse species, eyes, rarity, hats, and stats with a live ASCII art preview that updates as you scroll. Navigate with arrow keys, Tab/Enter to advance, Esc to cancel.
# npm (global)
npm install -g any-buddy
# or clone
git clone https://github.com/cpaczek/any-buddy.git
cd any-buddy && pnpm install && pnpm link --global
| Platform | Status | Notes |
|---|---|---|
| Linux | Tested | Auto-detects ~/.local/share/claude/versions/ |
| macOS | Tested | Auto-detects + ad-hoc re-signs after patching |
| Windows | Tested | Works with npm-based installs (cli.js) |
Set
CLAUDE_BINARY=/path/to/binaryif auto-detection fails.
any-buddy # Start screen — build, browse presets, or switch buddies
The start screen lets you pick between: - Build your own — full interactive builder with live ASCII preview - Browse presets — 23 curated themed builds with animated preview - Saved buddies — switch between your saved pets (shown when you have saves)
After picking your pet, the entire flow stays in the TUI — salt search with progress bar, naming, personality, patching, and hook setup.
any-buddy current # Show your current pet
any-buddy preview # Browse without applying
any-buddy apply # Re-apply after Claude Code update
any-buddy restore # Restore original pet
any-buddy buddies # Browse and switch between your buddies
any-buddy rehatch # Delete companion, re-hatch via /buddy
Skip prompts with flags (bypasses the start screen):
any-buddy -s dragon -r legendary -e '✦' -t wizard --shiny --name Draco -y
any-buddy --preset "Arcane Dragon" -y
All CLI Flags
| Flag | Short | Description |
|---|---|---|
--species <name> |
-s |
Species (duck, goose, blob, cat, dragon, octopus, owl, penguin, turtle, snail, ghost, axolotl, capybara, cactus, robot, rabbit, mushroom, chonk) |
--rarity <level> |
-r |
Rarity (common, uncommon, rare, epic, legendary) |
--eye <char> |
-e |
Eye style (· ✦ × ◉ @ °) |
--hat <name> |
-t |
Hat (crown, tophat, propeller, halo, wizard, beanie, tinyduck) |
--preset <name> |
Use a curated preset (e.g., "Arcane Dragon") | |
--name <name> |
-n |
Rename companion |
--personality <desc> |
-p |
Set personality (controls speech bubble) |
--shiny |
Require shiny (~100x longer search) | |
--peak <stat> |
Best stat (DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK) | |
--dump <stat> |
Worst stat | |
--yes |
-y |
Skip confirmations |
--no-hook |
Don't offer auto-patch hook | |
--silent |
Suppress output (for hooks) |
any-buddy restore
Patches the salt back to original and removes the auto-patch hook. Your saved buddies are preserved — use any-buddy buddies to reactivate one later.
See HOW_IT_WORKS.md for the full technical deep-dive on hashing, binary patching, the salt search algorithm, and the auto-patch hook.
any-buddy restoreSee CONTRIBUTING.md for development setup, project structure, and how to submit changes.
WTFPL -- Do What The Fuck You Want To Public License.
$ claude mcp add any-buddy \
-- python -m otcore.mcp_server <graph>