CodeWhale is the canonical project, command, npm package, and
release-asset name. The legacy npm packagedeepseek-tuiis
deprecated and receives no further releases. Users coming from
v0.8.x legacydeepseek/deepseek-tuinames should migrate
withdocs/REBRAND.md.
Install
Recommended — npm (one command, both binaries)
npm install -g codewhaleThe wrapper downloads both binaries from this Release and places them in the same directory.
Docker / GHCR
docker run --rm -it \
-e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
-v ~/.deepseek:/home/codewhale/.deepseek \
ghcr.io/hmbown/codewhale:v0.8.63The image ships the codewhale dispatcher and codewhale-tui runtime. The latest tag is also updated on release.
Cargo (Linux / macOS)
cargo install codewhale-cli codewhale-tui --lockedBoth crates are required — codewhale-cli produces the codewhale dispatcher and codewhale-tui produces the interactive runtime that the dispatcher delegates to. Installing only one binary will fail at runtime with a MISSING_COMPANION_BINARY error.
Manual download — platform archives (recommended)
Each archive below contains both the codewhale dispatcher and codewhale-tui runtime, plus an install script:
| Platform | Archive | Install script |
|---|---|---|
| Linux x64 | codewhale-linux-x64.tar.gz
| install.sh
|
| Linux ARM64 | codewhale-linux-arm64.tar.gz
| install.sh
|
| Linux RISC-V | codewhale-linux-riscv64.tar.gz
| install.sh
|
| macOS x64 | codewhale-macos-x64.tar.gz
| install.sh
|
| macOS ARM | codewhale-macos-arm64.tar.gz
| install.sh
|
| Windows x64 (installer) | CodeWhaleSetup.exe
| NSIS setup |
| Windows x64 | codewhale-windows-x64.zip
| install.bat
|
| Windows x64 (portable) | codewhale-windows-x64-portable.zip
| — |
Unix (Linux / macOS):
tar xzf codewhale-<platform>.tar.gz
cd codewhale-<platform>
./install.shWindows:
- For the installer path, run
CodeWhaleSetup.exe; it installs both binaries under%LOCALAPPDATA%\Programs\CodeWhale\binand adds that directory to the current-user PATH. - Extract
codewhale-windows-x64.zip - Run
install.bat(copies to%USERPROFILE%\bin) - Add
%USERPROFILE%\binto your PATH
The portable Windows archive skips the install script — extract and run from any directory. The NSIS installer is currently unsigned and may trigger Windows SmartScreen until a signing certificate is wired into the release pipeline.
Each platform also has bare, unarchived binaries attached below (codewhale-<platform> and codewhale-tui-<platform>) — these are what the npm wrapper and the in-app codewhale update download, whereas the .tar.gz / .zip archives above are the recommended manual download and additionally bundle an install script. The legacy npm package deepseek-tui is deprecated and is not republished. For migration from v0.8.x legacy binary names, see docs/REBRAND.md.
Verify (recommended)
Download the checksum manifests from this Release and verify:
# Linux — archive bundles
sha256sum -c codewhale-bundles-sha256.txt
# Linux — individual binaries
sha256sum -c codewhale-artifacts-sha256.txt
# macOS
shasum -a 256 -c codewhale-bundles-sha256.txt
shasum -a 256 -c codewhale-artifacts-sha256.txtWhat's in v0.8.63
Added
- Sub-agent fanout safeguards (#3318, #3319). High-fanout Workflow runs can
now queue and drain more agents than the instantaneous concurrency cap by
default, with[subagents] max_admittedavailable to tune that bounded
admission population. Distinctagentcalls are no longer capped by the
per-turn loop guard before runtime launch concurrency and provider
rate-limit backoff can apply.[subagents] token_budgetapplies a shared
aggregate token ceiling to a rootagentrun and its descendants. - Per-worker sub-agent token enforcement (#3321). A
token_budget/
max_tokensset on an individualagentcall now bounds that single worker
mid-run: once its accumulated model tokens exceed the cap it stops cleanly
with abudget_exhaustedstatus instead of running tomax_steps. This
complements the scope-level admission gate (#3319) — the per-worker cap stops
one runaway worker, the scope cap bounds total fan-out — without
double-counting. Harvested from #3321 by @donglovejava. - Provider-specific sub-agent fanout config.
[subagents.providers.<provider>]
profiles now overrideenabled,max_concurrent,max_admitted,
launch_concurrency,max_depth, token budget, API timeout, and heartbeat
timeout for the active provider. Use broad direct-API profiles such as
[subagents.providers.deepseek]and tighter subscription profiles such as
[subagents.providers.glm];/config subagents statusshows both global
and active-provider resolved values. - Sub-agent control and isolation. The single
agenttool now exposes
status, peek, and cancel actions for running children, and accepts
worktree: trueto create an isolated git worktree/branch for parallel edit
lanes instead of requiring callers to hand-roll acwd.
Fixed
- Mode and tool catalog correctness. Core action tools remain discoverable
in the model-facing catalog/tool search, and a consistency self-check flags
registered handlers that drift out of the advertised catalog. Review-looking
prompts in explicit Agent/YOLO mode now keep the requested mode and tools,
with only an advisory review hint. - Sub-agent orchestration recovery. Child agents now retry transient
provider header/SSE timeouts before failing, and parent runs synthesize missed
child completions from terminal child state so orchestration cannot hang on a
lost completion event. - DeepSeek thinking tool calls. DeepSeek chat-completions requests now omit
explicittool_choicewhenever reasoning/thinking is enabled, avoiding
provider rejections while leaving no-thinking routes unchanged. - Task sidebar shortcuts and attribution. Ctrl-K stays palette/emacs-kill,
while Ctrl-X is scoped to Tasks-sidebar background shell cancellation. Shell
jobs launched by sub-agents now render with their child-agent owner in the
Tasks sidebar and transcript. - Benchmark-turn recovery and context economy. Repeated read-only search
loop blocks now return guidance instead of fatal tool failures, Python build
failures that are missingsetuptoolsinclude an install/retry hint, long
foreground shell timeouts steer models toward background execution, and noisy
shell/test/web outputs are compacted earlier for large-context routes. - Config display redaction.
codew config get/listnow recursively masks
token-, secret-, password-, credential-, and authorization-like keys inside
unknownextrastables and redacts sensitive HTTP header values before
printing config output. - Queued follow-up hints and force-steer keys. The pending-input preview now
advertisesCtrl+S send nowwhenever queued follow-ups exist, and
Ctrl/Cmd+Enter force-steering also accepts the common Ctrl+J terminal
encoding while a turn is running. - Sidebar default visibility restored (#3328). New and upgraded sessions
now use a pinned composed sidebar by default when the terminal is wide
enough, so live Agents and Tasks surface without opting back into idle
auto-collapse. Older settings files that captured the v0.8.62 auto-collapse
default now migrate topinnedunless/sidebar auto --saverecords an
explicit opt-in./sidebarnow reports when width or auto-collapse
suppresses rendering instead of saying the sidebar is visible. Reported by
@dxfq. - JavaScript execution proxy env handling (#3273, #3331).
js_execution
now enables Node's environment-proxy mode when proxy variables are present,
mirrors lowercase proxy variables for the child process, and backfills
HTTP_PROXY/HTTPS_PROXYfromALL_PROXY. Reported by @lordwedggie and
harvested from #3331 by @cyq1017. - Legacy app-server non-loopback auth hardening (#3258). Bare
codewhale app-server --host 0.0.0.0now fails fast unless an explicit
--auth-tokenorCODEWHALE_APP_SERVER_TOKENis supplied, keeping generated
one-timecwapp_*tokens loopback-only. - Legacy
.deepseekstate write-path migration (#3240). State subdirectories
(sessions,slop_ledger,trophies,catalog) are now always written under
~/.codewhale/, and the first write of a subdir relocates any pre-existing
~/.deepseek/<sub>contents into the primary location so the legacy tree stops
growing while old data is preserved. The read resolver still finds legacy data
for backfill until each subdir migrates. Reported by @Final527; onboarding
marker slice from #3302 by @nightt5879. - State subdir validation on Windows (#3240). State path hardening now
rejects rooted/prefixed subdir strings such as/etcbefore resolving or
migrating state directories, keeping the.codewhalewrite resolver inside
its state root across platforms.
Contributor credits for this release live in the changelog entry above —
thank you to everyone whose reports, PRs, reviews, and reproductions shaped it.
See CHANGELOG.md for full notes and docs/CHANGELOG_ARCHIVE.md for older releases.