CodeWhale BotandClaude Opus 5.5 669c32d53f fix(approvals): keep Full Access for destructive MCP tools; doctor and dismissal edge cases
Review of the 0.10.1 addendum-remainder commits (CW-11, U7, policy rule 9).

CW-11 (b90590369):
- The destructiveHint branch set auto_approve=false under Full Access. Every
  host then got an approval request, and `codewhale exec` answers from its
  own --auto flag, so exec with approval_policy = "full-access" in config
  (and no --auto) denied every destructive-declared MCP call (all Computer
  Use input tools declare it). The TUI and runtime auto-approved it anyway,
  and a session grant still covered it. So the promised "keeps its prompt"
  never held anywhere, and one host broke. Full Access again covers these
  tools (#3866). destructiveHint still withholds the reviewed-plugin
  read-only relaxation and labels the card. docs/MODES.md now says exactly
  that.
- Preparation let a bounded worker (tool_authority) run a plugin-declared
  read-only MCP tool, but tool_execution refuses every non-built-in MCP
  tool for such a worker. So an Auto call passed preparation and failed at
  execution. Preparation now applies the execution gate's rule.

U7 (05ff7c753, d2b1430cc): first_run_ready accepts ProviderModel
NeedsAction (a failed key still reaches the wizard's ready screen), so
doctor printed "Ready: setup is complete." for a finished setup whose key
was never confirmed. The provider check now runs first.

Policy rule 9 (735fb509a): the saved dismissal list is matched and listed
case-insensitively. A hand-edited mixed-case entry could not be reset by
name and was listed twice.

No-Issue: 0.10.1 addendum review (C5/CW-11, U7, PLG-12)

Checks (targeted, local; the shared tree also held a peer's deny.toml edit):
- cargo test -p codewhale-tui --lib -- mcp_annotation_hints only_a_reviewed_plugin
  mcp_write_preparation a_fresh_home_is_not_ready finished_setup_with_an_unconfirmed_key
  plugin_dismissals fleet_run_check agent_run: 17 passed, 0 failed
- cargo test -p codewhale-tui --lib -- fleet::manager mcp::tests tool_preparation
  commands::groups::plugins runtime_api::tests::agent_run doctor: 449 passed,
  0 failed, 1 ignored
- cargo test -p codewhale-tui --lib -- core::engine::tests::mcp computer_use
  approval_cache: 33 passed, 0 failed
- cargo test -p codewhale-command-contract: 59 passed, 0 failed
- rustfmt --check on the touched files: clean

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-22 19:04:59 -07:00
2026-04-24 16:29:01 -05:00

Codewhale

Codewhale is an open-source agent that reads your project, edits files, runs commands, and checks its work using a hosted or local model you choose. Start with one task in your terminal. For a larger job, give parts of the work to agents with different models and roles.

Codewhale

简体中文 · 日本語 · Tiếng Việt · Bahasa Indonesia · 한국어 · Español · Português · Русский · Українська · Français · Deutsch · 繁體中文 · हिन्दी · Türkçe · Italiano · Polski · العربية · Català

CI crates.io npm Discord

A Codewhale terminal session

Terminal preview from a v0.10.0 development build.

Install

macOS / Linux — install the official GitHub release:

curl -fsSL https://codewhale.net/install.sh | sh
"$HOME/.local/bin/codewhale"

The installer selects the latest published release. The changelog also describes the next release's unreleased candidate; those changes are not included in published downloads until the release is available.

Windows: download the matching installer or archive from GitHub Releases. For an existing direct install, run codewhale update (or codewhale update --check to inspect it). The updater prints the executable path and keeps newer builds.

The first run opens straight to the composer; it does not walk you through setup. Model replies require a connected hosted or local model: until one is connected, the launch screen says "no model connected". Run /provider (or press F3) to add a hosted key or pick a local runtime. If Ollama is already running with a chat model, Codewhale switches to it on its own. Codewhale also supports npm and Cargo as secondary packaging routes, plus Docker, Nix, Scoop, Android/Termux, and an optional CNB mirror. Existing package-managed installs receive migration instructions. See installation and PATH help.

Tab completion is one command per shell — codewhale completion bash|zsh|fish|powershell|elvish. See shell completions.

Use

Open a terminal in your project folder and run codewhale. Choose your provider with /provider and your model with /model. Then describe a concrete task:

Fix the failing tests and explain what changed.

Or run a task without opening the TUI:

codewhale exec "fix the failing tests and explain what changed"

Codewhale can read your repository, edit files, run commands, inspect results, and keep working toward a goal. Use /mode plan to explore without file changes or shell execution, and /mode work when you want it to make changes. Press Shift+Tab to choose Ask, Auto-Review, or Full Access; the modes and permissions guide explains what each allows.

Terminal, apps, and Computer Use

The terminal and graphical clients connect to the Codewhale Runtime, which runs the agent and its tools:

  • Terminal: codewhale opens the interactive interface; codewhale exec runs a task from a script or CI job.
  • Local browser: codewhale web opens the bundled local web client for the same runtime.
  • Codewhale desktop app (GPUI): a native desktop app, developed in a separate repository, is the direction for the signed-in product client. The hosted web app at app.codewhale.net will be rebuilt to match it; the marketing site, sign-in, billing, legal, and download pages stay on the web. Availability is listed on the product page.

Computer Use adds tools for observing and interacting with other applications. The plugin is included in the current source. Review its requested access and enable it before use; OS permissions and platform requirements still apply. See the included Computer Use guide and plugin setup.

For VS Code, the community-maintained CodeWhale extension connects to the local Runtime from a sidebar. Install it from the VS Code Marketplace; source code is on GitHub.

Why Codewhale

  • Choose your models. Connect hosted providers or local models through Ollama, vLLM, or SGLang. Use /provider to change providers and /model to choose a model.
  • Stay in control. Inspect proposed actions and resulting file changes. Approval settings govern when review is needed; Full Access still respects hard policy boundaries. /undo and /restore help recover workspace changes.
  • Keep long work organized. Save sessions, set a durable /goal, review workflows before they run, and coordinate agents without turning their internal instructions into your transcript.
  • Extend the agent you already have. Connect MCP servers and skills, configure hooks, and keep agent roles as readable files in your project or personal settings.

Run /help in the TUI for commands and keyboard shortcuts.

Safety

Codewhale runs on your machine with the access you grant it. Approval modes and repository rules limit what the agent may do; optional OS sandboxing adds a stronger execution boundary where supported. Unknown model prices stay unknown instead of being reported as free.

Read authorization order for the exact policy stack and configuration for local settings.

Documentation

Join the community

Bug reports, feature ideas, and pull requests are welcome, whether you have used Codewhale for months or are trying it for the first time. If a provider is missing, a workflow is awkward, or the terminal UI gets in your way, open an issue or send a pull request so we can improve it together. We welcome first contributions, and contributors keep credit for the work that lands.

Join the Discord, or add Hunter on WeChat (hunterbown) and ask to join the Whale Brothers group.

Project history

Codewhale began as deepseek-tui and still preserves that configuration and session compatibility. It is now provider-neutral and independently maintained; it is not affiliated with any model provider.

Thanks to every contributor and to the open source communities that helped the project grow. See the contributor record.

License

MIT. Portions adapted from other open-source projects are recorded in third-party notices.

S
Description
Open-source agent for the terminal written in Rust. Use any provider or model. Issues & PRs always welcome
Readme MIT
396 MiB
0 Stars 1 Watchers 0 Forks
2026-11-06 17:08:37 -10:00
Languages
Rust 88.3%
TypeScript 4.8%
JavaScript 3.7%
Python 1.5%
Shell 0.6%
Other 0.9%