OpenCode is an open-source AI coding agent delivered through three surfaces: a terminal-based TUI, an Electron/SolidJS desktop app, and an IDE extension speaking the Agent Client Protocol (ACP). A shared Core backend handles provider routing, session management, MCP tool integrations, subagents, and permissions; the Desktop and TUI are thin surfaces over that engine. OpenCode connects to 75+ LLM providers via the AI SDK and Models.dev, and exposes a programmatic client through the @opencode-ai/sdk npm package. Two server protocol generations coexist in the codebase — referred to as v1 (legacy) and v2 (current) — and the Desktop v2 layout migration was completed at release v1.18.0.
The Getting started section covers orientation, installation, local development, and contributing, and is the right entry point for most readers. The CLI and API section documents the yargs-based CLI entry point and the OpenAPI 3.1 HTTP server, while SDK and embedding covers the @opencode-ai/sdk npm package for programmatic control. The Configuration and plugins section groups the Configuration, MCP integration, Plugins, and Upgrading pages — everything about extending or customizing OpenCode from the outside. The Agents and sessions section covers Agents and skills, Session lifecycle, and Permissions, which together describe how a conversation runs, what tools it can call, and how approvals work. The Tools and Providers and LLM sections describe the LLM-facing surface: how tools are defined, registered, and executed, and how requests are built and streamed to providers like Bedrock, Azure, and Google Vertex. The CI and testing section documents the test workflow, toolchain caching, and unit and e2e test layout.
If you want to install OpenCode and try it, read Installation and then CLI commands. If you want to understand the architecture before touching code, read Orientation under Getting started, then Server and HTTP API, then Session lifecycle. If you want to extend OpenCode with a new tool, MCP server, or hook, read Plugins, MCP integration, and the Tools section. If you are contributing a fix or feature, read Local development and Contributing first, then CI and testing before opening a PR.