Skip to content

fix(help): tell users where to run /buddy CLI commands from - #112

Open
grlee wants to merge 2 commits into
ramarivera:mainfrom
grlee:fix/cli-help-discoverability
Open

fix(help): tell users where to run /buddy CLI commands from#112
grlee wants to merge 2 commits into
ramarivera:mainfrom
grlee:fix/cli-help-discoverability

Conversation

@grlee

@grlee grlee commented Apr 25, 2026

Copy link
Copy Markdown
Contributor

Problem

/buddy help lists CLI commands like:

CLI:
  bun run help            Show full CLI help
  bun run show            Display buddy in terminal
  bun run pick            Interactive buddy picker
  ...

…but never tells users where to run them from. The plugin lives at:

~/.claude/plugins/cache/claude-buddy/claude-buddy/<version>/

which isn't an obvious location. Running bun run show from any other directory fails with a confusing error: Script not found "show" error from bun, leaving users wondering whether the install is broken.

Fix

Replaces the bare "CLI:" header in the help text with a hint that includes a path-finder one-liner:

CLI (run from the plugin directory — find it with:
         cd "$(ls -d ~/.claude/plugins/cache/claude-buddy/claude-buddy/*/ | tail -1)"):

  bun run help            Show full CLI help
  ...

3 lines added, 1 line removed. No code-path changes — just the static help string. The path uses ~/.claude because that's the default the rest of the plugin already assumes; users who relocate Claude Code's config via $CLAUDE_CONFIG_DIR can substitute their own path.

Verification

  • bun run typecheck passes.
  • bun test passes — 246/246 tests.
  • Help-text rendering preview was sanity-checked manually:
  /buddy statusline Enable or disable buddy in the status line

CLI (run from the plugin directory — find it with:
         cd "$(ls -d ~/.claude/plugins/cache/claude-buddy/claude-buddy/*/ | tail -1)"):

  bun run help            Show full CLI help

Out of scope

  • Suggesting a shell alias to make CLI commands runnable from anywhere — punted for portability reasons (bash/zsh/fish/nu/PowerShell all differ). Happy to add as a follow-up if you want, scoped to a single shell at a time.
  • Changing how the plugin is invoked (e.g., installing a buddy binary on PATH). Larger architectural change, separate concern.

Summary by CodeRabbit

  • Documentation
    • Updated the buddy_help command guidance to include the plugin directory path needed for running CLI commands.

The /buddy help output lists CLI commands as `bun run show`, `bun run pick`,
etc., but never tells users where to run them from. The plugin lives in
~/.claude/plugins/cache/claude-buddy/claude-buddy/<version>/, which is not
an obvious location, and running `bun run <cmd>` from outside that directory
fails with a confusing "no script named X" error.

Replaces the bare "CLI:" header with a hint that includes a path-finder
one-liner so users can cd into the plugin directory first:

    cd "$(ls -d ~/.claude/plugins/cache/claude-buddy/claude-buddy/*/ | tail -1)"

The hint respects $CLAUDE_CONFIG_DIR via the ~/.claude default that the rest
of the plugin already assumes; users who relocate Claude Code's config can
substitute their own path.

No code-path changes; only the static help-text string.

Signed-off-by: George Lee <grlee@users.noreply.github.com>
@grlee
grlee force-pushed the fix/cli-help-discoverability branch from bd370e9 to f443b77 Compare June 10, 2026 11:54
@ramarivera

Copy link
Copy Markdown
Owner

Hey @grlee — good catch on the discoverability gap, and the fix is the right shape. One thing before merge: the project was just renamed (claude-buddy → coding-buddy, now also shipping Pi / Oh My Pi extensions), so the cache path in the new help text is stale. Could you update it to:

cd "$(ls -d ~/.claude/plugins/cache/coding-buddy/coding-buddy/*/ | tail -1)"

Once that's updated this is good to go.

🤖 Created with the help of AI (Claude Fable 5).

The path-finder one-liner added in f443b77 pointed at the pre-rename
cache directory:

    ~/.claude/plugins/cache/claude-buddy/claude-buddy/*/

Upstream renamed the project claude-buddy -> coding-buddy, and the
marketplace/plugin identifiers moved with it (`claude plugin uninstall
coding-buddy@coding-buddy`), so the cache directory is now:

    ~/.claude/plugins/cache/coding-buddy/coding-buddy/*/

Points the help text at the current location, per review feedback on ramarivera#112.

Still help-text only; no code-path changes.

Signed-off-by: George Lee <grlee@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8b02e606-e533-4691-ba9d-48ab73340948

📥 Commits

Reviewing files that changed from the base of the PR and between ed8c897 and e872741.

📒 Files selected for processing (1)
  • server/index.ts

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.


📝 Walkthrough

Walkthrough

The buddy_help tool now shows a command that changes to the latest plugin cache directory before CLI commands.

Changes

CLI Help Output

Layer / File(s) Summary
Plugin directory command in help
server/index.ts
The help text replaces the CLI: header with a command that locates the latest plugin directory, followed by a blank line.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to e8727

This localized help-text change clarifies where users should run the CLI commands and introduces no actionable merge-blocking risk beyond normal checks and review.

Poem

A rabbit finds the plugin trail

And follows cache paths without fail
The help text shows the way
For CLI commands to play
With carrots packed for every day

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: updating help text to tell users where to run /buddy CLI commands.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1 files.

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@grlee

grlee commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

Updated — the cache path now points at ~/.claude/plugins/cache/coding-buddy/coding-buddy/*/, matching the rename (pushed as e872741). I checked it against main first: server/index.ts resolves pluginsCacheDir under plugins/cache/coding-buddy and prints claude plugin uninstall coding-buddy@coding-buddy, so the path shape lines up.

I left it as a follow-up commit rather than amending, since the original commit body also quotes the old path in prose — happy to squash the two into one clean commit if you'd prefer that for the merge.

Heads-up: the Statusline golden render failure here is pre-existing, not from this PR

Don't want to leave you thinking this PR broke CI. The job fails while building the container, before any repo code is read:

#10 6.178 E: Version '8.5.0-2ubuntu10.11' for 'curl' was not found
ERROR: failed to build ... exit code: 100

scripts/ci/Dockerfile.vhs (line 33 on main) pins ~40 apt packages to exact versions. Ubuntu has since published a newer curl security update for 24.04, and the archive drops superseded versions, so that exact pin no longer resolves. This PR touches one file — server/index.ts — and only a help-text string literal in it; it doesn't go near the Dockerfile. Test (Bun latest) and CodeRabbit both passed.

Worth flagging that this isn't specific to my branch: the last green run of that workflow was 2026-07-28, and mine is the first run since, so any PR opened against main right now should hit the same wall — including yours.

A suggestion, entirely your call

Bumping the curl pin fixes it today but will rot again the next time any of those ~40 packages gets a security update. If you want the "pinned" container to actually stay reproducible, pointing apt at snapshot.ubuntu.com with a fixed timestamp would freeze the archive contents, not just the base image digest — the image is already digest-pinned, but apt still fetches live from archive.ubuntu.com, which is why the digest pin doesn't help here.

I'm not going to touch your CI uninvited. If you'd like either version — the quick pin bump or the snapshot change — say the word and I'll open a separate PR for it.

🤖 Written with AI assistance (Claude Opus 5).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants