Codewhale
An open source coding agent for your terminal — bring your own model.
Codewhale started as a native experience for DeepSeek. It has since grown into a community-driven project: one coding harness that fits a growing international community and supports as many models and providers as possible — open models first, hosted or local, none privileged over the rest.
Give it a provider, a model, and a task. It reads your code, edits files, runs commands, and checks its own work, then stops when the job is done or it needs you. Switch models mid-task with /model. Work interactively in the TUI, or run codewhale exec in scripts and CI. It's written in Rust, licensed MIT, and runs on your machine.
We're always looking for contributors and ways to improve. If a model or provider you use is missing, or something breaks, telling us is one of the most useful things you can do — see Contributing.
简体中文 · 日本語 · Tiếng Việt · Bahasa Indonesia · 한국어 · Español · Português · Русский · Українська · codewhale.net · Docs · Changelog
Install
npm install -g codewhaleCargo, Docker, Nix, Scoop, prebuilt archives, Android/Termux, and a CNB mirror for anyone who can't reach GitHub are covered in docs/INSTALL.md. Coming from deepseek-tui? Your config and sessions carry over — see docs/REBRAND.md.
Use
codewhale auth set --provider deepseek # or export ANTHROPIC_API_KEY, etc.
codewhale # open the TUI
codewhale exec "fix the failing test" # headless
codewhale web # local browser client on 127.0.0.1In the TUI: /model switches provider and model together, /fleet runs a team of workers, and /restore undoes a turn. When the composer is idle, Tab cycles Plan / Act / Operate and Shift+Tab cycles the Ask / Auto-Review / Full Access permission posture. ! runs a shell command through the normal approval path.
What it does
- Any model, any provider. DeepSeek, Claude, GPT, Kimi, GLM, and 30+
providers, plus your own vLLM, SGLang, or Ollama with no key — all through one runtime and one toolset. Context limits and prices come from the real route, and an unknown price shows as unknown rather than $0.
- Read-only until you allow more. Plan mode can't change files, and
approvals gate risky commands. When an OS sandbox actually wraps a command, Codewhale says so: Seatbelt on macOS where available, opt-in bubblewrap on Linux. A repo's constitution.json compiles into write holds that even Full Access can't skip.
- Work you can resume. A fleet records every step to an append-only ledger,