mrkeyoor.com_
Wed 16 Sept 09:13 UTC
AI Toolsevaluationupdated 25 Aug 2026

opencode review

OpenCode is an open-source coding agent that runs in a terminal, desktop app, IDE extension, or server-backed web interface. It lets a language model inspect and edit a repository, run commands, call subagents, and use local or remote MCP tools under configurable permissions.

+1,713stars / 7d
Verdict

OpenCode is one of the strongest open choices for developers who want provider freedom without giving up a polished terminal agent, desktop client, or MCP support. Its permission system is capable, but the permissive defaults deserve deliberate configuration, and contributing to the giant monorepo is far heavier than installing the app. Use the packaged release for daily work; approach source development package by package rather than trusting the root test command.

We ran it

Lab card: what happened when we ran opencodeScreenshot of opencode (opencode.ai)
Install✓ · 107s2363 packages · 2474 MB
Buildn/ano build script
Tests✗ · 15sran, no count parsed
Repo6466 files~681,820 lines of source · 131.1 MB · 25 CI workflows

Answers from our run

Does opencode build from source?

Dependencies installed in 107 seconds (2363 packages), and the project has no separate build step. We cloned commit f4019ca into a clean Debian container with 3 CPUs and no project-specific setup.

Do opencode's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use opencode?

Teams that want a small source checkout: our install pulled 2,363 packages and occupied 2,474 MB.

What are the alternatives to opencode?

Aider, Continue, Cline. OpenCode is one of the strongest open choices for developers who want provider freedom without giving up a polished terminal agent, desktop client, or MCP support.

Setup4/5Easy binary install, heavy source tree and provider setup
Docs5/5Detailed guides for models, permissions, MCP, clients, and servers
Community5/5Very active releases, code changes, issues, and pull requests
Maturity4/5Broad usable product, with fast change and current client bugs

Discussed on

  1. hnAnthropic blocks third-party use of Claude Code subscriptions625 points
  2. hnAnthropic takes legal action against OpenCode483 points
  3. hnOpencode: AI coding agent, built for the terminal319 points
  4. hnShow HN: Gigacode – Use OpenCode's UI with Claude Code/Codex/Amp27 points
  5. hnOpencode – AI coding agent, built for the terminal6 points

Who it’s for

Developers who want one coding-agent interface across many model providers, including local models.
Terminal users who want separate Build and Plan modes plus configurable subagents.
Teams that need detailed tool permissions, managed configuration, or a self-hosted server.
MCP users who want local and remote tools available inside coding sessions.

Who it’s NOT for

Teams that want a small source checkout: our install pulled 2,363 packages and occupied 2,474 MB.
Developers expecting bun test at the repository root to verify everything: the root test script deliberately exits with the message do not run tests from root.
Security-sensitive teams unwilling to configure permissions: the docs say most actions are allowed by default, while only repeated-tool and outside-workspace access ask by default.
Users who may share sessions casually: shared links expose the full conversation and metadata until they are explicitly unshared.
Windows users who refuse WSL and need the most predictable terminal behavior: the project's own docs recommend WSL for performance and compatibility.

Setup reality

Our fresh Debian checkout installed successfully in 107 seconds, pulling 2,363 packages and using 2,474 MB. There was no root build script, so the build step was skipped. The root test command failed in 15 seconds because it is intentionally defined to print do not run tests from root and exit 1; that result says nothing about package-level test health.

Using a published binary is much lighter than working from this 6,466-file Bun monorepo. You still need credentials for a hosted model provider, or a separately running local model, then you connect it through the TUI. Provider keys are stored in OpenCode's local data directory. MCP servers bring their own commands, URLs, credentials, and context cost.

The default Build agent has full tool access, and most permissions default to allow. Review global, project, and managed configuration before using it on sensitive code. Windows users are steered toward WSL; exposing the server beyond localhost also requires a password and normal network controls.

A coding agent with several front doors

OpenCode is easiest to understand as one agent runtime presented through several clients. The terminal interface is the center of gravity, but the project also ships a desktop app, an IDE extension, a web client, and a server. The same system can read and edit files, run shell commands, call language models, delegate to subagents, and attach Model Context Protocol servers.

Two built-in primary agents establish the basic safety split. Build has all tools enabled for implementation. Plan asks before shell commands and file changes, making it better for inspecting an unfamiliar repository. General, Explore, and Scout subagents divide deeper work into full-access research, read-only code search, and outside dependency research. Users can define more agents with their own prompts, models, and permissions.

Model choice is a real strength. OpenCode uses the AI SDK and Models.dev, documents more than 75 providers, and also supports local models. Teams can point a provider at a custom base URL, hide models from the picker, or constrain the list. That flexibility is useful when cost, data location, and model behavior vary across projects.

What happened when we ran it

