mrkeyoor.com_
Tue 22 Sept 22:35 UTC
LLM Toolsevaluationupdated 25 Aug 2026

opencode review

OpenCode is an open-source coding agent available in a terminal and a beta desktop app. It lets a chosen language model inspect code, edit files, run commands, call subagents, and use MCP tools under configurable permissions.

+1,240stars / 7d
Verdict

OpenCode is an excellent trial for developers who care about provider choice, a polished terminal interface, and configurable agents. Its broad defaults put responsibility on the user to define a safe permission policy, and the source monorepo is far heavier than the binary install suggests. Use a packaged release for daily work, pin team versions, and run contribution tests from the package you changed.

We ran it

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

Answers from our run

Does opencode build from source?

Dependencies installed in 108 seconds (2363 packages), and the project has no separate build step. We cloned commit 7cde832 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 seeking a small source project to extend: our checkout installed 2,363 packages and occupied 2,474 MB.

What are the alternatives to opencode?

Codex, Aider, Continue. OpenCode is an excellent trial for developers who care about provider choice, a polished terminal interface, and configurable agents.

Setup4/5Easy packaged install, followed by provider and permission setup
Docs5/5Detailed provider, configuration, agent, and permission guides
Community5/5Daily development, fresh releases, and a very busy work queue
Maturity4/5Capable daily tool, while the desktop client remains beta

Discussed on

  1. hnAnthropic blocks third-party use of Claude Code subscriptions625 points
  2. hnAnthropic takes legal action against OpenCode483 points
  3. hnShow HN: Gigacode – Use OpenCode's UI with Claude Code/Codex/Amp27 points
  4. hnOpenCode drops Claude Pro/Max subscription support per Anthropic's legal request6 points
  5. hnAnthropic legal request: OpenCode removes Claude subscription support6 points

Who it’s for

Developers who want one coding-agent interface across hosted and local model providers.
Terminal users who want separate Build and Plan agents with different permissions.
Teams that need project, user, and administrator-controlled configuration layers.
MCP users who want local or remote tools inside a coding session.

Who it’s NOT for

Teams seeking a small source project to extend: our checkout installed 2,363 packages and occupied 2,474 MB.
Contributors expecting a root test command to verify the monorepo: that script deliberately prints do not run tests from root and exits 1.
Security-sensitive users unwilling to write explicit permission rules: the docs say most actions default to allow, including the Build agent's tools.
Developers who want a coding agent with no model account or local inference service: OpenCode still needs a configured provider and credentials, or a separately running local model.
Anyone requiring a finished desktop product today: the README labels the desktop app beta.

Setup reality

Our fresh sandbox installed 2,363 Bun packages in 108 seconds and used 2,474 MB. There was no root build script or target, so the build step was skipped. The test command failed after 10 seconds because the package script intentionally prints do not run tests from root and exits 1. That result does not measure package-level test health.

Using the published binary is much lighter than working in the 6,464-file monorepo. A useful session still needs a hosted model key entered through /connect, or a separately configured local provider. Credentials are stored in OpenCode's local data directory, and project configuration may add plugins, skills, agents, commands, or MCP servers.

Most permissions default to allow. External-directory access and repeated identical calls ask by default, while .env reads are denied. Teams should set file, shell, network, and sharing policy before using the Build agent on sensitive code.

One agent runtime with several ways in

OpenCode is a coding agent whose main interface lives in the terminal. It can inspect a repository, edit files, execute shell commands, talk to model providers, and hand work to specialized subagents. A beta desktop application provides another front end, with installers for macOS, Windows, and Linux. The core attraction is choice: users are not tied to one model vendor or one fixed agent prompt.

Two primary agents establish the normal working split. Build is the default and has all tools enabled. Plan is intended for analysis, with file changes and shell commands set to ask. Built-in subagents handle general multistep work, read-only repository exploration, and external dependency research. Users can define more agents in JSON or Markdown, choosing their model, prompt, description, and permissions. That is enough structure to create a code reviewer or a documentation researcher without writing a plugin.

Provider choice is useful, and still needs ownership

The provider guide says OpenCode uses the AI SDK and Models.dev and supports more than 75 providers plus local models. A developer connects an account, selects a model, and can customize provider options such as a base URL. Whitelists and blacklists keep irrelevant or disallowed models out of the picker. OpenCode also sells optional model access through its own services, but those are not required to use the agent.

