Agent skill · software engineering · sundial-org
opencode-acp-control
Control OpenCode directly via the Agent Client Protocol (ACP). Start sessions, send prompts, resume conversations, and manage OpenCode updates.
Why this skill is useful
Adds executable scripts for managing OpenCode sessions and interactions via the Agent Client Protocol that are not publicly documented.
What it needs
Requires bash installed locally. About 4k tokens when loaded. Last updated 2026-03-07. 639 stars on the source repository.
What this skill does
OpenCode ACP Skill Control OpenCode directly via the Agent Client Protocol (ACP). Metadata For ACP Protocol Docs (for Agents/LLMs): https://agentclientprotocol.com/llms.txt GitHub Repo: https://github.com/bjesuiter/opencode-acp-skill If you have issues with this skill, please open an issue ticket here: https://github.com/bjesuiter/opencode-acp-skill/issues Quick Reference Action How -------- ----- Start OpenCode bash(command: "opencode acp", background: true) Send message process.write(sessionId, data: "<json-rpc>\n") Read response process.poll(sessionId) - repeat every 2 seconds Stop OpenCode process.kill(sessionId) List sessions bash(command: "opencode session list", workdir: "...") Resume session List sessions → ask user → session/load Check version bash(command: "opencode --version") Starting OpenCode Save the returned sessionId - you'll need it for all subsequent commands. Protocol Basics All messages are JSON-RPC 2.0 format Messages are newline-delimited (end each with \n) Maintain a message ID counter starting at 0 Step-by-Step Workflow Step 1: Initialize Connection Send immediately after starting OpenCode: Poll for response. Expect result.protocolVersion: 1. Step 2: Create Session Poll for response. Save result.sessionId (e.g., "sessabc123"). Step 3: Send Prompts Poll every 2 seconds. You'll receive: session/update notifications (streaming content) Final response with result.stopReason Step 4: Read Responses Each poll may return multiple lines. Parse each line as JSON: Notifications: method: "session/update" - collect these for the response Response: Has id matching your request - stop polling when stopReason appears Step 5: Cancel (if needed) No response expected - this is a notification. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills sundial-org/opencode-acp-control