OpenCode — hands-on review 4 months of daily use (late 2025 – early 2026)
The tool that fits a Neovim/terminal multi-provider workflow best: client/server architecture, zero IDE dependency, zero lock-in. The 9/10 reflects what OpenCode promises — and it still delivers. If I no longer use it daily, it's because I chose to pay the lock-in of an integrated ecosystem, not because OpenCode fell short.
Strengths
- + Native Go TUI with vim-like navigation — integrates frictionlessly into a Neovim/tmux workflow
- + Full multi-provider: Anthropic, OpenAI, Google Gemini, Groq, Ollama (local), OpenRouter — no lock-in
- + Client/server architecture: works remotely via SSH with no extra configuration
- + 100% open-source MIT — the code is readable, the data model is transparent
- + Single Go binary, no node_modules, starts in <1s
- + Non-interactive mode for scripting and CI/CD
- + Markdown custom commands — repetitive workflows become reusable commands
- + Parallel multi-session management — multiple agents on simultaneous tasks
Limitations
- − Limited LSP integration — doesn't natively read your Neovim LSP diagnostics, you have to pass them manually or via an MCP server
- − No mode marketplace like Kilo Code — custom commands are powerful but require initial investment
- − The TUI can be disorienting for the first 3 days if you come from a GUI tool — the learning curve exists
- − Documentation still partial on certain edge cases (advanced multi-session, per-project configuration)
- − On Windows, the experience is less smooth than on Linux/macOS
July 2026 update: the rest of the story
OpenCode is no longer my daily agent: I went back to Claude Code (Max subscription) in May 2026 — for the integrated ecosystem, not because OpenCode failed. Everything this review documents remains true, and OpenCode remains my tested multi-provider exit route. The full reasoning behind the round trip is in Anthropic, the Apple of AI.
Test context
Version tested: OpenCode ~0.3.x (October 2025 → February 2026). Daily usage on a Symfony 7 + TypeScript/React project of roughly 80k lines deployed on GKE. Dev stack: Neovim + tmux + SSH Mac → Ubuntu server. OpenCode replaced Claude Code in this workflow from October 2025 to early 2026, after 2 months of side-by-side comparison.
What OpenCode actually does
OpenCode is a coding agent that runs in the terminal. It reads files, modifies code, executes bash commands, and talks to you through a TUI (Terminal User Interface) built with Bubble Tea in Go.
What concretely sets it apart:
The architecture is client/server. The OpenCode server runs in the background, the TUI is the client. This means you can attach and detach tmux sessions without losing the state of an ongoing conversation — exactly like screen or tmux for shell processes.
Navigation is vim-like. j/k to navigate, / to search, q to quit. If you live in Neovim, you’re in your natural context from the first launch.
Multi-provider is native and trivial. A single config file, multiple providers available. Switching models takes 3 seconds.
// ~/.config/opencode/config.json
{
"providers": {
"anthropic": { "apiKey": "sk-ant-..." },
"google": { "apiKey": "AI..." },
"openrouter": { "apiKey": "sk-or-..." }
},
"model": "anthropic/claude-sonnet-4-5"
}
What works
The SSH workflow. OpenCode installed on the dev server, launched from the local machine via SSH + tmux. No extra config, no tunnels, no IDE extensions. It’s the first tool in this category that truly works well in a remote setup.
Custom commands. Markdown files that define reusable workflows. Over 4 months, we built a command library for the project:
# .opencode/commands/new-api-endpoint.md
Create an API Platform endpoint for the {entity} entity.
- Resource class in src/ApiResource/{entity}Resource.php
- Tests in tests/ApiResource/{entity}ResourceTest.php
- Test fixture in fixtures/{entity}Fixtures.php
Follow the project conventions described in CLAUDE.md.
The quality-to-cost ratio. Compared to Claude Code (Anthropic single-provider), the ability to route simple tasks to DeepSeek or Gemini Flash reduces costs by 60-70% with no notable impact on everyday task quality.
Transparency. The code is MIT, readable, and token counts are displayed in real time. You know exactly what you’re consuming.
What doesn’t work
LSP integration. OpenCode doesn’t read real-time diagnostics from Neovim’s LSP. When there are type errors or missing imports, you have to communicate them manually or run tests for it to see them. Kilo Code is better on this front via its VS Code integration.
The lack of preconfigured modes. Kilo Code ships with “Architect”, “Coder”, “Debugger” modes ready to go. With OpenCode, you build those yourself through custom commands. It’s more flexible long-term, but the initial investment is real — 2-3 hours for a serious setup.
Documentation. It’s sufficient to get started, insufficient for advanced cases. You often end up reading the source code or asking the GitHub community.
Who is it for?
OpenCode’s natural profile is the dev who spends their days in the terminal: Neovim/Vim/Emacs + tmux, or a remote/SSH setup. The lack of IDE dependency is both its main advantage and its limitation — if you primarily work in VS Code, Kilo Code will be more natural and richer out-of-the-box.
Alternatives
Claude Code is simpler to start but locks you into Anthropic’s provider. Kilo Code offers more out-of-the-box features for VS Code workflows. Cursor is the most mature IDE-first option if the terminal isn’t your natural environment.
Recommended for
- ✓Terminal-first devs: Neovim, Vim, Emacs, tmux
- ✓Remote / SSH setups — a single binary to install server-side
- ✓Those who want to switch LLM providers per task without switching tools
- ✓Workflows where API cost is a decision variable
- ✓Teams wanting to share custom commands via Git
Not recommended for
- ✗IDE-first users without CLI comfort — Kilo Code or Cursor will be more natural
- ✗Those who need a ready-to-use plugin marketplace immediately
- ✗Windows (not impossible, just less smooth)
Frequently Asked Questions
- Is OpenCode really free?
- The software is free (MIT). You pay the API of whichever LLM provider you choose directly. With Claude Sonnet 4.5 via the Anthropic API, expect $15-30/month for intensive daily usage. With DeepSeek or GLM, it drops to $3-8/month. OpenCode takes no margin on tokens.
- How do you set up OpenCode with Neovim?
- The basic setup takes 10 minutes: install the binary, create ~/.config/opencode/config.json with your API credentials, run `opencode` in a tmux split. For deeper integration (custom commands, current buffer access), the dedicated guide covers the full setup.
- Can you use OpenCode in a team?
- Yes. Custom commands and the project configuration file (AGENTS.md / CLAUDE.md) are versioned in Git, which shares agent conventions with the entire team. Each dev keeps their API credentials separate but workflows are shared.
- OpenCode vs Kilo Code: which one to pick?
- OpenCode if you primarily work in the terminal. Kilo Code if you prefer VS Code and want a ready-to-use mode and MCP server marketplace. Both are multi-provider and open-source. It's not a definitive choice — some use both depending on context.