Release notes
Codewhale v0.8.59
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.59
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.59
Added
- Moonshot Kimi K2.7 Code model. The Moonshot/Kimi provider now defaults to
kimi-k2.7-code, recognizeskimi/kimi-k2aliases for that model, keeps explicitkimi-k2.6selectable, and adds the OpenRoutermoonshotai/kimi-k2.7-coderegistry row. - Concise verbosity mode (#3052). CLI noninteractive launches now default
to concise prompt/output discipline unless overridden by config, env, or
--verbosity, while interactive TUI launches remain normal by default. Thanks @cyq1017 for the PR. - Ephemeral generated project context (#3058). Opening CodeWhale in a
directory with no instruction files now keeps the bounded generated project
overview in memory instead of creating
.codewhale/instructions.md. - ACP registry auth metadata (#1447). The ACP stdio adapter now advertises
terminal authentication setup in
initialize.authMethods, matching the registry's validation requirement. - Sidebar context menus (#3065). Right-clicking the sidebar no longer shows
Paste; clickable sidebar rows now offer their row command as the first context action. - Sidebar hover popovers (#3088). Streaming turns now keep sidebar hover popovers responsive while continuing to throttle transcript/body mouse motion.
- Dark-theme selection contrast (#3074, thanks @drpars). Session, config, help, context-menu, and approval selections now use the muted selection background instead of the bright accent color.
- Cursor-style activity metadata rows (#3146). Dense successful tool-run
summaries now render as a single muted
Explored .../Updated metadatarow, include short command-family labels for successful generic verifier groups, and keep keyboard/mouse expansion and detail inspection intact. - Provider-wait observability (#3095). Footer stall reasons now name the
active provider/model route, idle seconds vs stream budget, and whether a
fanout plan is still at
0 runningor dispatch is pending. Structured provider-wait incidents log once per turn from the main tick loop (not on every footer redraw). - Interactive fanout launch gate (#3095). Direct sub-agent children queue
behind a configurable semaphore (
[subagents] interactive_max_launch, default 4) with a visiblequeued: waiting for an interactive fanout slotreason before their first model step. - Goal lifecycle controls.
/goalis now the primary command surface for session goals, withpause,resume,complete,blocked, andclearcontrols while/huntremains a compatibility alias. - Persistent thread-goal API. App-server clients can now set, get, and clear
durable thread goals through
thread/goal/set,thread/goal/get, andthread/goal/clear, backed by the state store with Codex-style status and token/time accounting fields. - Command-boundary ownership layers (#2888/#3055). Built-in slash command
metadata now lives in
commands/registry.rs, slash parsing incommands/parse.rs, and handlers under group-owned command areas, preserving the existing dispatch surface while reducing futurecommands/mod.rschurn. - Approval-rule source metadata (#1186/#2971). Runtime API
approval.requiredevents now include optionalmatched_rulemetadata when an execution-policy rule caused the prompt. Thanks @greyfreedom for the PR and @Ram9199 for the audit-semantics discussion. - Localized tool-family labels (#2901). Tool activity labels for read, patch, run, find, delegate, fanout, RLM, verify, think, and generic tool work now route through the shipped locale tables. Thanks @gordonlu for the PR.
- Localized config section labels (#2918). The interactive config view now localizes section and session/saved scope labels while preserving English search terms. Thanks @gordonlu for the PR.
- Localized config editor labels (#2919). The config editor modal now localizes edit labels, default/unavailable placeholders, and effective currency hints. Thanks @gordonlu for the PR.
- Hotbar number-key dispatch (#3056). Bare
1-8now trigger bound hotbar slots only when the composer is empty, whileAlt+1-Alt+8
…