Model or dataset
Hmbown/CodeWhale avatar
Hmbown/CodeWhale

CodeWhale: A Provider-Agnostic Terminal Agent That Keeps Your Model Choices Open

Open-source, community-driven agent harness. Why Codewhale:** **No lock-in.** DeepSeek, Claude, GPT, Kimi, GLM, 30+ providers, and your own vLLM, SGLang, or Ollama, no key required, run through one runtime and one toolset.

40,983 stars3,561 forksRustMIT

At a glance

What is it?
CodeWhale is an open-source, Rust-based coding agent for the terminal that connects to 30+ hosted providers or local models like Ollama and vLLM through a single runtime. It focuses on user control with approval modes, undo, and session snapshots, but its documentation leaves some operational details thin.
Who is it for?
Adopt CodeWhale if you want a terminal-based coding agent that avoids provider lock-in, supports local models, and gives you visible approval controls and undo capabilities. Skip it if you need a fully documented, production-hardened agent with detailed security guarantees, or if you prefer a project with a longer track record.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What CodeWhale Actually Solves

The value proposition is not just about choice. It is about control. CodeWhale offers approval modes that make the agent's actions visible, and it has commands like `/undo` and `/restore` to revert changes. This addresses a real concern: agents that operate autonomously can make unwanted edits. CodeWhale's design tries to give you a safety net. It is for developers who want to delegate coding tasks but keep the ability to stop or reverse the agent's work.

How CodeWhale Works: The Mechanism Under the Hood

CodeWhale is a Rust application that runs in your terminal. It is not a library; it is a harness that connects your prompts to a model provider and executes actions on your local machine. The README describes a flow: you give a natural language instruction like "Fix the failing tests and explain what changed," and the agent reads your repository, edits files, runs commands, inspects results, and keeps working toward the goal. The core architecture involves a runtime that manages the conversation with the model, a toolset for file operations and command execution, and a policy stack for authorization. The documentation references an "authorization order" in `docs/AUTHORIZATION_ORDER.md`, which defines the exact policy stack. This suggests a layered system: repository rules, approval modes, and optional OS sandboxing. The README mentions that "Plan is read-only," and there are modes named Ask, Auto-Review, and Full Access. These modes likely control how much autonomy the agent has, from asking before each action to acting with full permission. The agent can also coordinate multiple agents in a "fleet," as mentioned in `docs/FLEET.md`, and it supports MCP servers and skills for extensibility. The key mechanism is that the agent's internal instructions are separate from your transcript, so you can coordinate agents without cluttering the conversation log.

Getting CodeWhale Running: Installation and First Steps

Installation is straightforward if you have Node.js. The README shows `npm install -g codewhale` followed by `codewhale`. The first run guides you through connecting a provider or staying offline. There are also alternative installation methods: Cargo, Docker, Nix, Scoop, prebuilt archives, Android/Termux, and a CNB mirror. This breadth is useful for users on different platforms. Once installed, you can either open the interactive TUI by typing `codewhale` or run a one-off task with `codewhale exec "fix the failing tests and explain what changed"`. The `exec` command is for non-interactive use, which is handy for scripting or CI. Tab completion is available for shells: `codewhale completion bash|zsh|fish|powershell|elvish`. To switch providers or models, you use the `/model` command inside the TUI. The README also mentions `/goal` to set a durable objective, `/undo` to revert the last turn, and `/restore` to return to an earlier snapshot. Configuration is documented in `docs/CONFIGURATION.md`, and there is a local web client mentioned in `docs/WEB.md`. The command set is fairly rich, but the README is terse; you would need to consult the docs for exact syntax and configuration keys.

The Safety Model: Approval Modes and Undo

