Claude Code Plugin

Install devboy as a Claude Code plugin — one slash-command, no manual npm step. The plugin ships skills, MCP server registration, and a bootstrap recipe that the agent itself runs to install the CLI binary on first use.

Install

From inside any Claude Code session:

/plugin marketplace add meteora-pro/devboy-tools
/plugin install devboy@meteora-devboy

That is the only thing the user does manually. Claude Code fetches the plugin, registers the skills, wires up the MCP server placeholder, and surfaces the setup skill on first use.

What happens next — agent-driven bootstrap

The plugin does not ship the Rust binary. On first activation the bundled setup skill detects whether devboy is on $PATH and, if not, installs it. ADR-018 §1 has the full sequence; the short version:

  1. Detect plugin context — $CLAUDE_PLUGIN_DATA is set, so the skill picks --agent claude automatically.
  2. Check command -v devboy. If found, jump to step 4.
  3. npm install -g @devboy-tools/cli if npm is available; otherwise download the platform tarball (devboy-<os>-<arch>.tar.gz) and the matching .sha256 sibling from the latest GitHub Release, shasum -a 256 -c to verify, extract into ${CLAUDE_PLUGIN_DATA}/bin/, add to PATH. Releases are not currently code-signed; the per-asset SHA-256 is the integrity check.
  4. Run devboy onboard --agent claude --yes to detect agents on the machine and (where applicable) install the curated skill bundle.
  5. Run devboy doctor and report.

If something fails along the way the agent invokes the repair skill in the same session — no out-of-band debugging.

After the binary is installed, run /reload-plugins so Claude Code picks up the MCP server entry. The MCP shim (bin/devboy-shim.sh) finds the binary in either ${CLAUDE_PLUGIN_DATA}/bin/ or $PATH and exec's it.

What the plugin ships

ComponentPath inside the plugin
Manifestplugins/claude/.claude-plugin/plugin.json
Skills (24, symlinks → /crates/devboy-skills/skills/<category>/<name>)plugins/claude/skills/<name>/
MCP serverplugins/claude/.mcp.json
Binary locatorplugins/claude/bin/devboy-shim.sh

Skill names match the source filenames one-to-one — plugins/claude/skills/<name> is a symlink to crates/devboy-skills/skills/<category>/<name>/, so editing /crates/devboy-skills/skills/00-self-bootstrap/setup/SKILL.md updates the plugin in the same edit. Plugin namespacing prepends devboy:, so:

  • /devboy:setup — bootstrap
  • /devboy:get-issues — fetch open / closed issues
  • /devboy:review-mr — review a merge / pull request
  • /devboy:analyze-usage — Claude Code session analytics

See PLUGIN_NAMING.md for the full layout.

Updating

The plugin's version field is synced with the Cargo workspace version on every tag push. To pull a new release:

/plugin update devboy@meteora-devboy

…then /reload-plugins. The CLI binary is updated separately (npm or a fresh GitHub Release pull) — re-running /devboy:setup upgrades it.

Compared to the npm path

Both install paths produce the same end state — same binary, same MCP server, same skills surface — but cover different audiences.

Plugin installnpm install -g + devboy onboard
AudienceInteractive Claude Code usersCI, dotfiles, Docker, headless
Steps1 (/plugin install …)2 (npm i -g, then onboard)
DistributionMarketplace + agent-driven bootstrapnpm registry
Updates/plugin updatenpm i -g @devboy-tools/cli
Skill installationProvided by plugin (namespaced)Copied into ~/.claude/skills/
Dedupdevboy onboard skips Claude target when plugin enabledn/a

You can mix and match — npm install -g first, then install the plugin later: devboy onboard reads ~/.claude/settings.json#enabledPlugins and skips the Claude target so you don't end up with duplicate skill copies (ADR-018 §5).

Troubleshooting

  • MCP server not connected. Run /reload-plugins after setup finishes the install. The shim only finds devboy once it is on PATH or in ${CLAUDE_PLUGIN_DATA}/bin/.
  • npm install -g fails with permissions. The bootstrap will fall back to the GitHub Release binary in ${CLAUDE_PLUGIN_DATA}/bin/ automatically. If both fail, ask /devboy:repair.
  • Skills don't show up after install. Trigger /reload-plugins, or restart Claude Code if reload is unavailable.
  • Conflicting skills in ~/.claude/skills/. Run devboy onboard --agent claude --yes once — it detects the active plugin and removes nothing, but future runs respect the dedup rule.

See also