OpenCode integrates with IDEs in two main ways: (1) an IDE extension workflow (notably for VS Code) that installs automatically when you run OpenCode from the IDE’s integrated terminal, and (2) editor-agnostic workflows where OpenCode runs in your terminal but can hand off editing or exporting to whatever editor your EDITOR environment variable points to. Additionally, OpenCode supports ACP (Agent Client Protocol), which lets compatible editors/IDEs launch and communicate with OpenCode as an agent subprocess over a standard JSON-RPC interface. That gives you options ranging from “pure terminal” to “fully inside the editor,” depending on your team’s setup.
If you’re using VS Code, the OpenCode IDE docs describe a simple path: open VS Code, open the integrated terminal, run opencode, and the extension installs automatically. If auto-install fails, the same doc calls out common checks (for example, you need the IDE CLI command available in PATH, and you must run from the integrated terminal so VS Code can handle extension install permissions). If you prefer a different editor workflow—or you’re SSH’d into a remote machine where you only have terminal access—OpenCode still plays nicely with your IDE by letting you open an external editor for composing messages (/editor) or export a conversation as Markdown (/export), both driven by your EDITOR env var (for GUI editors, the docs recommend including a --wait flag so OpenCode can pause until you close the editor window).
For deeper IDE-level integration beyond a VS Code extension, ACP is the “standard protocol” path: your editor starts opencode acp, then speaks JSON-RPC over stdio, so the agent can be used directly from inside the editor. This matters if you want consistent behavior across multiple editors in a team, or if you want to wire OpenCode into a specialized environment (for example, a minimal editor on a remote box). A practical example: you’re implementing semantic code search for internal docs and decide to store embeddings in Milvus during development; you can keep OpenCode attached to your IDE, ask it to scan the repository for doc ingestion points, and generate the embedding pipeline code while you review changes in your editor. Later, when you move the service to production and use Zilliz Cloud, the same IDE workflow remains: OpenCode stays “in the loop” as your code agent; only your runtime configuration changes.