Execution harness · free models, or your own provider keys
Run your chats on OpenCode
Pick OpenCode as the harness in any thread and the round runs on `opencode` over the Agent Client Protocol — the mesh tools, nodes and context you already have, driven by a different engine.
What getting it does
Holding the package puts the harness in your chat picker: the picker lists the harnesses of every package you can read. It never appears for users who do not hold the package, and nothing is billed to the mesh.
- Get the plugin — the harness appears in your thread's harness picker.
- Pick it in a thread, then chat right away on OpenCode's free models, or run
/loginand paste an OpenCode Zen API key for the paid ones. - Chat as usual — same threads, same tools, same mesh content.
Uninstalling removes only a legacy copy in your home, if one exists, and keeps your access — the harness stays in your picker. To stop using it, switch the thread to another harness explicitly; no history is lost.
Good to know
- It is a harness, not an agent: it changes what executes the round, not which agent you talk to.
- Each thread is one OpenCode session: every round resumes it, so the agent keeps the thread's context and tool results itself. Every tool the agent runs shows up in the thread as a tool call.
- The agent speaks the Agent Client Protocol; the harness that drives it is shared by every ACP agent and ships with the ACP Agents package: @@("Acp/AgentClientProtocol").
- Private logins need a per-user root. With
Acp:ConfigDirRoot(orClaudeCode:ConfigDirRoot) set, each user's rounds run in their own home, so your OpenCode login is yours. Without it the harness uses the host account's home, and everyone on that portal shares its cached login — fine on a single-user machine, not on a shared portal.