Skip to content

feat(cli): add CodeBuddy agent support#1011

Open
studyzy wants to merge 2 commits into
EveryInc:mainfrom
studyzy:main
Open

feat(cli): add CodeBuddy agent support#1011
studyzy wants to merge 2 commits into
EveryInc:mainfrom
studyzy:main

Conversation

@studyzy

@studyzy studyzy commented Jun 26, 2026

Copy link
Copy Markdown

Description

Add CodeBuddy AI Agent as a new agent platform adapter, reusing the existing ClaudeCode adapter patterns with CodeBuddy-specific path constants and configuration.

Motivation

CodeBuddy is an emerging AI coding agent platform. This PR adds first-class support for it, enabling the compound-engineering plugin to install skills/agents/commands into CodeBuddy workspaces.

Changes

  • Added CodeBuddy provider/adapter module (.codebuddy/ directory, CODEBUDDY.md entry point)
  • Registered CodeBuddy in the platform registry and path constants
  • Added CodeBuddy-specific CLI subcommand for plugin install/conversion
  • Updated .codebuddy-plugin/marketplace.json and .codebuddy-plugin/plugin.json with correct repository URLs

Testing

  • bun test passes
  • bun run release:validate passes
  • New platform adapter tests pass locally

Checklist

  • Code follows project style guidelines
  • Self-reviewed the code
  • Added tests for new functionality
  • Updated documentation
  • CI checks pass locally

- Converter: ClaudePlugin → CodeBuddyBundle (src/converters/claude-to-codebuddy.ts)
- Writer: output to .codebuddy/ dir (src/targets/codebuddy.ts)
- Types: CodeBuddyBundle, CodeBuddyAgent (src/types/codebuddy.ts)
- Plugin manifest: .codebuddy-plugin/plugin.json + marketplace.json
- CLI: --to codebuddy, --codebuddy-home flags (src/commands/convert.ts)
- Registry: codebuddy target in src/targets/index.ts
- Detection: detect-tools.ts checks ~/.codebuddy/
- Legacy cleanup: STALE entries for CodeBuddy (src/data/plugin-legacy-artifacts.ts)
- Release: .codebuddy-plugin/ in release components
- Docs: README CodeBuddy install + local dev sections
- Tests: codebuddy-converter.test.ts, codebuddy-writer.test.ts
- Gitignore: .idea/, .serena/

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 206b58ed3e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/targets/index.ts Outdated
Comment thread src/targets/codebuddy.ts Outdated
Comment thread .codebuddy-plugin/plugin.json
…ge MCP servers

Address three issues surfaced by AI code review on PR EveryInc#1011:

1. src/targets/index.ts: pass outputIsCodeBuddyRoot: true when registering
   the codebuddy write handler, mirroring the codex target. Without it,
   users who set CODEBUDDY_HOME to a path whose basename is not .codebuddy
   would get files nested under <root>/.codebuddy while detection/logging
   pointed at <root>.

2. src/targets/codebuddy.ts: merge MCP servers by key instead of replacing
   the entire mcpServers object. The previous assignment discarded any
   non-plugin MCP servers the user had configured in settings.json,
   silently destroying user data on every install/upgrade.

3. .github/release-please-config.json + src/release/metadata.ts: wire
   .codebuddy-plugin/plugin.json into release-please extra-files and add
   a CodeBuddy detect-only validation block to release metadata sync.
   Without this, the next root release would advance every other plugin
   manifest version while .codebuddy-plugin stayed pinned at 3.14.3.

Tests: mergeCodeBuddyConfig test updated to assert merge semantics;
bun test and bun run release:validate both pass.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 195191fe37

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/targets/codebuddy.ts
Comment thread src/targets/codebuddy.ts
Comment thread src/targets/codebuddy.ts
@tmchow

tmchow commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Thanks for putting this together. I am going to steer this away from a first-class codebuddy converter target for now, though.

The reason is that CodeBuddy appears to already support the lower-maintenance path we want here: consume the Claude-compatible plugin surface instead of us carrying a separate target. Their plugin reference says .codebuddy-plugin/ is the native metadata dir, but also explicitly says .claude-plugin/ is supported for compatibility, with the actual commands/, agents/, and skills/ directories living at the plugin root: https://www.codebuddy.ai/docs/cli/plugins-reference#file-location-reference. Their troubleshooting docs also describe the Claude Code migration path as sharing/copying agents/, commands/, skills/, and CLAUDE.md -> CODEBUDDY.md: https://www.codebuddy.ai/docs/cli/troubleshooting#migrating-from-claude-code.

So before we add another converter/writer/release component, I would rather make the CodeBuddy path be: install or point CodeBuddy at the existing Claude-compatible plugin layout, and document any small CodeBuddy-specific setup if needed.

This PR adds a fair amount of permanent surface area: converter, writer, types, manifests, release wiring, detection, cleanup, README changes, and tests. That is exactly the sort of thing we should reserve for platforms where the native/compat path is missing or demonstrably insufficient.

Would you be open to reworking this into a docs-first PR that explains how to use Compound Engineering from CodeBuddy via the Claude-compatible plugin path? If that path breaks on a concrete CodeBuddy behavior, that would be a much stronger reason to add code, and we can scope the implementation around the actual gap.

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