opencode is a coding agent that lives in your terminal. You point it at a project, talk to it, and it reads, edits, runs commands, and asks for permission along the way. The pitch is narrow on purpose: not an IDE extension, not a web app you paste code into, but a TUI that treats the shell as home base. That framing is the whole reason to consider it, so this page spends its time on what that choice buys you and what it costs.
Why it gets attention
Two things separate opencode from the pile of “AI in your editor” tools. First, it is genuinely provider-agnostic. Models are wired in through a shared catalog (models.dev), which means adding a new provider is closer to a config change than a code change. As of 2026-06 it spans Claude, OpenAI, DeepSeek, OpenRouter, Bedrock, vLLM, and local models, and the changelog shows new reasoning models landing within days of release. If you are allergic to lock-in, that matters more than any single feature.
Second, it ships a real split between a TUI client and a server core. The terminal UI is built on SolidJS and a terminal renderer, the logic sits in a separate package, and there is a plugin SDK plus a desktop (Electron) wrapper that can drive a WSL backend on Windows. The practical upshot: the same engine runs whether you are in tmux over SSH or in a desktop window, and third parties can build on the server without forking the UI.
Core capabilities
- Two built-in agents you switch with
Tab: build (full access, the default) and plan (read-only, denies edits and asks before running bash). A general subagent handles multi-step searches and is invoked with@general. - Provider-agnostic models through models.dev, including local and self-hosted endpoints.
- MCP server support, so external tools and data sources plug in through the Model Context Protocol.
- LSP integration, formatters, and a fast file search path for large repositories.
- Tiered permission prompts that include diff content before an edit is applied, with session-level tool rules.
Install
opencode reads its install method from the docs, not from your language ecosystem, so use the real commands:
# Install script
curl -fsSL https://opencode.ai/install | bash
# Package managers
npm i -g opencode-ai@latest # or bun / pnpm / yarn
brew install anomalyco/tap/opencode # macOS and Linux, tracks latest
scoop install opencode # Windows
sudo pacman -S opencode # Arch (stable)
nix run nixpkgs#opencode # Nix
The desktop build is downloadable from the releases page, or brew install --cask opencode-desktop on macOS. The maintainers note one upgrade gotcha worth heeding: remove versions older than 0.1.x before installing.
Using it
The mental model is a conversation with guardrails. Start in plan mode to explore an unfamiliar codebase without risking edits, then Tab into build when you are ready to let it write. Permission prompts surface the actual diff, so you approve changes rather than trusting blind. For long jobs, the @general subagent fans out searches while the main session stays focused.
When it fits, and when it does not
It fits if your work already lives in the terminal, if you want to swap models freely, or if you need an agent that runs over SSH on a remote box. It fits less well if you want deep inline editing inside a GUI IDE, or if you prefer an agent that auto-commits and manages git history for you in the background. opencode is opinionated about staying in the shell, and that opinion is the product.
How it compares
The honest peer set is other coding agents, not editors. Star counts as of 2026-06:
| Project | Stars | Language | Shape |
|---|---|---|---|
| anomalyco/opencode | ~173k | TypeScript | Terminal TUI + server, provider-agnostic |
| cline/cline | ~63k | TypeScript | Autonomous agent, IDE-extension first |
| Aider (Aider-AI/aider) | ~46k | Python | Terminal + git auto-commit, repo map |
| continuedev/continue | ~34k | Python/TS | In-IDE assistant framework |
Aider is the closest terminal sibling, but it leans on git auto-commit and a repo map; opencode leans on its agent/permission model and provider catalog. Cline and Continue assume an editor. The differentiator is less “smarter model” and more “where does the agent live and how locked-in are you.”
Rough edges from the issue tracker
The release pace is aggressive (several point releases on 2026-06-10 alone, around v1.17.x), and the open issues reflect a fast-moving target rather than a stale one. Worth knowing before you depend on it:
- Edit tools have stumbled on Unicode normalization (NFC vs NFD), causing edit failures on macOS filenames.
- A reported bug where completed background subagent tasks triggered a re-dispatch loop.
- Security-flavored reports around MCP server environment variables and edit-path validation, the kind of thing to watch if you wire opencode into sensitive tooling.
None of these are dealbreakers, but they are the texture of a tool shipping daily. Pin a version if you need stability.
A note on contributing
The contribution policy is stricter than most: bug fixes, LSP/formatter improvements, provider support, and performance work are welcome, but unsolicited UI or product-feature PRs get closed pending design review. If you plan to build on opencode, build through the plugin SDK and the server, not by patching the TUI.
Related reading
If you are comparing agent tooling, see farion1231/cc-switch for managing multiple coding agents, github/spec-kit for a spec-driven workflow that targets opencode among other agents, and obra/superpowers for a skills-based methodology layered on top of an agent.