We cloned commit f4019ca into an unprivileged Debian container with 3 CPUs, 8 GB of RAM, and no secrets. This is a large Bun monorepo: 6,466 files, about 681,820 source lines, and a 131.1 MB checkout. Installation succeeded in 107 seconds, but it brought in 2,363 packages and occupied 2,474 MB. Source contributors should budget disk and dependency churn accordingly.

There was no build script or build target at the repository root, so our build step skipped it. The test command ran for 15 seconds and exited 1 after printing do not run tests from root. That is an intentional guard in the package script, not a failing assertion. It also means the common root command provides no summary of package tests; contributors must identify the relevant workspace and run its checks there.

The repository has 25 CI workflow files and monorepo workspaces, but no top-level tests directory and no Dockerfile in the measured checkout. Our run proves that dependency installation completes in the lab environment. It does not prove that the application packages pass their individual suites, because the root explicitly refused that test path.

Permissions need an owner

OpenCode's permission rules can allow, ask, or deny each action. They can match particular shell commands and file paths, cover external directories, control subagents and web access, and stop repeated identical tool calls. Later matching rules win, so teams can start with a catch-all and add exceptions. Managed configuration can be placed in system directories, with macOS also supporting managed preferences.

The defaults are friendlier to momentum than containment. The documentation says most permissions default to allow. External-directory access and a repeated-call guard ask, while .env reads are denied. Build also starts as the full-access agent. That may be acceptable on a disposable branch, but a company repository needs an explicit policy for edits, shell commands, network access, and directories outside the workspace. Auto mode raises the stakes because it approves anything that was set to ask, though explicit denies remain in force.

MCP support expands both capability and exposure. Local servers run configured commands; remote servers can use headers or OAuth. Their tools become available to the model, and the docs warn that large tool catalogs consume context quickly. Keep the enabled set small, audit local commands, and decide where credentials live. A tool that can reach an internal system deserves the same review as any other executable integration.

The convenience features have privacy edges

Conversation sharing is manual by default, but it creates a public URL containing the session history, messages, and metadata. The link stays available until someone runs the unshare command. Teams can disable sharing in project configuration, while enterprise deployments can restrict it to SSO users or host it themselves. For confidential work, disabling it is safer than relying on every developer to inspect a long agent transcript before sharing.

Windows has native installers, yet the official guide recommends WSL for file performance, terminal support, and development-tool compatibility. The desktop client can connect to a server inside WSL. If that server listens on 0.0.0.0, the docs tell users to set a server password. Keep it on localhost unless another device genuinely needs access.

Current issues show the cost of a product moving this quickly. Issue #44866 reports heavy terminal flicker and blank subagent tabs during streaming on Windows. Issue #44802 describes the desktop client freezing when an agent sends a screenshot to a text-only model. Issue #42950 reports a provider socket drop that leaves the UI without a clear error. These are specific client and provider paths, but they can interrupt a long coding session.

Health and the buying decision

The project moved from the sst organization to anomalyco, and GitHub redirects the old repository path. The last push was August 25, 2026. Release v1.18.22 arrived one day earlier, after nine other listed releases during August. Its fixes cover provider compatibility, login links, pricing text, and the desktop model picker. This cadence is exceptionally active, though frequent releases also make version pinning sensible for teams.

GitHub reported 5,362 open issues and pull requests combined. The count includes contributions and requests, not only defects. The same-day issue and pull-request activity shows an engaged project, while the queue size tells adopters to search carefully before filing and to expect overlapping reports.

OpenCode earns a trial if provider choice, terminal work, and configurable agents matter. Install the release rather than the monorepo, set a permission policy before the first sensitive task, disable sharing where code is confidential, and pin upgrades for team use. Developers extending the source should run checks in the package they changed because the root test command is deliberately a dead end.

Alternatives

ProjectWhat it isPick it when
Aider gh↗A terminal coding assistant centered on repository-aware chat and Git commits.pick this instead when you prefer a narrower terminal workflow and tight Git integration.
Continue gh↗An open-source coding-agent platform with IDE extensions and configurable models.pick this instead when the editor experience matters more than a terminal-first interface.
Cline gh↗A VS Code agent that can inspect files, run commands, and operate a browser with approval prompts.pick this instead when you want the agent and its approvals to live inside VS Code.

What people are saying

  1. [velocity-scout] SheberDavid/v4-flash-godmode-opencode-go
  2. [github-trending] opencode-ai/opencode
  3. [github-trending] anomalyco/opencode
  4. [hackernews] Agent-Manager: A Tmux TUI for Running Claude Code, Codex and OpenCode

Sources

  1. OpenCode README
  2. OpenCode documentation
  3. OpenCode permissions
  4. OpenCode MCP servers
  5. OpenCode sharing
  6. OpenCode v1.18.22 release
  7. Issue 44866: TUI flicker and blank subagent tabs
  8. Issue 44802: Screenshot freeze with a text-only model

More ai tools reviews

Concat · DLSS5-Feeder · Concat · LocalMiniDrama · agents-towards-production · Marinara-Engine · the whole board →