DEV Community

pickuma
pickuma

Posted on • Originally published at pickuma.com

OpenCode Review: A Terminal-Native AI Coding Agent That Keeps Your Editor

The terminal is quietly becoming the default home for AI coding agents. OpenCode, built by the SST team, is one of the more polished entries in that category. Unlike Cursor or Windsurf, it does not ask you to leave your editor. It runs as a CLI process in your project directory, reads files, writes changes, and executes shell commands while you keep coding in whatever editor you already use.

We ran OpenCode as the primary agent for two weeks across a TypeScript monorepo and a Python service to see whether the terminal-first approach is a practical default or a power-user curiosity.

What OpenCode Actually Does

OpenCode follows the same agent loop as Claude Code and Codex CLI: you type a goal in natural language, the agent plans a sequence of file reads and shell commands, shows you the plan, and executes after you approve. The difference is in the harness. OpenCode is open source, model-agnostic, and designed to be self-hosted or run against local models.

In our testing, the agent handled three workflows cleanly:

  • Refactoring across files. We asked it to rename a React hook used in eleven components. OpenCode located all call sites, updated imports, and ran the component tests to verify nothing broke.
  • Test generation. For a Python service with thin test coverage, it generated pytest files that compiled on the first run. The assertions still needed human review, but the scaffold saved roughly an hour.
  • Dependency upgrades. We pointed it at a stalled npm audit report. OpenCode read the advisory, bumped the relevant packages, and ran the test suite, flagging one breaking change we had to fix manually.

OpenCode works best when your project already has fast, deterministic tests. The agent relies on test feedback to catch its own mistakes. A slow or flaky test suite turns the loop into a waiting game.

Where It Differs From Claude Code

Claude Code is the obvious comparison. Both live in the terminal, both run the same basic loop, and both can use Anthropic models. The differences are mostly about control.

Claude Code is a closed binary tuned end-to-end for Anthropic models. It just works out of the box, but you cannot see the system prompt, swap the planner, or route to a non-Anthropic model without leaving the tool. OpenCode exposes all of that. You can route to OpenAI, Google, DeepSeek, or a local Ollama model, and you can fork the harness if your team needs custom behavior.

The practical cost difference matters too. Claude Code bills through your Anthropic account, which is convenient until Anthropic changes pricing or has a capacity incident. OpenCode separates the harness from the model provider, so you can move cheap tasks to cheaper models without changing tools.

The trade-off is polish. Claude Code's context management and tool-use loop are more refined. In side-by-side tests on the same model, Claude Code usually needed fewer turns to complete a task. OpenCode caught up when we tuned the context file patterns for our repo, but that tuning took time.

Setup and Daily Use

Installation is one command: a shell script that drops the opencode binary onto your path. Configuration is where the time goes. You need an API key for at least one provider, and you should set context file patterns so the agent does not waste tokens reading generated files or build artifacts.

We settled on a .opencode/config.toml that excluded node_modules, dist, and *.min.js, and included src/**/*.ts, tests/**/*.ts, and a CONTEXT.md file with project conventions. That last step is important. Without it, OpenCode will guess at import aliases, test conventions, and formatting rules. With it, the first-pass quality improved noticeably.

Daily usage feels like pair programming with a junior engineer who types fast but needs supervision. You describe the task, review the plan, and read the diff before approving. The agent runs tests, reports failures, and attempts fixes. The loop is slower than Cursor's inline edits but faster than writing the same code by hand for tasks that touch more than a few files.

Do not run OpenCode in a repo that lacks version control. The agent commits nothing automatically. Every change sits in your working tree, and a bad session is easiest to recover with git checkout or git stash.

Who Should Use OpenCode

Use OpenCode if you already live in the terminal, you want to keep your editor, and you have opinions about which models you run. It is a particularly good fit for teams with a multi-provider policy or anyone who wants a local-LLM option for sensitive code.

Skip it if you want the lowest-friction setup possible or if you prefer inline diffs inside your editor. Cursor and Windsurf are better for that workflow. OpenCode is not trying to replace them. It is trying to give terminal-first developers a serious alternative to Claude Code.


Originally published at pickuma.com. Subscribe to the RSS or follow @pickuma.bsky.social for new reviews.

Top comments (0)