Release notes
Codewhale v0.8.58
CodeWhale is the canonical project, command, npm package, and release-asset name. The legacy npm package
deepseek-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 codewhale
The 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.58
The 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 --locked
Both 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.sh
Windows:
- 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.
Individual binaries are also attached below for scripting and the npm wrapper. 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.txt
What's in v0.8.58
Added
- Native Anthropic provider. A dedicated Messages API adapter
(
/v1/messageswithx-api-keyauth) replaces OpenAI-dialect shims for Claude models: adaptive thinking withoutput_config.effortshaping, prompt-cache breakpoints (capped at 4, earliest dropped), signed-thinking replay viasignature_delta, normalized cache-hit/miss usage telemetry, and SSE error envelopes.claude-opus-4-8,claude-sonnet-4-6, andclaude-haiku-4-5join the model registry; configure withANTHROPIC_API_KEY(#3014). - Hooks v2.
tool_call_beforehooks can now return a JSON decision —{"decision": "allow"|"deny"|"ask", "reason", "updatedInput", "additionalContext"}— with deny > ask > allow precedence across multiple hooks, last-writer-wins input rewriting, and concatenated context. Exit code 2 remains a legacy hard deny. Hooks support glob matchers and project-local.codewhale/hooks.toml(#3026). - Clickable sidebar. Background-job rows show/cancel on click, the
Ctrl+K hint row runs
/jobs cancel-all, and agent rows open/subagents; row actions are built in the same pass as the rendered lines so a click can never target the wrong job (#3028). - OSC 8 out-of-band hyperlink infrastructure with per-region open/close sequences that survive partial redraws (#3029).
codewhale execgains--allowed-tools,--disallowed-tools(deny wins),--max-turns, and--append-system-prompt(#3027).- Constitution prompt source: YAML source-of-truth plus Python renderer for
the system prompt, with the active prompt now served from
constitution.md(#3015, renderer reconciliation still tracked). - Agent-task issue template, labels, and runner protocol (#3021); remote smoke-test droplet loop hardening — gh CLI, swapfile, agent sessions (#3022).
Changed
- Sub-agent routing is provider-aware. DeepSeek ids are no longer hardcoded into model validation; routing works from per-provider big/cheap candidates, the network router is skipped when a provider has no cheap tier, and spawn-time model requests are validated against the active provider (#3018).
- Model-specific facts in the system prompt (context window, sub-agent
pricing, thinking notes, architecture characteristics) are now templated
per-model instead of hardcoded DeepSeek V4 claims, in both
base.mdandconstitution.md(#3025). - Provider capability lookups for Moonshot/OpenAI/Atlascloud resolve from per-model registry rows (bare and vendor-prefixed ids) instead of hardcoded 64K-era floors (#3023).
- Reasoning-effort now reaches Atlascloud (DeepSeek dialect), Moonshot
(
thinkingenable/disable), and Ollama (thinkparam) (#3024); Moonshot/ Kimi models joined the reasoning-content provider and model gates (#3016). - Transcript polish: compact tool-call cells without boilerplate (#3031), internal turn/agent ids hidden behind stable labels (#3030), and Ctrl+B now backgrounds the running foreground shell directly instead of opening a menu (#3032).
- The Tasks sidebar separates "Model reasoning" from "Background commands",
and
auth listreports the same active-credential source asauth statusfor openai-codex.
Fixed
- TUI freeze under sub-agent load. Rapid
AgentProgressevents saturated the render loop and starved terminal input; progress-driven repaints are now throttled to one per 100ms (#3033). - Hooks on Windows. Hook commands were passed to
cmd /Cthrough CRT-style argument quoting, which injected literal\"sequences that cmd.exe never unescapes — JSON decisions could not parse. Commands now reach cmd.exe verbatim viaraw_arg. - Codex Responses: assistant tool results are converted to
function_call_outputitems (multi-turn tool calling previously broke), tool schemas are sanitized for the Responses API, andmaximumeffort maps toxhigh(#3019, #3017 — both partially; retry/backoff and per-tool strict mode remain open). - Better tool-denial and provider error messages harvested from PR #2933 (#3020).
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
…