Crush: AI-Powered Terminal CLI Review (Ex-OpenCode AI)

Thenewstack

Crush, a Go-based open-source command-line interface (CLI) application, has recently emerged as a significant player in the realm of AI-assisted development tools. Formerly known as OpenCode AI, its rebranding and repository transition occurred swiftly on July 29, 2025, signaling a new phase for this innovative project. Crush integrates artificial intelligence directly into the terminal, providing a robust terminal user interface (TUI) designed to streamline coding tasks, debugging, and various other development workflows.

Built upon the BubbleTea framework, a project by Charm, Crush offers a sophisticated, multi-model, and session-based experience. Users can select from a diverse array of large language models (LLMs) or even integrate their own custom models. A key feature is the ability to switch between different LLMs mid-session while maintaining conversational context, ensuring continuity in complex tasks. Furthermore, Crush supports the integration of Language Server Protocols (LSPs), similar to how they are configured in a code editor, enhancing its utility for code-aware operations.

Installation is straightforward, particularly for macOS users, with Homebrew providing a convenient method. Upon its initial launch, Crush prompts users for API keys, though LLM configuration can also be managed through environment variables. The application supports a wide range of models, including expected industry standards like GPT-5 (now available) and Opus 4, alongside lesser-known options such as Groq and Grok. When initiated, Crush guides the user through an initialization process, creating a configuration file and setting up the initial context. While this setup is designed to be user-friendly, the use of informal prompts like “yep” and “nope” could potentially pose a minor challenge for non-native English speakers.

A distinctive aspect of Crush is its approach to permissions. The system actively applies additional checks for operating system commands executed within the Crush environment. For instance, attempting to change directories (e.g., cd ..) triggers a permission switch, requiring user confirmation. This behavior is governed by the crush.json configuration file, which contains an “allowed_tools” list specifying permitted actions such as view, ls, grep, and edit. For users who prefer to bypass these prompts, a --yolo flag is available, reflecting the project’s somewhat carefree ethos.

When processing a development project, Crush generates a CRUSH.md file, providing a concise summary of the codebase. It also intelligently incorporates instructions from other popular developer tools like Cursor and Copilot. The agent’s initial pass focuses on identifying configurations, tests, and core project files. However, users might encounter minor interface challenges depending on their terminal emulator; for example, within the Warp terminal, some commands might be intercepted, and standard functionalities like mouse-based cursor placement or text copying may be unavailable. The author noted an instance where a task was halted due to running out of Anthropic tokens, requiring a top-up and a re-run of the process to successfully generate the CRUSH.md file.

In a practical test, Crush was tasked with generating a new class within a collection of strategies, a real-world need for a game development project. The LLM successfully picked up context from the existing project, interpreting terms like “farmer” as both a character name and a type, and intelligently rephrasing “PollutionBad” to “FreezingBad” based on the English language context intertwined with coding specifics. Crush then requested permission to add the generated class and integrate it into the project’s strategy list. While it attempted to add instances of the new narrative, it lacked sufficient information for full completion, demonstrating that while it organizes work logically, it may still require user guidance for more complex, multi-step tasks. The interface allows users to easily switch between request and response blocks using the Tab key.

In conclusion, Crush, despite being in its nascent stages and lacking some common user interface conveniences, introduces several interesting and novel features. While it may not yet match the integrated agentic CLI capabilities of more mature terminal solutions like Warp, its consistent TUI-based approach and open-source nature position it with significant potential. As contributions grow and core functionalities strengthen, Crush could well become a formidable tool, punching above its current weight in the AI-assisted development landscape.