@ramarivera/coding-buddy 0.4.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +40 -0
- package/.claude-plugin/plugin.json +28 -0
- package/LICENSE +21 -0
- package/README.md +451 -0
- package/cli/backup.ts +336 -0
- package/cli/disable.ts +94 -0
- package/cli/doctor.ts +220 -0
- package/cli/hunt.ts +167 -0
- package/cli/index.ts +115 -0
- package/cli/install.ts +335 -0
- package/cli/pick.ts +492 -0
- package/cli/settings.ts +68 -0
- package/cli/show.ts +31 -0
- package/cli/test-statusline.sh +41 -0
- package/cli/test-statusline.ts +122 -0
- package/cli/uninstall.ts +110 -0
- package/cli/verify.ts +19 -0
- package/hooks/buddy-comment.sh +65 -0
- package/hooks/hooks.json +35 -0
- package/hooks/name-react.sh +176 -0
- package/hooks/react.sh +204 -0
- package/package.json +60 -0
- package/server/achievements.ts +445 -0
- package/server/art.ts +376 -0
- package/server/engine.ts +448 -0
- package/server/index.ts +774 -0
- package/server/reactions.ts +187 -0
- package/server/state.ts +409 -0
- package/skills/buddy/SKILL.md +59 -0
- package/statusline/buddy-status.sh +389 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-buddy",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "1270011"
|
|
5
|
+
},
|
|
6
|
+
"metadata": {
|
|
7
|
+
"description": "Permanent coding companion for Claude Code",
|
|
8
|
+
"version": "0.3.0"
|
|
9
|
+
},
|
|
10
|
+
"plugins": [
|
|
11
|
+
{
|
|
12
|
+
"name": "claude-buddy",
|
|
13
|
+
"source": "./",
|
|
14
|
+
"description": "Permanent coding companion for Claude Code \u2014 survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.",
|
|
15
|
+
"version": "0.3.0",
|
|
16
|
+
"author": {
|
|
17
|
+
"name": "1270011"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/1270011/claude-buddy#readme",
|
|
20
|
+
"repository": "https://github.com/1270011/claude-buddy",
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"keywords": [
|
|
23
|
+
"claude-code",
|
|
24
|
+
"buddy",
|
|
25
|
+
"companion",
|
|
26
|
+
"mcp",
|
|
27
|
+
"terminal-pet",
|
|
28
|
+
"tamagotchi"
|
|
29
|
+
],
|
|
30
|
+
"category": "companion",
|
|
31
|
+
"tags": [
|
|
32
|
+
"buddy",
|
|
33
|
+
"companion",
|
|
34
|
+
"mcp",
|
|
35
|
+
"terminal-pet",
|
|
36
|
+
"tamagotchi"
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-buddy",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Permanent coding companion for Claude Code \u2014 survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "1270011"
|
|
7
|
+
},
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"repository": "https://github.com/1270011/claude-buddy",
|
|
10
|
+
"homepage": "https://github.com/1270011/claude-buddy#readme",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"claude-code",
|
|
13
|
+
"buddy",
|
|
14
|
+
"companion",
|
|
15
|
+
"mcp",
|
|
16
|
+
"terminal-pet",
|
|
17
|
+
"tamagotchi"
|
|
18
|
+
],
|
|
19
|
+
"mcpServers": {
|
|
20
|
+
"claude-buddy": {
|
|
21
|
+
"type": "stdio",
|
|
22
|
+
"command": "bun",
|
|
23
|
+
"args": [
|
|
24
|
+
"server/index.ts"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 claude-buddy contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<!-- ============================================================ -->
|
|
4
|
+
<!-- LOGO / HERO -->
|
|
5
|
+
<!-- Later replace with: docs/logo.png -->
|
|
6
|
+
<!-- ============================================================ -->
|
|
7
|
+
<img src="https://placehold.co/120x120/6366f1/ffffff?text=%F0%9F%A6%89" alt="claude-buddy logo" width="120" />
|
|
8
|
+
|
|
9
|
+
# Claude Code Buddy
|
|
10
|
+
|
|
11
|
+
### Your Claude Code buddy β permanently. Survives every update.
|
|
12
|
+
|
|
13
|
+
<!-- ============================================================ -->
|
|
14
|
+
<!-- BADGES -->
|
|
15
|
+
<!-- ============================================================ -->
|
|
16
|
+
|
|
17
|
+
[](https://github.com/1270011/claude-buddy/releases)
|
|
18
|
+
[](LICENSE)
|
|
19
|
+
[](https://github.com/1270011/claude-buddy/stargazers)
|
|
20
|
+
[](https://claude.ai/code)
|
|
21
|
+
[](#requirements)
|
|
22
|
+
[](https://modelcontextprotocol.io)
|
|
23
|
+
|
|
24
|
+
<!-- ============================================================ -->
|
|
25
|
+
<!-- HERO GIF β the most important asset -->
|
|
26
|
+
<!-- ============================================================ -->
|
|
27
|
+
|
|
28
|
+
<br>
|
|
29
|
+
|
|
30
|
+
<img src="docs/hero.gif" alt="claude-buddy in action" width="800" />
|
|
31
|
+
|
|
32
|
+
<br><br>
|
|
33
|
+
|
|
34
|
+
> **Anthropic removed `/buddy` 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.
|
|
35
|
+
|
|
36
|
+
<br>
|
|
37
|
+
|
|
38
|
+
<!-- ============================================================ -->
|
|
39
|
+
<!-- FEATURE HIGHLIGHTS β 4-column grid, no borders -->
|
|
40
|
+
<!-- ============================================================ -->
|
|
41
|
+
|
|
42
|
+
<table>
|
|
43
|
+
<tr>
|
|
44
|
+
<td align="center" width="25%">
|
|
45
|
+
<h3>π‘οΈ</h3>
|
|
46
|
+
<b>Survives Updates</b><br>
|
|
47
|
+
<sub>MCP-based, not binary-patched. Your buddy lives through every Claude Code release.</sub>
|
|
48
|
+
</td>
|
|
49
|
+
<td align="center" width="25%">
|
|
50
|
+
<h3>π¨</h3>
|
|
51
|
+
<b>18 Species</b><br>
|
|
52
|
+
<sub>From ducks to dragons β each with animated ASCII art and rarity colors.</sub>
|
|
53
|
+
</td>
|
|
54
|
+
<td align="center" width="25%">
|
|
55
|
+
<h3>π¬</h3>
|
|
56
|
+
<b>Speech Bubbles</b><br>
|
|
57
|
+
<sub>Your buddy comments on your code in real time. Invisible, contextual, alive.</sub>
|
|
58
|
+
</td>
|
|
59
|
+
<td align="center" width="25%">
|
|
60
|
+
<h3>β‘</h3>
|
|
61
|
+
<b>One-Command Install</b><br>
|
|
62
|
+
<sub>Zero config. Works on any Claude Code v2.1.80+. Uninstall anytime.</sub>
|
|
63
|
+
</td>
|
|
64
|
+
</tr>
|
|
65
|
+
</table>
|
|
66
|
+
|
|
67
|
+
<br>
|
|
68
|
+
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<!-- ============================================================ -->
|
|
72
|
+
<!-- QUICK START -->
|
|
73
|
+
<!-- ============================================================ -->
|
|
74
|
+
|
|
75
|
+
## π Quick Start
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
git clone https://github.com/1270011/claude-buddy
|
|
79
|
+
cd claude-buddy
|
|
80
|
+
bun install
|
|
81
|
+
bun run install-buddy
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Then restart Claude Code and type `/buddy`. That's it.
|
|
85
|
+
|
|
86
|
+
<sub>π‘ Need Bun? β `curl -fsSL https://bun.sh/install | bash`</sub>
|
|
87
|
+
<br>
|
|
88
|
+
<sub>π‘ Want a global `claude-buddy` command? β `bun link`</sub>
|
|
89
|
+
<br>
|
|
90
|
+
<sub>π‘ Need help? β `bun run help` or `claude-buddy help` (if linked) in terminal Β· `/buddy help` in Claude Code</sub>
|
|
91
|
+
|
|
92
|
+
<br>
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
<!-- ============================================================ -->
|
|
97
|
+
<!-- COLLAPSIBLE SECTIONS START HERE -->
|
|
98
|
+
<!-- ============================================================ -->
|
|
99
|
+
|
|
100
|
+
<details>
|
|
101
|
+
<summary><b>π Meet the 18 Species</b></summary>
|
|
102
|
+
|
|
103
|
+
<br>
|
|
104
|
+
|
|
105
|
+
Every buddy is uniquely generated from your Claude Code account β same species, same stats, same personality every time. 18 species, each with 3 idle animation frames + a blink.
|
|
106
|
+
|
|
107
|
+
<!-- Later replace with: docs/species-grid.png -->
|
|
108
|
+
<p align="center">
|
|
109
|
+
<img src="https://placehold.co/800x500/1e1e2e/cdd6f4?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" />
|
|
110
|
+
</p>
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
duck goose blob cat dragon octopus
|
|
114
|
+
__ (Β°> .----. /\_/\ /^\ /^\ .----.
|
|
115
|
+
<(Β° )___ || ( Β° Β° ) ( Β° Β°) < Β° Β° > ( Β° Β° )
|
|
116
|
+
( ._> _(__)_ ( ) ( Ο ) ( ~~ ) (______)
|
|
117
|
+
`--' ^^^^ `----' (")_(") `-vvvv-' /\/\/\/\
|
|
118
|
+
|
|
119
|
+
owl penguin turtle snail ghost axolotl
|
|
120
|
+
/\ /\ .---. _,--._ Β° .--. .----. }~(______)~{
|
|
121
|
+
((Β°)(Β°)) (Β°>Β°) ( Β° Β° ) \ ( @ ) / Β° Β° \ }~(Β° .. Β°)~{
|
|
122
|
+
( >< ) /( )\ [______] \_`--' | | ( .--. )
|
|
123
|
+
`----' `---' `` `` ~~~~~~~ ~`~``~`~ (_/ \_)
|
|
124
|
+
|
|
125
|
+
capybara cactus robot rabbit mushroom chonk
|
|
126
|
+
n______n n ____ n .[||]. (\__/) .-o-OO-o-. /\ /\
|
|
127
|
+
( Β° Β° ) | |Β° Β°| | [ Β° Β° ] ( Β° Β° ) (__________)( Β° Β° )
|
|
128
|
+
( oo ) |_| |_| [ ==== ] =( .. )= |Β° Β°| ( .. )
|
|
129
|
+
`------' | | `------' (")__(") |____| `------'
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Rarities
|
|
133
|
+
|
|
134
|
+
| Rarity | Chance | Stars | Color |
|
|
135
|
+
|:---|:---:|:---:|:---|
|
|
136
|
+
| Common | 60% | β
| Gray |
|
|
137
|
+
| Uncommon | 25% | β
β
| Green |
|
|
138
|
+
| Rare | 10% | β
β
β
| Blue |
|
|
139
|
+
| Epic | 4% | β
β
β
β
| Purple |
|
|
140
|
+
| Legendary | 1% | β
β
β
β
β
| Gold |
|
|
141
|
+
|
|
142
|
+
Colors use **24-bit true color** matching Claude Code's dark theme exactly.
|
|
143
|
+
|
|
144
|
+
### Stats
|
|
145
|
+
|
|
146
|
+
Every buddy has **5 core stats**: `DEBUGGING` Β· `PATIENCE` Β· `CHAOS` Β· `WISDOM` Β· `SNARK`
|
|
147
|
+
|
|
148
|
+
High SNARK buddies are sarcastic. High WISDOM ones are insightful. High CHAOS ones are unpredictable. Each buddy has a peak stat and a dump stat.
|
|
149
|
+
|
|
150
|
+
</details>
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
<details>
|
|
155
|
+
<summary><b>ποΈ How It Works</b></summary>
|
|
156
|
+
|
|
157
|
+
<br>
|
|
158
|
+
|
|
159
|
+
Five integration points, zero binary dependencies. When Claude Code updates, your buddy stays.
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
βββββββββββββββ Claude Code (any version) βββββββββββββββ
|
|
163
|
+
β β
|
|
164
|
+
β MCP Server Skill Status Line Hooks β
|
|
165
|
+
β (buddy tools) (/buddy) (animated art) (comments) β
|
|
166
|
+
βββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
|
|
167
|
+
β stable extension points
|
|
168
|
+
ββββββββββββ΄βββββββββββ
|
|
169
|
+
β claude-buddy β
|
|
170
|
+
β β
|
|
171
|
+
β wyhash + mulberry32β
|
|
172
|
+
β 18 species, 3 anim β
|
|
173
|
+
β rarity colors β
|
|
174
|
+
β speech bubbles β
|
|
175
|
+
β ~/.claude-buddy/ β
|
|
176
|
+
βββββββββββββββββββββββ
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
- **MCP Server** β companion tools + system prompt that instructs Claude to write buddy comments
|
|
180
|
+
- **Skill** β routes `/buddy`, `/buddy pet`, `/buddy stats`, `/buddy off`, `/buddy rename`
|
|
181
|
+
- **Status Line** β animated ASCII art, right-aligned, with rarity color and speech bubble
|
|
182
|
+
- **PostToolUse Hook** β detects errors, test failures, large diffs in Bash output
|
|
183
|
+
- **Stop Hook** β extracts invisible `<!-- buddy: ... -->` comments from Claude's responses
|
|
184
|
+
|
|
185
|
+
### Why MCP Instead of Binary Patching?
|
|
186
|
+
|
|
187
|
+
| Approach | Survives Updates | Animated | Comments | Risk |
|
|
188
|
+
|---|:---:|:---:|:---:|---|
|
|
189
|
+
| Binary patching | β | β | β | Breaks on update |
|
|
190
|
+
| Pin old version | β | β
| β
| No security fixes |
|
|
191
|
+
| **claude-buddy** | **β
** | **β
** | **β
** | **None** |
|
|
192
|
+
|
|
193
|
+
MCP is an industry-standard protocol. Skills are Markdown files. Hooks and status line are shell scripts. Nothing depends on Claude Code's binary internals.
|
|
194
|
+
|
|
195
|
+
### Repository Layout
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
claude-buddy/
|
|
199
|
+
βββ server/ # MCP server β tools, engine, art, reactions, state
|
|
200
|
+
βββ skills/buddy/ # /buddy slash command
|
|
201
|
+
βββ hooks/ # PostToolUse + Stop hooks (error & comment detection)
|
|
202
|
+
βββ statusline/ # Animated right-aligned buddy display
|
|
203
|
+
βββ cli/ # install, show, hunt, verify, doctor, backup, uninstall
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
</details>
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
<details>
|
|
211
|
+
<summary><b>π οΈ Commands Reference</b></summary>
|
|
212
|
+
|
|
213
|
+
<br>
|
|
214
|
+
|
|
215
|
+
### In Claude Code
|
|
216
|
+
|
|
217
|
+
| Command | Description |
|
|
218
|
+
|---|---|
|
|
219
|
+
| `/buddy` | Show companion card with ASCII art and stats |
|
|
220
|
+
| `/buddy pet` | Pet your companion |
|
|
221
|
+
| `/buddy stats` | Stats-only card |
|
|
222
|
+
| `/buddy off` / `on` | Mute / unmute reactions |
|
|
223
|
+
| `/buddy rename <name>` | Rename (1β14 chars) |
|
|
224
|
+
| `/buddy personality <text>` | Set custom personality |
|
|
225
|
+
| `/buddy summon [slot]` | Summon a saved buddy (omit slot for random) |
|
|
226
|
+
| `/buddy save [slot]` | Save current buddy to a named slot |
|
|
227
|
+
| `/buddy list` | List all saved buddies |
|
|
228
|
+
| `/buddy dismiss <slot>` | Remove a saved buddy slot |
|
|
229
|
+
| `/buddy pick` | Launch interactive TUI picker (`! bun run pick`) |
|
|
230
|
+
| `/buddy frequency [seconds]` | Show or set comment cooldown |
|
|
231
|
+
| `/buddy style [classic\|round]` | Bubble border style (tmux only) |
|
|
232
|
+
| `/buddy position [top\|left]` | Bubble position (tmux only) |
|
|
233
|
+
| `/buddy rarity [on\|off]` | Show or hide stars + rarity line (tmux only) |
|
|
234
|
+
| `/buddy help` | Show all buddy commands |
|
|
235
|
+
|
|
236
|
+
### CLI
|
|
237
|
+
|
|
238
|
+
| Command | Description |
|
|
239
|
+
|---|---|
|
|
240
|
+
| `bun run install-buddy` | Automated setup |
|
|
241
|
+
| `bun run show` | Show buddy in terminal |
|
|
242
|
+
| `bun run pick` | Interactive TUI to find and save your dream buddy |
|
|
243
|
+
| `bun run hunt` | Legacy search (use `pick` instead) |
|
|
244
|
+
| `bun run doctor` | Full diagnostic report |
|
|
245
|
+
| `bun run verify` | Verify buddy generation matches expected output |
|
|
246
|
+
| `bun run backup` | Snapshot / restore state |
|
|
247
|
+
| `bun run settings` | View / change buddy settings β cooldown, TTL (TUI coming soon) |
|
|
248
|
+
| `bun run disable` | Temporarily deactivate buddy |
|
|
249
|
+
| `bun run enable` | Re-enable buddy |
|
|
250
|
+
| `bun run help` | Full CLI reference |
|
|
251
|
+
| `bun run cli/uninstall.ts` | Clean removal |
|
|
252
|
+
|
|
253
|
+
<sub>π‘ Want a global `claude-buddy` command? β `cd claude-buddy && bun link`</sub>
|
|
254
|
+
|
|
255
|
+
### π― Buddy Pick
|
|
256
|
+
|
|
257
|
+
Want a specific species, rarity, or stat distribution?
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
bun run pick
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Interactive TUI with saved buddies, criteria search, vim keys, and two-pane preview. Uses the exact same `wyhash + mulberry32` algorithm as Claude Code.
|
|
264
|
+
|
|
265
|
+
</details>
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
<details>
|
|
270
|
+
<summary><b>π Diagnostic Tools</b></summary>
|
|
271
|
+
|
|
272
|
+
<br>
|
|
273
|
+
|
|
274
|
+
claude-buddy ships with built-in diagnostics for debugging across terminals and platforms.
|
|
275
|
+
|
|
276
|
+
### `bun run doctor`
|
|
277
|
+
Complete diagnostic β environment, terminal info, state, settings, padding test, live status line output. **Always run this first when filing a bug report.**
|
|
278
|
+
|
|
279
|
+
### `bun run test-statusline`
|
|
280
|
+
Temporarily replaces your status line with a multi-line diagnostic. Shows padding strategies side-by-side, color support, Unicode handling.
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
bun run test-statusline # install test
|
|
284
|
+
# restart Claude Code, screenshot
|
|
285
|
+
bun run test-statusline restore # restore buddy
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### `bun run backup`
|
|
289
|
+
Snapshot all claude-buddy state to a timestamped backup. Use before experiments.
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
bun run backup # create snapshot
|
|
293
|
+
bun run backup list # list snapshots
|
|
294
|
+
bun run backup restore # restore latest
|
|
295
|
+
bun run backup restore <ts> # restore specific
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
</details>
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
<details>
|
|
303
|
+
<summary><b>π Troubleshooting</b></summary>
|
|
304
|
+
|
|
305
|
+
<br>
|
|
306
|
+
|
|
307
|
+
### Buddy not appearing in status line
|
|
308
|
+
|
|
309
|
+
1. Run `bun run doctor` β does the script work directly?
|
|
310
|
+
2. Restart Claude Code completely β `instructions` are loaded once at session start
|
|
311
|
+
3. Check `~/.claude/settings.json` has the `statusLine` block
|
|
312
|
+
4. Make sure `bun` and `jq` are in `$PATH`
|
|
313
|
+
|
|
314
|
+
### Buddy comments not showing
|
|
315
|
+
|
|
316
|
+
The 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.
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
jq '.mcpServers["claude-buddy"]' ~/.claude.json
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Buddy art looks broken or misaligned
|
|
323
|
+
|
|
324
|
+
Known MVP issue on some terminal/platform combos β different terminals render Braille Pattern Blank (U+2800) at different widths.
|
|
325
|
+
|
|
326
|
+
To help us fix it:
|
|
327
|
+
1. Run `bun run doctor` and paste output in a [new issue](https://github.com/1270011/claude-buddy/issues/new)
|
|
328
|
+
2. Run `bun run test-statusline` and screenshot the result
|
|
329
|
+
3. Then `bun run test-statusline restore`
|
|
330
|
+
|
|
331
|
+
### Recovery from a broken state
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
bun run backup restore # restore latest backup
|
|
335
|
+
bun run cli/uninstall.ts # full clean removal
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
</details>
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
<details>
|
|
343
|
+
<summary><b>π₯οΈ tmux Popup Mode</b></summary>
|
|
344
|
+
|
|
345
|
+
<br>
|
|
346
|
+
|
|
347
|
+
Inside tmux, buddy appears as a floating popup overlay in the bottom-right corner instead of the status line.
|
|
348
|
+
|
|
349
|
+
**Features:** animated ASCII art with speech bubbles Β· ESC passthrough Β· dynamic resizing Β· full keyboard forwarding
|
|
350
|
+
|
|
351
|
+
| tmux version | Support |
|
|
352
|
+
|---|---|
|
|
353
|
+
| **3.4+** | Full support (borderless) |
|
|
354
|
+
| **3.2 β 3.3** | Supported with border |
|
|
355
|
+
| **< 3.2** | Falls back to status line |
|
|
356
|
+
|
|
357
|
+
### Recommended `~/.tmux.conf`
|
|
358
|
+
|
|
359
|
+
```
|
|
360
|
+
set -g set-titles on
|
|
361
|
+
set -g set-titles-string "#{pane_title}"
|
|
362
|
+
set -g mouse on
|
|
363
|
+
set -g history-limit 10000
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Scrolling
|
|
367
|
+
|
|
368
|
+
The popup is modal. To scroll:
|
|
369
|
+
1. Press **F12** β scroll mode (popup hides, copy-mode activates)
|
|
370
|
+
2. Scroll with **mouse wheel** or **arrows**
|
|
371
|
+
3. Press **q** β exit scroll mode
|
|
372
|
+
|
|
373
|
+
</details>
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
<details>
|
|
378
|
+
<summary><b>π Requirements</b></summary>
|
|
379
|
+
|
|
380
|
+
<br>
|
|
381
|
+
|
|
382
|
+
| Requirement | Install |
|
|
383
|
+
|---|---|
|
|
384
|
+
| **[Bun](https://bun.sh)** | `curl -fsSL https://bun.sh/install \| bash` |
|
|
385
|
+
| **Claude Code** v2.1.80+ | Any version with MCP support |
|
|
386
|
+
| **jq** | `apt install jq` / `brew install jq` |
|
|
387
|
+
|
|
388
|
+
> **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 `~/.claude.json` still has your `accountUuid`, you'll get the identical species, rarity, stats, and cosmetics.
|
|
389
|
+
|
|
390
|
+
</details>
|
|
391
|
+
|
|
392
|
+
<br>
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## πΊοΈ Roadmap
|
|
397
|
+
|
|
398
|
+
- [x] **Multi-buddy support** β menagerie system with named slots, interactive TUI picker π[@doctor-ew](https://github.com/doctor-ew)π
|
|
399
|
+
- [x] **tmux popup mode** β floating overlay via `tmux display-popup` π[@gzenz](https://github.com/gzenz)π
|
|
400
|
+
- [ ] **Leveling system** β XP from coding sessions, unlockable reactions and upgrades
|
|
401
|
+
- [ ] **Buddy pair-programming** β active help during sessions, pattern detection
|
|
402
|
+
- [ ] **Cross-session memory** β remembers past projects and earlier conversations
|
|
403
|
+
- [ ] **Mood system** β shifts based on code quality, tests, time of day
|
|
404
|
+
- [x] **Achievement badges** β "1000 lines reviewed", "week streak", etc. π[ndcorder](https://github.com/ndcorder)π
|
|
405
|
+
- [ ] **Light theme colors** β auto-detect and match light theme RGB
|
|
406
|
+
- [ ] **New species + community art** β submit your own designs
|
|
407
|
+
- [ ] **`npx claude-buddy`** β one-command install without cloning
|
|
408
|
+
|
|
409
|
+
<br>
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## π Contributors
|
|
414
|
+
|
|
415
|
+
Thank you to everyone who helped bring buddies back to life.
|
|
416
|
+
|
|
417
|
+
<a href="https://github.com/1270011/claude-buddy/graphs/contributors">
|
|
418
|
+
<img src="https://contrib.rocks/image?repo=1270011/claude-buddy" alt="Contributors" />
|
|
419
|
+
</a>
|
|
420
|
+
|
|
421
|
+
<sub>Automatically generated from the [contributors graph](https://github.com/1270011/claude-buddy/graphs/contributors) via [contrib.rocks](https://contrib.rocks).</sub>
|
|
422
|
+
|
|
423
|
+
<br>
|
|
424
|
+
|
|
425
|
+
Want to help? New species, better reactions, bugfixes, wild new features β [PRs welcome](https://github.com/1270011/claude-buddy/pulls).
|
|
426
|
+
|
|
427
|
+
<br>
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
## π Credits
|
|
432
|
+
|
|
433
|
+
- Original buddy concept by **Anthropic** (Claude Code v2.1.89 β v2.1.94)
|
|
434
|
+
- Inspired by [any-buddy](https://github.com/cpaczek/any-buddy), [buddy-reroll](https://github.com/grayashh/buddy-reroll), [ccbuddyy](https://github.com/vibenalytics/ccbuddyy)
|
|
435
|
+
- Built with the [Model Context Protocol](https://modelcontextprotocol.io)
|
|
436
|
+
|
|
437
|
+
<br>
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
<div align="center">
|
|
442
|
+
|
|
443
|
+
### π License
|
|
444
|
+
|
|
445
|
+
MIT β do whatever you want, just don't take my buddy away again.
|
|
446
|
+
|
|
447
|
+
<br>
|
|
448
|
+
|
|
449
|
+
<sub><b>Keywords:</b> claude code buddy Β· claude code companion Β· claude code pet Β· terminal pet Β· coding companion Β· tamagotchi Β· MCP companion Β· /buddy command Β· claude buddy removed Β· bring back buddy Β· ASCII art pet</sub>
|
|
450
|
+
|
|
451
|
+
</div>
|