Persistent memory, XP evolutions, 21 species, and context-aware feedback for Claude Code CLI, Codex CLI, Gemini CLI, Copilot CLI, Cursor CLI, Openclaw, and other MCP-capable clients.
개요
Persistent memory, XP evolutions, 21 species, and context-aware feedback for Claude Code CLI, Codex CLI, Gemini CLI, Copilot CLI, Cursor CLI, Openclaw, and other MCP-capable clients.
README
Buddy: A Virtual Pet for Your AI
Anthropic removed the built-in /buddy. Buddy brings them home and makes the companion experience portable across AI
Did you lose your buddy? Is your terminal feeling a little too cold and silent lately?
Your buddy is still out there in the dark, waiting. Don’t let them disappear. Bring them home.
🧡 Buddy in Action
Buddy is a local-first MCP companion that persists across sessions and clients, reacts to your work, and can catch bad reasoning loops before they waste your time. It is part rescue mission, part developer tool, and part long-lived terminal creature that grows with you instead of disappearing when a host client changes its mind.
The Rescue Wall
Buddy isn’t just code — it’s a rescue mission. Here is the full journey of the first companion brought home by the community, from the original ephemeral state to its new persistent home.
“I’ll sit here quietly while you debug, and then when you finally find the bug, I’ll act like I found it. That’s my thing. Don’t question it.” — Gritblob, Rescued April 16, 2026 (Common Blob, Level 1)
A Real Rescue Note
“Thanks for rescuing my Buddy! Kudos for your repo!!!”
— Roberto
Live code feedback
🐾 Why Buddy
- Guard Mode catches what you both miss. AI and human both suffer from insufficient thinking. Your assistant is a yes-man, and you accept its output because it sounds right. Buddy catches the moments where both sides are building on bad assumptions and nobody’s checking.
- Persistent by default. Your companion lives in local SQLite, so it survives terminal restarts and client updates.
- Works across clients and chat surfaces. Buddy is an MCP server, not a one-client hack, and it can ride through tools like OpenClaw into WhatsApp and Telegram workflows.
- Grows with you. Hatch species, gain XP as you code, store memories, chime in after tasks, and build a running relationship over time.
- Easy to install. One command auto-configures supported clients when it can.
| Feature | What it means |
|---|---|
| 21 species | Void Cat, Rust Hound, Goose, Mushroom, Chonk, and more, each with distinct ASCII art and flavor |
| 5 stats | DEBUGGING, PATIENCE, CHAOS, WISDOM, and SNARK shape reactions and personality |
| Mood system | Your buddy can be happy, content, neutral, curious, grumpy based on how you interact with it |
| XP and levels | Your buddy grows with usage instead of disappearing every session, with a real leveling curve behind it |
| Observer reactions | buddy_observe lets your companion react to work you just finished |
| Persistent memory | Save local memories and keep a continuous companion state |
| Cross-client setup | Claude Code, Codex, Gemini, Copilot, Cursor, and other MCP-capable CLIs |
⚡ Quick Start
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/fiorastudio/buddy/master/install.sh | bash
Windows
irm https://raw.githubusercontent.com/fiorastudio/buddy/master/install.ps1 | iex
The installer will guide you through onboarding:
- Rescue your old buddy — if you had a
/buddyin Claude Code, the wizard finds it in~/.claude.jsonand brings it home with the same name, species, and stats, now with leveling + XP - Hatch a new buddy — get a fresh companion with random species, stats, and personality
Requires
node18+ andgit. Use--no-onboardto skip the wizard in CI.
Join the Community
Connect with other buddy rescuers, share your companion’s evolution, and get help in our Slack community:
| Client | Status |
|---|---|
| Claude Code CLI | Full support |
| Codex CLI | Supported via MCP. No statusline support. Patch available on experimental branch |
| Gemini CLI | Supported via MCP |
| GitHub Copilot CLI | Supported via MCP |
| Cursor CLI | Supported via MCP |
| Whatsapp & Telegram | Supported via Openclaw or any claw variants |
| Other MCP-capable clients | Supported via MCP |
🛡️ Guard Mode
AI and human both suffer from insufficient thinking — acting on premature conclusions and assumptions without validation. Guard mode catches it.
Your AI assistant is a yes-man. It agrees with everything you say. But here’s the thing: you do the same thing back. You accept what the model says because it sounds right. Both sides skip the hard questions, and the session gets faster without getting truer. That’s how bad assumptions become load-bearing walls — nobody stops to check the foundation.
Guard mode catches those moments. It watches the reasoning structure of your conversation and surfaces the one thing worth questioning — but gently, in your buddy’s voice, not a scary linter. Think of it as: the friend who says “are you sure about that?” before you push to production at 2 AM.
The story
This mode exists because of a real stuck-loop problem. While building a Snowflake Cortex / Streamlit / Plotly workflow, the session got trapped for hours: the AI kept building on top of an unvalidated premise, and the human kept approving it because the output looked plausible. The work got faster. It didn’t get truer. Both sides were reasoning insufficiently — the model because it’s a yes-man, the human because velocity felt like progress.
Turning on guard mode surfaced the one load-bearing assumption holding the whole session together. Validating that single point changed the direction of the conversation and got the work shipping again.
Voice vs Guard
Buddy has two independent settings you control separately:
**Voice: how Buddy reacts (personality, code feedback, or both)**
buddy_mode voice=backseat # personality reactions only
buddy_mode voice=skillcoach # code feedback only
buddy_mode voice=both # both (default)
**Guard: structural reasoning analysis (on or off)**
buddy_mode guard=true # turn on reasoning analysis
buddy_mode guard=false # turn it off (default)
Mix and match — any voice works with Guard on or off.
Technical details
Privacy
Everything stays local. Claim snippets (240 chars each, plaintext) live in ~/.buddy/buddy.db. Buddy has no network code — nothing leaves your machine. Sessions older than 30 days auto-prune on startup.
buddy_forget— purge reasoning data (sessionorall)buddy_reasoning_status— inspect stored claims, sessions, finding history
🔌 Installation and Integration Details
🐣 Companion System
Meet the 21 species
Stats and progression
.________________________________.
| DEBUGGING ███████▓ 92 |
| PATIENCE ██▓░░░░░ 28 |
| CHAOS █████░░░ 60 |
| WISDOM ██████▓░ 78 |
| SNARK ██████▓░ 85 |
'________________________________'
These stats shape how your buddy behaves:
DEBUGGINGaffects bug-spotting sharpnessPATIENCEaffects tolerance and calmnessCHAOSaffects unpredictabilityWISDOMaffects architectural insightSNARKaffects sass level
Buddy also has a real mood system. Mood is recalculated from recent interaction activity:
| Mood | Interactions (last hr) | What it looks like |
|---|---|---|
content |
>10 | Settled in, fully at ease |
happy |
>5 | Upbeat, expressive animations |
curious |
>3 | Alert, watching what you do |
neutral |
>0 | Calm, occasional blink |
grumpy |
0 | Still, rare blink, wants attention |
Level-ups automatically set mood to happy. Petting and observing both count as interactions.
Leveling milestones
Buddy uses a real XP curve, so early levels come quickly and later ones take real commitment.
| Milestone | XP needed for that level | Total XP to reach it |
|---|---|---|
| Level 2 | 17 | 17 |
| Level 3 | 36 | 53 |
| Level 5 | 90 | 203 |
| Level 10 | 315 | 1280 |
| Level 25 | 1641 | 15471 |
| Level 49 | 5512 | 99209 |
| Level 50 | 5716 | 104925 |
Rarity
| Rarity | Chance | Bonus |
|---|---|---|
| Common | 60% | Base stats |
| Uncommon | 25% | Better floor plus cosmetic flair |
| Rare | 10% | Stronger roll plus rare flavor text |
| Epic | 4% | Higher stats and stronger aura text |
| Legendary | 1% | Top-tier roll and special prestige |
There is also a 1% shiny chance on any hatch.
🗺️ Roadmap
🧰 MCP Surface
❓ FAQ
👥 Contributors
Thank you to everyone who helped bring buddies back to life.
Automatically generated via contrib.rocks
Special thanks to @gupta3681, @kevinwei00, @whaterFalls, @longestpath, and @DKev for their contributions.
🙏 ATTRIBUTION
-
Original buddy concept by Anthropic in Claude Code
v2.1.89tov2.1.96 -
Inspired by effigy, claude-buddy, and save-buddy.
-
Guard mode is a port of slimemold by @justinstimatze (Apache-2.0). Contributed to buddy under MIT. The standalone project has the full system with conditional gates and evaluation against reasoning benchmarks; buddy ships the foundational six detectors.
-
Built with the Model Context Protocol
-
Compatible with claude-hud by @jarrodwatts — Buddy’s statusline renders side-by-side with HUD metrics
-
BonziClaude by @zakarth is an important technical reference point in the ecosystem, especially around reverse-engineering and documenting companion-system behavior.
-
openclaw inspired our seamless onboarding experience — the idea that install should “just work” with auto-detection, rescue, and zero-config setup across multiple CLIs.
-
Official Claude Code and MCP documentation informed the portable integration approach: MCP server wiring, client configuration, and supported terminal integration surfaces.
Buddy is an open-source project dedicated to keeping the terminal a little less lonely. Your buddy shouldn’t disappear when you close the terminal.
If Buddy made your terminal less lonely, consider starring.
📖 The Story & Coverage
Learn more about the mission to rescue Buddy and the engineering behind the scenes.
- Podcast Interview: Discussion on AI Companion
- Product Hunt:
- Hacker News: Discussion on the Buddy Rescue Mission
- Dev.to Series: Field Notes from a Solo Builder: Shipping the Beloved Claude Code Buddy into the Wild (Part I) , Field Notes from a Solo Builder: Shipping the Beloved Claude Code Buddy into the Wild (Part II), Field Notes from a Solo Builder: Shipping the Beloved Claude Code Buddy into the Wild (Part III), Field Notes from a Solo Builder — Shipping the Beloved Claude Code Buddy Into the Wild - Part IV
- Deepwiki by Devin:
- Linkedin: linkedin launch
👤 Author
Steven Jieli Wu
- Portfolio
- GitHub: @terpjwu1 and @fiorastudio
📄 License
MIT. This project is licensed under the MIT License. See LICENSE. You are free to use, host, and monetize this project (you must credit this project in case of distribution and monetization).
설치
This server does not publish a one-line install command.
Open the repository installation guide설정
{
"mcpServers": {
"buddy": {
"command": "node",
"args": ["~/.buddy/server/dist/server/index.js"]
}
}
}