mrkeyoor.com_
Tue 29 Sept 18:26 UTC
LLM Toolsevaluationupdated 26 Aug 2026

opencode review

OpenCode is an archived Go terminal agent that could chat with several model providers, edit files, run shell commands, use language servers, and connect to MCP servers. The original author moved active development to Charm's Crush project, so this repository now exists for provenance rather than new installations.

+11stars / 7d
Verdict

Our archived OpenCode checkout built in 49 seconds, but 1 of 4 test packages failed and active development has moved to Crush, so new users should not adopt this repository. Read it for provenance or to migrate an existing setup. For real work, start with the maintained successor and review its current permissions, storage, provider support, and tests independently.

We ran it

Lab card: what happened when we ran opencodeScreenshot of opencode (github.com/opencode-ai/opencode)
Install✓ · 22s228 packages
Build✓ · 49s
Tests✗ · 13s3 passed · 1 failed of 4 (go test)
Repo162 files~42,357 lines of source · 1.4 MB · 2 CI workflows

Answers from our run

Does opencode build from source?

Dependencies installed in 22 seconds (228 packages), and the build succeeded in 49 seconds. We cloned commit 73ee493 into a clean Debian container with 3 CPUs and no project-specific setup.

Do opencode's tests pass?

Not all of them: 3 of 4 passed and 1 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use opencode?

New users choosing a coding agent: the README says this repository is archived and directs ongoing development to charmbracelet/crush.

What are the alternatives to opencode?

Crush, Claude Code, OpenHands. Our archived OpenCode checkout built in 49 seconds, but 1 of 4 test packages failed and active development has moved to Crush, so new users should not adopt this repository.

Setup3/522-second install and 49-second build, but tests failed
Docs3/5Detailed historical guide with a clear successor notice
Community1/5Archived repository with development moved to Crush
Maturity2/5Useful feature set, but frozen and explicitly non-production

Discussed on

  1. hnOpencode: AI coding agent, built for the terminal319 points
  2. hnOpencode – AI coding agent, built for the terminal6 points
  3. hnopencode - AI coding agent built for the terminal4 points
  4. hnOpenCode AI coding agent hit by critical unauthenticated RCE vulnerability3 points
  5. hnOpencode: AI coding agent, built for the terminal3 points

Who it’s for

Maintainers investigating the history of the project that became Crush.
Go developers studying a compact terminal agent built with Bubble Tea.
Existing OpenCode users planning a controlled migration to the successor.
Researchers comparing early multi-provider coding-agent designs.

Who it’s NOT for

New users choosing a coding agent: the README says this repository is archived and directs ongoing development to charmbracelet/crush.
Teams needing security fixes or provider updates: the last release was June 2025 and the repository is no longer maintained.
Automation that depends on permission prompts: the README says non-interactive prompt mode auto-approves all permissions.
Users unwilling to store provider credentials in this codebase's local scheme: issue 343 reports auth.json credentials being stored in plaintext.

Setup reality

Our sandbox installed 228 Go packages in 22 seconds and built commit 73ee493 in 49 seconds. Tests failed after 13 seconds: 3 passed and 1 failed out of 4. The log tail shows several TUI packages with no tests, two passing packages, and a final FAIL; it does not identify the failed package or assertion.

Running the agent needs at least one configured model provider or a local endpoint. The README lists API keys for Anthropic, OpenAI, Gemini, Groq, AWS Bedrock, Azure OpenAI, and others. LSP commands and MCP servers are separate local dependencies.

The repository is archived, and its install script and provider list describe an old product line. Existing users should back up sessions and configuration, then evaluate the documented successor instead of building a new workflow around this binary.

The repository now points every new user to Crush

The first useful fact in OpenCode's README is its archive notice. This repository is no longer maintained, and the original author continued the project with the Charm team under the name Crush. That changes the buying decision completely. OpenCode may still compile, and its source remains useful, but an archived coding agent should not receive new credentials or become part of a fresh development process.

The old application was a capable terminal assistant. Its Bubble Tea interface managed conversations, model selection, file changes, command execution, language-server features, and an integrated editor. Sessions lived in SQLite, and configuration could define providers, agents, shell behavior, MCP servers, and LSP commands. Those features explain the repository's 13,697 stars. They do not offset the absence of maintenance.

A 49-second build did not produce a clean test run

We cloned commit 73ee493 into an unprivileged Debian container with 3 CPUs and 8 GB of RAM. The checkout was small: 162 files, about 42,357 source lines, and 1.4 MB. Installing 228 Go packages took 22 seconds, and the build succeeded in 49 seconds. A developer can still inspect and compile the archived source without a large machine.

