feat(opencode): add opencode integration — /mcpctl switcher + footer indicator #99

Open
michal wants to merge 1 commits from opencodeeepseek into main
Owner

Implements mcpctl as an opencode addon, mirroring the prime-agent UX (active-project indicator + /mcpctl project switcher). Mounts the active project's proxy MCP gateway through opencode's own live MCP API.

  • server plugin (src/opencode-ext/mcpctl-opencode.ts): headless mount under a stable mcpctl name via client.mcp.add, re-asserted on first contact + before each turn.
  • TUI plugin (src/opencode-ext/mcpctl-opencode-tui.tsx): /mcpctl, /mcpctl-status, /mcpctl-skills, and a mcpctl:<project> footer indicator (next to model name, above token counter).
  • mcpctl config opencode: provision/reuse project mcptoken, install + register plugins, write 0600 state file, sync skills.
  • skills sync --agent opencode: new shared-tree target.
  • embedded-source generator + embed test; settings/config/order tests; completions; README + docs/opencode-extension.md.

Typechecked against real @opencode-ai/plugin types (1.18.15). Full cli suite: 617 tests pass.

Implements mcpctl as an opencode addon, mirroring the prime-agent UX (active-project indicator + /mcpctl project switcher). Mounts the active project's proxy MCP gateway through opencode's own live MCP API. - server plugin (src/opencode-ext/mcpctl-opencode.ts): headless mount under a stable `mcpctl` name via `client.mcp.add`, re-asserted on first contact + before each turn. - TUI plugin (src/opencode-ext/mcpctl-opencode-tui.tsx): /mcpctl, /mcpctl-status, /mcpctl-skills, and a `mcpctl:<project>` footer indicator (next to model name, above token counter). - `mcpctl config opencode`: provision/reuse project mcptoken, install + register plugins, write 0600 state file, sync skills. - `skills sync --agent opencode`: new shared-tree target. - embedded-source generator + embed test; settings/config/order tests; completions; README + docs/opencode-extension.md. Typechecked against real @opencode-ai/plugin types (1.18.15). Full cli suite: 617 tests pass.
michal added 1 commit 2026-08-08 23:13:11 +00:00
feat(opencode): add opencode integration — /mcpctl switcher + footer indicator
Some checks failed
CI/CD / typecheck (pull_request) Successful in 1m16s
CI/CD / test (pull_request) Successful in 1m25s
CI/CD / lint (pull_request) Successful in 2m42s
CI/CD / smoke (pull_request) Failing after 1m59s
CI/CD / build (pull_request) Successful in 4m54s
CI/CD / publish (pull_request) Has been skipped
9448c117df
Implements mcpctl as an opencode addon, mirroring the prime-agent UX
(active-project indicator + a /mcpctl project switcher). opencode is a
native MCP client, so instead of a bridge this mounts the active project's
proxy MCP gateway through opencode's own live MCP API.

- src/opencode-ext/mcpctl-opencode.ts — server plugin (headless runs): mounts
  the active project under a stable `mcpctl` name via `client.mcp.add`,
  re-asserting on first contact and before each turn; never throws.
- src/opencode-ext/mcpctl-opencode-tui.tsx — TUI plugin: `/mcpctl`,
  `/mcpctl-status`, `/mcpctl-skills`, and a `mcpctl:<project>` indicator in
  the prompt footer (next to the model name, above the token counter); the
  switch delegates to the CLI then re-points the mount live.
- `mcpctl config opencode` — provision/reuse the project mcptoken, install +
  register the plugins (tui.json), write the 0600 state file, sync skills.
- `skills sync --agent opencode` — new shared-tree target
  (~/.config/opencode/skill).
- embedded-source generator + embed test, settings/config/order tests,
  completions, README + docs/opencode-extension.md.

Typechecked against the real @opencode-ai/plugin types (1.18.15).
Some checks failed
CI/CD / typecheck (pull_request) Successful in 1m16s
CI/CD / test (pull_request) Successful in 1m25s
CI/CD / lint (pull_request) Successful in 2m42s
CI/CD / smoke (pull_request) Failing after 1m59s
CI/CD / build (pull_request) Successful in 4m54s
CI/CD / publish (pull_request) Has been skipped
This pull request has changes conflicting with the target branch.
  • README.md
  • completions/mcpctl.fish
  • docs/opencode-extension.md
  • eslint.config.js
  • package.json
  • pnpm-lock.yaml
  • scripts/generate-opencode-extension.ts
  • src/cli/src/commands/config.ts
  • src/cli/src/commands/skills.ts
  • src/cli/src/config/opencode-extension.ts
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin opencodeeepseek:opencodeeepseek
git checkout opencodeeepseek
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: michal/mcpctl#99