Skip to content

feat(runtime): add Devin CLI ACP runtime#21

Open
249469326i-lang wants to merge 1 commit into
nexu-io:mainfrom
249469326i-lang:feat/devin-cli-agent
Open

feat(runtime): add Devin CLI ACP runtime#21
249469326i-lang wants to merge 1 commit into
nexu-io:mainfrom
249469326i-lang:feat/devin-cli-agent

Conversation

@249469326i-lang

Copy link
Copy Markdown
Contributor

Summary

Adds Devin CLI (Cognition / formerly Windsurf) as a supported coding-agent runtime, following the exact same pattern as the Trae CLI adapter (PR #12).

Note: Windsurf was rebranded to Devin Desktop on 2 June 2026. The CLI binary is now devin, not windsurf. This PR targets the current product.

Changes

  • New agent def: packages/runtime/src/defs/devin-cli.ts

    • id: 'devin-cli', name: 'Devin CLI'
    • streamFormat: 'acp-json-rpc'
    • bin: 'devin', versionArgs: ['--version']
    • buildArgs() returns ['acp'] — starts the ACP JSON-RPC server over stdio
  • Registry: registered in AGENT_DEFS after traeCli

  • Test: packages/runtime/test/devin-cli.test.mjs — validates registration + ACP args

  • READMEs: updated agent count (13 → 14), added to all agent tables in both EN and CN READMEs

ACP protocol reference

devin acp is the official ACP stdio subcommand documented at cli.devin.ai. It speaks JSON-RPC 2.0 over stdin/stdout — the same transport used by Trae CLI (traecli acp serve --yolo) and Open Design AMR (vela agent run --runtime opencode).

From the official ACP registry config:

{ "cmd": "devin", "args": ["acp"] }

Requires the user to have run devin auth login at least once, or to have WINDSURF_API_KEY set in the environment.

Verified

  • tsc -p packages/runtime/tsconfig.json --noEmit passes ✅

Adds Devin CLI (Cognition, formerly Windsurf) as a supported coding
agent runtime, following the same pattern as the Trae CLI adapter (nexu-io#12).

Changes:
- packages/runtime/src/defs/devin-cli.ts — new AgentDef
  id: devin-cli, bin: devin, streamFormat: acp-json-rpc
  buildArgs() returns ['acp'] — starts the ACP JSON-RPC server over stdio
- packages/runtime/src/registry.ts — registered after traeCli in AGENT_DEFS
- packages/runtime/test/devin-cli.test.mjs — validates registration + ACP args
- README.md + README.zh-CN.md — agent count 13 → 14, added to all tables

The devin acp subcommand is officially documented at cli.devin.ai and
produces a JSON-RPC 2.0 over stdio server, identical to the ACP transport
used by Trae CLI and Open Design (Vela/AMR).
@lefarcen lefarcen added size/S Size S (20-99 LOC) risk/medium Medium risk type/feature Feature change labels Jun 5, 2026
@lefarcen lefarcen requested a review from PerishCode June 5, 2026 11:21
@lefarcen

lefarcen commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Hey @249469326i-lang 👋 — thanks again for the clean follow-up from #20; your closing comment there saved everyone the cycle. ❤️

Quick lifecycle nudge: main has moved ahead a handful of commits since you opened this (including the Remotion adapter that landed today), and the PR is now showing merge conflicts. Could you rebase against main when you have a moment? Once the conflicts are resolved, @PerishCode will pick this up for review — no action needed from him until then.

No rush, just wanted to make sure this didn't quietly slip off the board.

@lefarcen

Copy link
Copy Markdown
Contributor

Internal lifecycle note (for maintainer visibility):

  • 7 days since last author activity (June 8 nudge about conflicts)
  • Conflicts remain: README agent list line (main has 'Windsurf CLI' text from author's merged PR docs: add CONTRIBUTING.md and improve local setup instructions #19, but no actual Windsurf implementation; this PR adds the correct post-rebrand 'Devin CLI' implementation)
  • Escalated to @PerishCode in 群 — team can either rebase this or close+redo fresh

Technical assessment: PR is sound (follows Trae CLI pattern exactly, test coverage included, rebrand reasoning is correct — Windsurf → Devin happened June 2).

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

Labels

risk/medium Medium risk size/S Size S (20-99 LOC) type/feature Feature change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants