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.

