Skip to content

OpenCode provider

OpenCode ships a coding agent CLI, which is the only qualification this list has. A provider is the identity of a CLI to point at, so the planned set is simply the CLIs people are already running from an editor or a terminal to write code.

The order they are attached in is decided by what each one would teach the contract, not by preference between them.

That it exists and is worth attaching. This page has no verified facts about the CLI’s interface to report.

Everything else. Not yet investigated:

  • The command name and how a conversation is identified.
  • Which flags make it a controllable two-way stream.
  • Whether its output is NDJSON with a type discriminator, which would let EventParser work unchanged.
  • Its permission vocabulary, and whether PermissionMode can express it without a new member.
  • Whether it has auth and mcp subcommands, and in what shape.

Where a fact is missing here, it is missing because it has not been checked — not because it was judged unimportant.

Every port applies pressure to the same two places, and both are findings to raise rather than things to work around:

  • Auth/ and Mcp/ are currently Claude-shaped. They run claude auth status --json and claude mcp list and parse what those print. Constructed with a provider’s name, they will run against another CLI and produce nothing useful if it spells its subcommands differently.
  • PermissionMode is a closed set. Its constructor is private precisely so no mode can appear that other adapters cannot spell. A CLI with a concept the set cannot express is evidence that the shared vocabulary needs reshaping, and should be discussed rather than worked around.