Our scan found 2 CI workflow files, no Dockerfile, and no tests directory. Go tests can live beside source files, so the missing directory does not mean there are no tests. The measured suite covered only 4 packages with tests. That is thin coverage for an agent allowed to edit code and execute shell commands, especially when the README itself labels the project early development and unsuitable for production.

What happened when we ran it

Our sandbox tests failed after 13 seconds. Go reported 3 passing packages and 1 failing package out of 4. The supplied tail lists many TUI component packages with no test files, then shows successful dialog and theme packages before the final FAIL. It does not show the failed package name or its assertion.

The narrow conclusion is that commit 73ee493 compiled but did not pass its available tests in our stated Go environment. We did not connect an AI provider, let the agent edit a repository, execute a shell command, start an MCP server, or inspect an old SQLite session. The 13-second test result says nothing about model quality or migration compatibility with Crush.

Non-interactive mode removes the permission checkpoint

OpenCode offered a prompt flag for scripted use and could return text or JSON. The README states that all permissions are auto-approved in this mode. That is convenient for a trusted, narrow task in a disposable checkout. It is a serious default for prompts that can reach shell and file tools, since the user does not get an interactive chance to reject a command or edit.

Anyone maintaining an old script should place the process in a restricted working directory, remove unrelated credentials, and constrain network access. Log the exact prompt, selected model, tool calls, changed files, and exit status. Better yet, migrate the workflow to a maintained agent with a permission model you have tested. An archive cannot adapt when a provider changes its API or a new unsafe tool behavior is discovered.

Provider breadth has frozen at a 2025 snapshot

The README lists OpenAI, Anthropic, Google, GitHub Copilot, Groq, AWS Bedrock, Azure OpenAI, Vertex AI, OpenRouter, and local endpoints. It also names model families that were current during development. Treat that table as historical documentation. Providers change request fields, model identifiers, authentication flows, and availability, while this repository no longer ships compatibility fixes.

Issue 220 gives an example from June 2025: Groq rejected a reasoning_effort value sent by the client. Issue 342 reports a local Ollama configuration failing, and issue 311 says LOCAL_ENDPOINT was ignored while the program connected to GitHub Copilot. These reports are not current tests of Crush or any provider. They show why a frozen multi-provider adapter becomes unreliable even when its TUI still starts.

Local sessions and credentials need migration care

OpenCode searched for configuration in a home-directory file, an XDG path, or the current project. It stored conversations and sessions in SQLite. Issue 343 raises concern that ~/.local/share/opencode/auth.json stores authentication material in plaintext. The short report does not establish which providers or operating-system protections applied, but the path and concern are specific enough to warrant inspection before backup or migration.

Existing users should inventory configuration, session data, custom commands, MCP definitions, and LSP settings before removing the binary. Do not copy an entire data directory into Crush without checking its migration documentation and file formats. Rotate any API key that was stored in an old plaintext file, then give the successor only the providers required for current work. Historical chat logs can also contain source code and secrets.

September 2025 was the final repository activity

GitHub marks the repository archived. It recorded a last push on September 18, 2025, 158 combined issues and pull requests, and a latest release of v0.0.55 on June 27, 2025. Issue 354 explicitly announces the move to Crush, while issue 228 says work was paused for a large refactor before that move. The open queue should not be read as pending maintenance.

The MIT license preserves the right to study, fork, and modify this code. That makes OpenCode a useful reference for Go terminal interfaces and the lineage of Crush. It is still the wrong dependency for a new coding workflow. Our successful 49-second build shows the source remains buildable; the failed tests, early-development warning, provider drift, and archive status say where responsibility now sits: entirely with whoever chooses to keep running it.

Alternatives

ProjectWhat it isPick it when
Crush gh↗The terminal coding agent to which OpenCode's original author moved development.pick this instead for any new installation or maintained continuation of this project.
Claude Code gh↗Anthropic's terminal coding agent with repository tools and scripted operation.pick this instead when Anthropic's supported agent and model service fit your environment.
OpenHands gh↗An open agent platform for software tasks in isolated workspaces.pick this instead when a browser-based workspace and broader agent platform matter more than a small TUI.

What people are saying

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

Sources

  1. OpenCode README and archive notice
  2. OpenCode repository facts
  3. OpenCode v0.0.55 release
  4. Issue 354: project moved to Crush
  5. Issue 343: plaintext auth file
  6. Issue 220: Groq request failure
  7. Issue 311: local endpoint behavior

More llm tools reviews

awesome-openclaw-skills · TensorFold · ai-evaluation-framework · llm-wiki-compiler · claude-skills · Humanizer-zh · the whole board →