CodeWhale's safety approach is built around visibility and reversibility. The README lists approval modes: Ask, Auto-Review, and Full Access. These are not described in detail in the README, but the names suggest a spectrum: Ask requires the user to approve each action, Auto-Review might let the agent review its own actions or seek approval after the fact, and Full Access gives the agent free rein. The documentation for "authorization order" in `docs/AUTHORIZATION_ORDER.md` is meant to clarify the exact policy stack, but the README does not summarize it. There is also optional OS sandboxing for a stronger execution boundary where supported. This is a meaningful feature because running an agent that edits files and executes commands on your machine carries risk. The `/undo` and `/restore` commands are the key safety nets. `/undo` reverts the last turn, which is useful for rolling back a single mistake. `/restore` returns the workspace to an earlier snapshot, which suggests the agent takes snapshots of the repository state. This is a practical approach: you can experiment with agent-driven changes and revert if things go wrong. However, the README does not specify how snapshots are taken or how much overhead they add. The safety model is a trade-off: it gives you control, but it relies on you actively using these commands. It is not a sandbox by default; it is only optional.

Limitations and Failure Modes

One limitation is the lack of detailed documentation in the README itself. The README points to several docs files, but it does not explain the exact behavior of approval modes, the authorization order, or how snapshots work. This means you must read the docs to understand the safety guarantees, and the docs may not be complete. Another limitation is that CodeWhale is a young project, with recent releases in August 2026 and a version number of 0.9.x. That suggests it is pre-1.0 and may have breaking changes or incomplete features. The README says it is "improved in public with the people who use it," which is a community-driven approach, but it also means the project's direction is not fully stable. A specific failure mode: if you use a provider with unknown pricing, the README says "Unknown model prices stay unknown instead of being reported as free." This is an honest approach, but it means you might not know the cost of a task until after it runs. Also, the agent runs on your machine with the access you grant it. If you grant Full Access, the agent can run arbitrary commands. The optional OS sandboxing is not always available, so on platforms without it, you are relying on the approval modes and your own vigilance. The wrong tool scenario: if you need a fully autonomous agent that runs in a CI pipeline without human oversight, CodeWhale's approval modes might be too manual. For that, you might want a headless agent with policy-based controls.

Comparison with Alternatives

The main alternative is OpenAI Codex CLI or similar agents that are tied to a specific provider. CodeWhale's key difference is provider neutrality. With Codex, you are using OpenAI models and likely the OpenAI API. CodeWhale lets you use any of 30+ providers or local models, and you can switch with `/model`. Another alternative is Aider, which is an open-source terminal-based coding agent that supports multiple models, but Aider is Python-based and focuses on git integration. CodeWhale is Rust-based, which may offer better performance for a terminal tool, but the README does not provide benchmarks. Aider also has a different approach to editing: it often uses a whole-file rewrite strategy, while CodeWhale's mechanism is not described in detail. The difference is in the runtime and the extensibility: CodeWhale supports MCP servers and skills, which Aider also supports to some extent, but CodeWhale's agent fleet feature is distinct. If you want to run your own vLLM or SGLang server, CodeWhale explicitly supports that, which is a strong point for users who want privacy or cost control. The choice depends on whether you prioritize a Rust-based tool with a TUI and fleet coordination, or a Python tool with a longer history.

Maintenance and Upgrade Cost

The project is actively maintained, with three releases in August 2026 alone: v0.9.11, v0.9.10, and v0.9.9. That indicates a fast release cadence, which is good for bug fixes but also means you will need to update frequently to get new features. The installation via npm makes updates easy: `npm update -g codewhale`. However, frequent releases can introduce regressions, and you should check the changelog for each version. The project is MIT licensed, which is permissive and allows commercial use, but you should review the third-party notices in `docs/THIRD_PARTY_NOTICES.md` for any obligations from adapted code. The README mentions that portions are adapted from other open-source projects, so there may be additional license requirements. The upgrade cost is moderate: you need to track releases and test your workflows after updates. The documentation is in a `docs` folder, and the README is available in many languages, which helps a global community. The project history shows it started as `deepseek-tui`, so if you used that, your configuration and sessions should be compatible, which eases migration. But for new users, the learning curve involves reading the docs to understand the configuration options and safety features.

Editorial conclusion

Adopt CodeWhale if you want a terminal-based coding agent that avoids provider lock-in, supports local models, and gives you visible approval controls and undo capabilities. Skip it if you need a fully documented, production-hardened agent with detailed security guarantees, or if you prefer a project with a longer track record. Before adopting, verify the actual behavior of approval modes, the stability of the Rust runtime on your platform, and the completeness of the docs for your specific provider. The project is under active development, so check the latest release notes and the docs folder for any changes.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes