OpenCode
// Platform overview

The OpenCode platform, end to end.

One CLI is the source of truth. Desktop, web, and editor surfaces are thin clients over the same wire protocol — so behavior stays identical whether you ran the agent from a tmux pane on a jump host or a VSCode panel on a laptop.

Platform landscape

The OpenCode platform is a single agent process, a thin wire protocol, and a family of clients. Every surface runs the same planner, the same tool sandbox, and the same approval flow — which is why a developer can drive the agent from a terminal on Monday, a desktop app on Tuesday, and a browser audit console on Wednesday without relearning anything.

Platform surface matrix
SurfaceOSBinary sizeAuto-updateBest for
OpenCode CLImacOS, Linux, Windows18 MBopt-inCanonical sessions, CI, SSH, scripts
Desktop appmacOS, Windows, Linux84 MBauto, menuReviewers, approval queue, tray log
Web consoleAny modern browsern/a (hosted)continuousRead-only audit, sandboxed workstations
VSCode extensionVSCode 1.85+3.2 MBmarketplaceInline diffs, selection prompts
JetBrains pluginIDE 2024.1+6.1 MBJetBrains hubIntelliJ, GoLand, PyCharm teams
Neovim / Helixany Unix terminal12 KB Luapackage managerModal editors, remote SSH work

How the OpenCode platform is put together.

The OpenCode platform is built around a single statement: the agent is a local process, and every surface is a client. That means when you run OpenCode in a terminal, the agent process spins up in the current working directory. When you open the OpenCode desktop app, the same agent process spins up behind a native window. When you attach the OpenCode VSCode extension, the extension host launches the same agent as a child process. The protocol between the agent and its clients is a documented JSON-over-stdio stream with a small set of verbs: plan, apply, observe, revert, log.

That architecture is what lets OpenCode stay boring and inspectable. You can pipe the same agent behind a bash script on a CI runner, behind a GUI on a developer laptop, or behind a browser on a tablet that cannot install binaries. The tools the agent calls — read-file, write-file, run-shell, run-test — are identical across surfaces, so the security posture a platform team approves on the CLI is the exact posture every other surface inherits.

Why the CLI is canonical.

Treating the CLI as the source of truth means OpenCode has exactly one authoritative binary to ship, sign, reproduce, and audit. Every other surface is a layer.

Editor extensions and the desktop app do not re-implement planning or tool execution. They spawn the OpenCode agent process and stream structured events from it. If the CLI fixes a bug, every client on every surface picks up that fix on the next run. If a security policy forbids a tool, the CLI enforces it and no client can bypass the block.

How clients negotiate with the agent.

Clients and the agent exchange a compact JSON envelope on stdio. The first message is a capability handshake: client advertises what it can render (diffs, plan trees, approval prompts), agent advertises what it can run (file tools, shell tools, test harness hooks). A quiet handshake lets a minimal client render text-only output while a rich client shows inline diffs.

The envelope is forward-compatible. New verbs added to a later CLI will be ignored by older clients, and clients can opt into newer rendering modes without forcing the agent to change. This is why the VSCode extension can ship on a faster cadence than the CLI without drift, and why the web console can be redeployed without coordinating a CLI release.

Supported operating systems and runtime footprint.

The OpenCode platform runs where developers actually work. The CLI is a static binary with zero runtime requirements beyond a working libc on Linux.

On macOS, the CLI is a universal binary that covers Intel and Apple silicon in one file. The desktop app is an arm64 binary for Apple silicon machines and a universal binary download is available for mixed fleets. On Windows, the CLI ships as an x64 and an arm64 binary, and the desktop app is distributed as an MSI installer with a corresponding winget manifest. On Linux, the CLI is a static x86_64 and aarch64 binary that works on glibc 2.28 or newer, plus a musl static variant for Alpine-based containers and build images.

Platform lifecycle policy.

Stable releases ship every six weeks. LTS releases ship once a year with eighteen months of security patches. A nightly channel is published daily for early adopters.

