cb-zoo
v0.2.0
Published
Claude Buddy Gacha tool for rolling, collecting, and applying Claude Code buddies
Maintainers
Readme
cb-zoo
cb-zoo is a zero-dependency Node.js CLI and terminal UI for rolling, collecting, and applying Claude Code buddies.
It is a Claude Code companion manager with a retro terminal UI, gacha-style roll flow, unified local settings storage, local collection tracking, and backup/restore support for Claude UUID state.
Demo
If the embedded video does not render on GitHub, watch it here.
Features
- Default interactive terminal UI for rolling and browsing buddies
- Fast plain CLI flow with
--quickand--plain - Interactive no-flag TTY launches the TUI, while explicit command flags and non-interactive runs stay on plain CLI-safe paths
- Current buddy inspection with UUID-derived traits plus stored profile data
- Unified local settings saved in
~/.cb-zoo/settings.jsonfor backup data, collection capacity, pending roll state, and breed config/state - Shared roll-charge tracking in
~/.cb-zoo/settings.json, with configurable regen interval and max-charge cap - Local collection saved in
~/.cb-zoo/collection.json - Collection surfaces show current capacity, and saves stop at
maxBuddyentries (50by default) - TUI rolls persist unsaved reveals so the "Resume Roll" action restores the pending buddy after backing out or restarting
- TUI breeding uses configurable slot-based incubation stored in
settings.json, so multiple eggs can survive restarts and hatch from a dedicated slot picker - HOME keeps a stable
Breed Buddyaction while a slot summary box shows ready, incubating, and empty breed slots - Backup and restore flow for the original Claude UUID
- Zero runtime npm dependencies
Install
npm install -g cb-zooOr run it without a global install:
npx cb-zoo --helpRequirements
- Node.js 18+
- Claude Code initialized at least once so its account state file exists, usually
~/.claude.jsonor$CLAUDE_CONFIG_DIR/.claude.json
Quick Start
cb-zoo
cb-zoo --quick
cb-zoo --current
cb-zoo --collection
cb-zoo --backup
cb-zoo --restoreCommands
cb-zooOpens the default interactive TUI in a real terminal.cb-zoo --quickUses the fast plain reveal flow.cb-zoo --plainForces the legacy non-TUI CLI flow.cb-zoo --currentShows the current buddy by merging stored profile data with UUID-derived traits.cb-zoo --collectionShows the saved collection.cb-zoo --set-name "Nova"Updates the stored companion name.cb-zoo --set-personality "Calm under pressure."Updates the stored companion personality.cb-zoo --backupCreates the UUID backup in~/.cb-zoo/settings.jsonif it does not already exist.cb-zoo --restoreRestores the backed-up UUID.
Safety Notes
- The tool edits
oauthAccount.accountUuidfor rerolls and can also editcompanion.nameandcompanion.personalityfor the current stored buddy. - The original UUID is backed up inside
~/.cb-zoo/settings.jsonon first run. Existing~/.cb-zoo/backup.jsonfiles migrate automatically on first settings load. settings.jsonalso storesmaxBuddy, the current TUIpendingBuddy,breedConfig.slotCount,breedConfig.hatchTimes, and persistedbreedSlots;maxBuddydefaults to50.- Default breed config is
3slots with rarity hatch timers of10000,30000,60000,120000, and300000ms forcommonthroughlegendary, and users can override those values directly insettings.json. - Legacy single-slot
breedEggdata migrates intobreedSlots[0]on load, so older installs keep their in-progress egg. settings.jsonalso storesrollConfig.maxChargesandrollConfig.regenMs; defaults are100rolls and one refill every300000ms.- New rolls and rerolls spend one shared roll charge, while resuming an already pending reveal does not.
- Plain CLI refunds the spent charge if local persistence fails before the reveal reaches its Apply/Reroll/Quit prompt, and the TUI only commits a charge when it can persist the pending reveal in
settings.json. - When the collection is full, TUI Add/Equip keeps the pending buddy in place instead of discarding it.
- Breeding can still start while the collection is full, but hatched-buddy Add/Equip still respect
maxBuddyuntil you free a slot or discard the hatch. - Claude Code does not document this file schema as a stable public API, so future releases may change it.
- Re-authenticating Claude Code can overwrite the rerolled UUID, so keep the backup.
For Maintainers
- Manual release steps live in docs/deployment-guide.md.
- Local release gate:
npm run release:check - CI workflow:
.github/workflows/ci.yml