This flexibility solves procurement and experimentation problems, yet it does not remove them. Hosted providers need API credentials and charge according to their own terms. Local models need a server, hardware, and a compatible endpoint. Credentials added through /connect are stored under OpenCode's local data directory. Teams should decide which providers are approved, where keys may live, and whether project configuration can override organization defaults.

Configuration is layered. Remote organizational settings load first, then user, custom, project, .opencode directories, inline settings, and managed administrator policy. Most layers merge rather than replace one another. That is powerful for shared defaults, but a surprising project file can still change a user's effective configuration unless a managed policy overrides it. The documented JSON schema and explicit precedence list make these interactions inspectable.

What happened when we ran it

We cloned commit 7cde832 into a fresh unprivileged Debian container with three CPUs, 8 GB of memory, Node 22, and no secrets. The checkout contained 6,464 files and about 681,672 lines of source. Bun installation succeeded in 108 seconds. It installed 2,363 packages and consumed 2,474 MB, making source contribution a much larger proposition than installing the packaged command-line application.

There was no build script or target at the repository root, so our build step skipped it. That is a neutral result: the harness found nothing it could honestly call a root build. The repository is a workspace monorepo, and individual applications and packages have their own paths.

The root test command ran for 10 seconds and exited 1. Its entire message was do not run tests from root. This is an intentional guard, not a failed assertion. It also means our run produced no package test count and no evidence that the individual workspace suites pass. A contributor must read the contributing guide, identify the changed package, and run the commands specified for that part of the tree.

Permissions are capable but permissive

OpenCode can allow, ask, or deny actions. Rules can apply to a whole tool or to patterns such as particular shell commands, edit paths, URLs, skill names, and external directories. The last matching rule wins, so an administrator can begin with a catch-all and add narrow exceptions. Agent-level permissions then refine what Build, Plan, or a custom subagent can do.

The default posture favors getting work done. The documentation states that most permissions start as allow. Access outside the working directory and repeated identical tool calls ask, and .env reads are denied by default. Build still has broad file and command power inside the repository. Auto mode approves requests that would otherwise ask, though explicit deny rules remain active. On a personal scratch project that may feel convenient. On production source, teams should define denies for destructive commands, pushes, credentials, and sensitive directories before the first session.

MCP support widens the tool set. OpenCode can connect to local processes or remote servers, allowing a model to reach documentation, issue trackers, databases, and other systems configured by the user. Each connection introduces its own executable, URL, credentials, and tool descriptions. Keep the set small enough to review and disable servers that a project does not need. Provider freedom is useful; tool freedom deserves the same policy attention.

A fast-moving project with a large surface

The README covers packaged installation through a script and several package managers. It also documents the desktop downloads and labels that client beta. The wider documentation is stronger than the README itself, with separate guides for providers, agents, permissions, configuration, MCP, and deployment. New users should read the permission defaults before copying a model key into the application.

The repository was pushed on August 25, 2026. Release v1.18.22 arrived on August 24 with fixes for device login links, OpenAI-compatible provider options, Amazon Bedrock compatibility, and the desktop model picker. GitHub reported 5,359 open issues and pull requests combined. That queue is enormous, but daily code and release activity show a project processing demand rather than sitting idle. Fast releases also make pinning sensible for a team that wants repeatable behavior.

OpenCode fits developers who want to compare models, tune agents, and keep a terminal-centered workflow. Install the release rather than cloning the monorepo unless you plan to contribute. Before pointing Build at valuable code, set an explicit permission policy and confirm which configuration layers can change it. If an IDE-native experience or a narrower Git-oriented loop matters more, Continue or Aider may require fewer decisions.

Alternatives

ProjectWhat it isPick it when
Codex gh↗OpenAI's terminal coding agent for repository work, command execution, and delegated tasks.pick this instead when OpenAI's models and Codex workflow are already the team's standard.
Aider gh↗A terminal coding assistant centered on repository-aware chat and Git changes.pick this instead when you prefer a narrower command-line workflow with explicit Git integration.
Continue gh↗An open coding-agent platform with editor extensions and configurable models.pick this instead when the IDE is the main working surface rather than a terminal interface.

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 configuration
  3. OpenCode providers
  4. OpenCode permissions
  5. OpenCode v1.18.22 release

More llm tools reviews

treg · train-llm-from-scratch · mistral.rs · flue · TensorRT-LLM · pydantic-ai · the whole board →