[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1117":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},1117,"claude-buddy","1270011\u002Fclaude-buddy","1270011","Keep Your Claude Code Buddy Forever — permanent coding companion that survives every update",null,"TypeScript",412,62,5,9,0,7,15,55,21,5.4,"MIT License",false,"main",true,[],"2026-06-12 02:00:23","\u003Cdiv align=\"center\">\n\n\u003C!-- ============================================================ -->\n\u003C!-- LOGO \u002F HERO                                                  -->\n\u003C!-- Later replace with: docs\u002Flogo.png                            -->\n\u003C!-- ============================================================ -->\n\u003Cimg src=\"https:\u002F\u002Fplacehold.co\u002F120x120\u002F6366f1\u002Fffffff?text=%F0%9F%A6%89\" alt=\"claude-buddy logo\" width=\"120\" \u002F>\n\n# Claude Code Buddy\n\n### Your Claude Code buddy — permanently. Survives every update.\n\n\u003C!-- ============================================================ -->\n\u003C!-- BADGES                                                        -->\n\u003C!-- ============================================================ -->\n\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002F1270011\u002Fclaude-buddy?style=flat-square&color=6366f1)](https:\u002F\u002Fgithub.com\u002F1270011\u002Fclaude-buddy\u002Freleases)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002F1270011\u002Fclaude-buddy?style=flat-square&color=10b981)](LICENSE)\n[![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002F1270011\u002Fclaude-buddy?style=flat-square&color=f59e0b)](https:\u002F\u002Fgithub.com\u002F1270011\u002Fclaude-buddy\u002Fstargazers)\n[![Claude Code](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FClaude%20Code-v2.1.80%2B-8b5cf6?style=flat-square)](https:\u002F\u002Fclaude.ai\u002Fcode)\n[![Platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-linux%20%7C%20macOS-blue?style=flat-square)](#requirements)\n[![MCP](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpowered%20by-MCP-ec4899?style=flat-square)](https:\u002F\u002Fmodelcontextprotocol.io)\n\n\u003C!-- ============================================================ -->\n\u003C!-- HERO GIF — the most important asset                          -->\n\u003C!-- ============================================================ -->\n\n\u003Cbr>\n\n\u003Cimg src=\"docs\u002Fhero.gif\" alt=\"claude-buddy in action\" width=\"800\" \u002F>\n\n\u003Cbr>\u003Cbr>\n\n> **Anthropic removed `\u002Fbuddy` in Claude Code v2.1.97.** This brings it back — *forever*. Same species, same stats, same personality. Now powered by MCP, so no update can ever take it away again.\n\n\u003Cbr>\n\n\u003C!-- ============================================================ -->\n\u003C!-- FEATURE HIGHLIGHTS — 4-column grid, no borders               -->\n\u003C!-- ============================================================ -->\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\" width=\"25%\">\n\u003Ch3>🛡️\u003C\u002Fh3>\n\u003Cb>Survives Updates\u003C\u002Fb>\u003Cbr>\n\u003Csub>MCP-based, not binary-patched. Your buddy lives through every Claude Code release.\u003C\u002Fsub>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"25%\">\n\u003Ch3>🎨\u003C\u002Fh3>\n\u003Cb>19 Species\u003C\u002Fb>\u003Cbr>\n\u003Csub>From ducks to dragons — each with animated ASCII art and rarity colors.\u003C\u002Fsub>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"25%\">\n\u003Ch3>💬\u003C\u002Fh3>\n\u003Cb>Speech Bubbles\u003C\u002Fb>\u003Cbr>\n\u003Csub>Your buddy comments on your code in real time. Invisible, contextual, alive.\u003C\u002Fsub>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"25%\">\n\u003Ch3>⚡\u003C\u002Fh3>\n\u003Cb>One-Command Install\u003C\u002Fb>\u003Cbr>\n\u003Csub>Zero config. Works on any Claude Code v2.1.80+. Uninstall anytime.\u003C\u002Fsub>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cbr>\n\n\u003C\u002Fdiv>\n\n\u003C!-- ============================================================ -->\n\u003C!-- QUICK START                                                  -->\n\u003C!-- ============================================================ -->\n\n## 📋 Requirements\n\n- **[bun](https:\u002F\u002Fbun.sh\u002Finstall)** on `PATH` — claude-buddy's MCP server runs on bun. Install once: `curl -fsSL https:\u002F\u002Fbun.sh\u002Finstall | bash`\n- **Claude Code v2.1.80+**\n- **Linux or macOS** (Windows is experimental)\n\n## 🚀 Quick Start\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002F1270011\u002Fclaude-buddy\ncd claude-buddy\nbun install\nbun run install-buddy\n```\n\nThen restart Claude Code and type `\u002Fbuddy`. That's it.\n\n\u003Csub>💡 Want a global `claude-buddy` command? → `bun link`\u003C\u002Fsub>\n\u003Cbr>\n\u003Csub>💡 Need help? → `bun run help` or `claude-buddy help` (if linked) in terminal · `\u002Fbuddy help` in Claude Code\u003C\u002Fsub>\n\n### Multiple Claude profiles?\n\nIf you run Claude Code with `CLAUDE_CONFIG_DIR` set (e.g. separate work and personal accounts), pass the same env var to install so buddy lands in the active profile and gets its own menagerie:\n\n```bash\nCLAUDE_CONFIG_DIR=~\u002F.claude-personal bun run install-buddy\nCLAUDE_CONFIG_DIR=~\u002F.claude-personal bun run uninstall\n```\n\nThe installer prints `Target profile: \u003Cpath>` at the top so you can see at a glance which profile you're targeting. Each profile gets its own MCP entry, skill, hooks, status line, and `$CLAUDE_CONFIG_DIR\u002Fbuddy-state\u002F` menagerie — installs in one profile don't touch another. With `CLAUDE_CONFIG_DIR` unset, behaviour is identical to single-profile (`~\u002F.claude\u002F`, `~\u002F.claude-buddy\u002F`).\n\n\u003Cbr>\n\n---\n\n\u003C!-- ============================================================ -->\n\u003C!-- COLLAPSIBLE SECTIONS START HERE                              -->\n\u003C!-- ============================================================ -->\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🐙 &nbsp; Meet the 19 Species\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr>\n\nEvery buddy is uniquely generated from your Claude Code account — same species, same stats, same personality every time. 19 species, each with 3 idle animation frames + a blink.\n\n\u003C!-- Later replace with: docs\u002Fspecies-grid.png -->\n\u003Cp align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Fplacehold.co\u002F800x500\u002F1e1e2e\u002Fcdd6f4?text=%F0%9F%90%99+SPECIES+GRID+IMAGE+%F0%9F%90%99%0A%2818+species+in+a+visual+grid%29\" alt=\"all 18 species\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n```\n duck        goose       blob        cat         dragon      octopus\n   __         (°>        .----.       \u002F\\_\u002F\\      \u002F^\\  \u002F^\\     .----.\n \u003C(° )___      ||       ( °  ° )    ( °   °)   \u003C  °  °  >   ( °  ° )\n  (  ._>     _(__)_     (      )    (  ω  )    (   ~~   )   (______)\n   `--'       ^^^^       `----'     (\")_(\")     `-vvvv-'    \u002F\\\u002F\\\u002F\\\u002F\\\n\n owl         penguin     turtle      snail       ghost       axolotl\n  \u002F\\  \u002F\\      .---.       _,--._    °    .--.    .----.    }~(______)~{\n ((°)(°))    (°>°)       ( °  ° )    \\  ( @ )   \u002F °  ° \\  }~(° .. °)~{\n (  >\u003C  )   \u002F(   )\\      [______]     \\_`--'    |      |    ( .--. )\n  `----'     `---'       ``    ``    ~~~~~~~    ~`~``~`~     (_\u002F  \\_)\n\n capybara    cactus      robot       rabbit      mushroom    chonk\n n______n   n  ____  n    .[||].      (\\__\u002F)    .-o-OO-o-.  \u002F\\    \u002F\\\n( °    ° )  | |°  °| |   [ °  ° ]    ( °  ° )  (__________)( °    ° )\n(   oo   )  |_|    |_|   [ ==== ]   =(  ..  )=    |°  °|   (   ..   )\n `------'     |    |      `------'   (\")__(\")      |____|    `------'\n```\n\n### Rarities\n\n| Rarity | Chance | Stars | Color |\n|:---|:---:|:---:|:---|\n| Common | 60% | ★ | Gray |\n| Uncommon | 25% | ★★ | Green |\n| Rare | 10% | ★★★ | Blue |\n| Epic | 4% | ★★★★ | Purple |\n| Legendary | 1% | ★★★★★ | Gold |\n\nColors use **24-bit true color** matching Claude Code's dark theme exactly.\n\n### Stats\n\nEvery buddy has **5 core stats**: `DEBUGGING` · `PATIENCE` · `CHAOS` · `WISDOM` · `SNARK`\n\nHigh SNARK buddies are sarcastic. High WISDOM ones are insightful. High CHAOS ones are unpredictable. Each buddy has a peak stat and a dump stat.\n\n\u003C\u002Fdetails>\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🏗️ &nbsp; How It Works\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr>\n\nFive integration points, zero binary dependencies. When Claude Code updates, your buddy stays.\n\n```\n┌────────────── Claude Code (any version) ──────────────┐\n│                                                        │\n│   MCP Server    Skill       Status Line    Hooks       │\n│  (buddy tools) (\u002Fbuddy)    (animated art) (comments)   │\n└───────────────────────┬────────────────────────────────┘\n                        │ stable extension points\n             ┌──────────┴──────────┐\n             │    claude-buddy     │\n             │                     │\n             │  wyhash + mulberry32│\n             │  18 species, 3 anim │\n             │  rarity colors      │\n             │  speech bubbles     │\n             │  ~\u002F.claude-buddy\u002F   │\n             └─────────────────────┘\n```\n\n- **MCP Server** — companion tools + system prompt that instructs Claude to write buddy comments\n- **Skill** — routes `\u002Fbuddy`, `\u002Fbuddy pet`, `\u002Fbuddy stats`, `\u002Fbuddy off`, `\u002Fbuddy rename`\n- **Status Line** — animated ASCII art, right-aligned, with rarity color and speech bubble\n- **PostToolUse Hook** — detects errors, test failures, large diffs in Bash output\n- **Stop Hook** — extracts invisible `\u003C!-- buddy: ... -->` comments from Claude's responses\n\n### Why MCP Instead of Binary Patching?\n\n| Approach | Survives Updates | Animated | Comments | Risk |\n|---|:---:|:---:|:---:|---|\n| Binary patching | ❌ | ❌ | ❌ | Breaks on update |\n| Pin old version | ❌ | ✅ | ✅ | No security fixes |\n| **claude-buddy** | **✅** | **✅** | **✅** | **None** |\n\nMCP is an industry-standard protocol. Skills are Markdown files. Hooks and status line are shell scripts. Nothing depends on Claude Code's binary internals.\n\n### Repository Layout\n\n```\nclaude-buddy\u002F\n├── server\u002F          # MCP server — tools, engine, art, reactions, state\n├── skills\u002Fbuddy\u002F    # \u002Fbuddy slash command\n├── hooks\u002F           # PostToolUse + Stop hooks (error & comment detection)\n├── statusline\u002F      # Animated right-aligned buddy display\n└── cli\u002F             # install, show, hunt, verify, doctor, backup, uninstall\n```\n\n\u003C\u002Fdetails>\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🛠️ &nbsp; Commands Reference\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr>\n\n### In Claude Code\n\n| Command | Description |\n|---|---|\n| `\u002Fbuddy` | Show companion card with ASCII art and stats |\n| `\u002Fbuddy pet` | Pet your companion |\n| `\u002Fbuddy stats` | Stats-only card |\n| `\u002Fbuddy off` \u002F `on` | Mute \u002F unmute reactions |\n| `\u002Fbuddy rename \u003Cname>` | Rename (1–14 chars) |\n| `\u002Fbuddy personality \u003Ctext>` | Set custom personality |\n| `\u002Fbuddy summon [slot]` | Summon a saved buddy (omit slot for random) |\n| `\u002Fbuddy save [slot]` | Save current buddy to a named slot |\n| `\u002Fbuddy list` | List all saved buddies |\n| `\u002Fbuddy dismiss \u003Cslot>` | Remove a saved buddy slot |\n| `\u002Fbuddy pick` | Launch interactive TUI picker (`! bun run pick`) |\n| `\u002Fbuddy frequency [seconds]` | Show or set comment cooldown |\n| `\u002Fbuddy style [classic\\|round]` | Bubble border style (tmux only) |\n| `\u002Fbuddy position [top\\|left]` | Bubble position (tmux only) |\n| `\u002Fbuddy rarity [on\\|off]` | Show or hide stars + rarity line (tmux only) |\n| `\u002Fbuddy width [10-60]` | Set bubble text width in chars (tmux only) |\n| `\u002Fbuddy margin [0-20]` | Set right-side margin (tmux only) |\n| `\u002Fbuddy statusline [on\\|off]` | Enable or disable buddy in the status line |\n| `\u002Fbuddy statusline combined` | Show rate-limit usage bars alongside buddy (needs python3) |\n| `\u002Fbuddy statusline basic` | Switch back to buddy-only status line |\n| `\u002Fbuddy help` | Show all buddy commands |\n\n### CLI\n\n| Command | Description |\n|---|---|\n| `bun run install-buddy` | Automated setup |\n| `bun run show` | Show buddy in terminal |\n| `bun run pick` | Interactive TUI to find and save your dream buddy |\n| `bun run hunt` | Legacy search (use `pick` instead) |\n| `bun run doctor` | Full diagnostic report |\n| `bun run verify` | Verify buddy generation matches expected output |\n| `bun run backup` | Snapshot \u002F restore state |\n| `bun run settings` | View \u002F change buddy settings — cooldown, TTL (TUI coming soon) |\n| `bun run disable` | Temporarily deactivate buddy |\n| `bun run enable` | Re-enable buddy |\n| `bun run help` | Full CLI reference |\n| `bun run cli\u002Funinstall.ts` | Clean removal |\n\n\u003Csub>💡 Want a global `claude-buddy` command? → `cd claude-buddy && bun link`\u003C\u002Fsub>\n\n### 🎯 Buddy Pick\n\nWant a specific species, rarity, or stat distribution?\n\n```bash\nbun run pick\n```\n\nInteractive TUI with saved buddies, criteria search, vim keys, and two-pane preview. Uses the exact same `wyhash + mulberry32` algorithm as Claude Code.\n\n\u003C\u002Fdetails>\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🔍 &nbsp; Diagnostic Tools\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr>\n\nclaude-buddy ships with built-in diagnostics for debugging across terminals and platforms.\n\n### `bun run doctor`\nComplete diagnostic — environment, terminal info, state, settings, padding test, live status line output. **Always run this first when filing a bug report.**\n\n### `bun run test-statusline`\nTemporarily replaces your status line with a multi-line diagnostic. Shows padding strategies side-by-side, color support, Unicode handling.\n\n```bash\nbun run test-statusline          # install test\n# restart Claude Code, screenshot\nbun run test-statusline restore  # restore buddy\n```\n\n### `bun run backup`\nSnapshot all claude-buddy state to a timestamped backup. Use before experiments.\n\n```bash\nbun run backup              # create snapshot\nbun run backup list         # list snapshots\nbun run backup restore      # restore latest\nbun run backup restore \u003Cts> # restore specific\n```\n\n\u003C\u002Fdetails>\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🐛 &nbsp; Troubleshooting\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr>\n\n### Buddy not appearing in status line\n\n1. Run `bun run doctor` — does the script work directly?\n2. Restart Claude Code completely — `instructions` are loaded once at session start\n3. Check `~\u002F.claude\u002Fsettings.json` has the `statusLine` block\n4. Make sure `bun` and `jq` are in `$PATH`\n\n### Buddy comments not showing\n\nThe buddy comment mechanism uses an MCP server `instructions` field that Claude only reads at **session start**. If you installed claude-buddy in an existing session, restart Claude Code.\n\n```bash\njq '.mcpServers[\"claude-buddy\"]' ~\u002F.claude.json\n```\n\n### Buddy art looks broken or misaligned\n\nKnown MVP issue on some terminal\u002Fplatform combos — different terminals render Braille Pattern Blank (U+2800) at different widths.\n\nTo help us fix it:\n1. Run `bun run doctor` and paste output in a [new issue](https:\u002F\u002Fgithub.com\u002F1270011\u002Fclaude-buddy\u002Fissues\u002Fnew)\n2. Run `bun run test-statusline` and screenshot the result\n3. Then `bun run test-statusline restore`\n\n### Recovery from a broken state\n\n```bash\nbun run backup restore      # restore latest backup\nbun run cli\u002Funinstall.ts    # full clean removal\n```\n\n\u003C\u002Fdetails>\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>📋 &nbsp; Requirements\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr>\n\n| Requirement | Install |\n|---|---|\n| **[Bun](https:\u002F\u002Fbun.sh)** | `curl -fsSL https:\u002F\u002Fbun.sh\u002Finstall \\| bash` |\n| **Claude Code** v2.1.80+ | Any version with MCP support |\n| **jq** | `apt install jq` \u002F `brew install jq` \u002F [`windows: download and add 'jq.exe' from jqlang\u002Fjq to path`](https:\u002F\u002Fgithub.com\u002Fjqlang\u002Fjq\u002Freleases\u002Flatest)|\n\n> **Will I get the same buddy I had?** Yes. claude-buddy uses the exact same algorithm as the original (`wyhash + mulberry32`, same salt, same identity resolution). If your `~\u002F.claude.json` still has your `accountUuid`, you'll get the identical species, rarity, stats, and cosmetics.\n\n\u003C\u002Fdetails>\n\n\u003Cbr>\n\n---\n\n## 🗺️ Roadmap\n\n- [x] **Multi-buddy support** — menagerie system with named slots, interactive TUI picker 💜[@doctor-ew](https:\u002F\u002Fgithub.com\u002Fdoctor-ew)💜\n- [ ] **Leveling system** — XP from coding sessions, unlockable reactions and upgrades\n- [ ] **Buddy pair-programming** — active help during sessions, pattern detection\n- [ ] **Cross-session memory** — remembers past projects and earlier conversations\n- [ ] **Mood system** — shifts based on code quality, tests, time of day\n- [x] **Achievement badges** — \"1000 lines reviewed\", \"week streak\", etc. 💜[ndcorder](https:\u002F\u002Fgithub.com\u002Fndcorder)💜\n- [ ] **Light theme colors** — auto-detect and match light theme RGB\n- [x] **New species + community art** — wyvern added 💜[@jpmalone0](https:\u002F\u002Fgithub.com\u002Fjpmalone0)💜 (community contributions welcome)\n- [ ] **`npx claude-buddy`** — one-command install without cloning\n\n\u003Cbr>\n\n---\n\n## 💜 Contributors\n\nThank you to everyone who helped bring buddies back to life.\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002F1270011\u002Fclaude-buddy\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=1270011\u002Fclaude-buddy\" alt=\"Contributors\" \u002F>\n\u003C\u002Fa>\n\n\u003Csub>Automatically generated from the [contributors graph](https:\u002F\u002Fgithub.com\u002F1270011\u002Fclaude-buddy\u002Fgraphs\u002Fcontributors) via [contrib.rocks](https:\u002F\u002Fcontrib.rocks).\u003C\u002Fsub>\n\n\u003Cbr>\n\nWant to help? New species, better reactions, bugfixes, wild new features — [PRs welcome](https:\u002F\u002Fgithub.com\u002F1270011\u002Fclaude-buddy\u002Fpulls).\n\n\u003Cbr>\n\n---\n\n## 🙏 Credits\n\n- Original buddy concept by **Anthropic** (Claude Code v2.1.89 — v2.1.94)\n- Inspired by [any-buddy](https:\u002F\u002Fgithub.com\u002Fcpaczek\u002Fany-buddy), [buddy-reroll](https:\u002F\u002Fgithub.com\u002Fgrayashh\u002Fbuddy-reroll), [ccbuddyy](https:\u002F\u002Fgithub.com\u002Fvibenalytics\u002Fccbuddyy)\n- Built with the [Model Context Protocol](https:\u002F\u002Fmodelcontextprotocol.io)\n\n\u003Cbr>\n\n---\n\n\u003Cdiv align=\"center\">\n\n### 📜 License\n\nMIT — do whatever you want, just don't take my buddy away again.\n\n\u003Cbr>\n\n\u003Csub>\u003Cb>Keywords:\u003C\u002Fb> claude code buddy · claude code companion · claude code pet · terminal pet · coding companion · tamagotchi · MCP companion · \u002Fbuddy command · claude buddy removed · bring back buddy · ASCII art pet\u003C\u002Fsub>\n\n\u003C\u002Fdiv>\n","Claude Code Buddy 是一个旨在为开发者提供永久编码伴侣的工具，即使在 Claude Code 的更新中也能保持不变。该项目使用 TypeScript 编写，并基于 MCP（Model Context Protocol）技术实现，确保你的编码伙伴能够跨越每一次版本更新而生存下来。它支持 19 种不同种类的伙伴，每种都有独特的 ASCII 动画和稀有度颜色；并且能够在你编写代码时实时提供反馈，通过对话泡泡的形式呈现出来。此外，只需一条命令即可完成安装，适用于任何 Claude Code v2.1.80 及以上版本，特别适合那些希望在编程过程中获得持续陪伴与互动体验的开发者们。",2,"2026-06-11 02:41:43","CREATED_QUERY"]