Every release is signed with a pinned key, published with a CycloneDX SBOM, and accompanied by an SLSA level 3 build attestation. Downstream distributors — Homebrew, winget, apt repositories, container registries — can verify each artifact against the transparency log before republishing. Deprecation notices land in the changelog one LTS cycle before removal, so teams running on the LTS branch never encounter a surprise breaking change mid-cycle.

Licensing, governance, and procurement fit.

OpenCode is a permissive open-source project governed by a small maintainer council with a published charter. Contributors sign a DCO; the LICENSE is a one-page permissive text reviewed by outside counsel.

OpenCode has a published security disclosure policy on the trust and safety page, a coordinated disclosure channel, and a public incident history in the changelog. Release engineering follows NIST SSDF 1.1 controls for build isolation and artifact signing, with independent review sourced where appropriate through code.gov referrals. Procurement packets — control mappings, SBOMs, attestations — are refreshed every quarter and attached to the LTS tag.

How procurement teams evaluate OpenCode.

Security architects treat an AI coding agent the same as any other build-time tool: signed binaries, reproducible builds, SBOMs, and a documented update channel.

OpenCode satisfies those controls out of the box. The SBOM is CycloneDX 1.5, the build attestation is SLSA level 3, the binaries are signed with a Sigstore-rooted key, and the transparency log is public. Endpoint management teams can pin a single version across the fleet or track LTS with a predictable window. A sample procurement packet — legal, security, and operational — is available on the trust and safety page.

How teams adopt the OpenCode platform.

Platform adoption in practice follows a three-step pattern. One engineer installs the CLI, proves a workflow, and presents the transcript to the team.

Step two is adding the VSCode or JetBrains extension for teammates who prefer a GUI. Because the extensions spawn the same CLI, nothing new has to be approved by the security team — the same binary that was already vetted is the same binary under the editor. Step three is rolling the desktop app or the web console to reviewers and team leads who want an approval queue or a read-only audit surface without installing yet another tool. At that point, the entire team — writers, reviewers, auditors — share a single platform with a single security model.

Pick a surface and install.

Start with the CLI on your laptop, then layer the desktop app, web console, or editor extension on top as the team scales. Same protocol, same binary, same audit trail.

Platform adopters

Shipped across CLI, desktop, and web.

The wire protocol between the CLI and the clients is the best design decision OpenCode team made. Our internal review tool talks to the agent directly over the documented envelope.

— Dimitri Y. Kolokotronis, Data Platform Engineer, Skyfern Partners

LTS cadence was the unlock for a large regulated deployment. Eighteen months of security fixes on a pinned branch is what our endpoint management team needed to say yes.

— Bettina U. Svenningsen, Principal Architect, Mireveldt Systems
Platform FAQ

Questions engineers ask before adopting OpenCode platform-wide.

Short answers aimed at platform teams evaluating the OpenCode agent across every surface a developer uses. For topics specific to one surface, each answer links to the dedicated guide.

What surfaces does the OpenCode platform include?
The OpenCode platform ships a CLI, a desktop app for macOS, Windows, and Linux, a browser-based web console, and a family of editor extensions for VSCode, JetBrains, Neovim, Helix, and Zed. See the platform overview for how they share a single protocol.
Which surface is the source of truth?
The OpenCode CLI is canonical. Every other surface is a client that launches the CLI as a child process and streams structured events from it, so the security model approved on the CLI is inherited everywhere.
Which operating systems does OpenCode support?
macOS 12 or newer, Windows 10 1809 or newer on x64 and ARM64, and Linux x86_64 or aarch64 on glibc 2.28 or newer. A musl static binary covers Alpine-based containers. Windows details are on the dedicated page.
What is the OpenCode platform lifecycle policy?
Stable releases every six weeks, LTS once a year with eighteen months of security patches, and a nightly channel. Deprecations are announced one LTS cycle before removal, and the changelog records every public incident.
Is the OpenCode platform licensed for commercial use?
Yes. A permissive open-source license covers commercial redistribution, internal deployment, and vendor integration with no separate agreement. The trust and safety page hosts the procurement packet with SBOM, attestation, and signing keys.