v0.8.58
Hmbown/Codewhalev0.8.58Jun 11, 2026by github-actions[bot]
AI Summary
This release adds a native Anthropic provider, Hooks v2 with JSON decision support, and clickable sidebar features.
Key Highlights
- Native Anthropic provider with Messages API adapter.
- Hooks v2 supporting JSON decision returns (allow/deny/ask).
- Clickable sidebar for background jobs and agents.
- OSC 8 out-of-band hyperlink infrastructure.
New Features
- Native Anthropic provider.
- Hooks v2 (JSON decision support).
- Clickable sidebar for background jobs.
- OSC 8 out-of-band hyperlink infrastructure.
Full Release Notes
> **CodeWhale** is the canonical project, command, npm package, and
> release-asset name. The legacy npm package `deepseek-tui` is
> deprecated and receives no further releases. Users coming from
> v0.8.x legacy `deepseek` / `deepseek-tui` names should migrate
> with `docs/REBRAND.md`.
## Install
### Recommended — npm (one command, both binaries)
```bash
npm install -g codewhale
```
The wrapper downloads both binaries from this Release and places them in the same directory.
### Docker / GHCR
```bash
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)
```bash
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):**
```bash
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\bin` and adds that directory to the current-user PATH.
- Extract `codewhale-windows-x64.zip`
- Run `install.bat` (copies to `%USERPROFILE%\bin`)
- Add `%USERPROFILE%\bin` to 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:
```bash
# 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/messages` with `x-api-key` auth) replaces OpenAI-dialect shims for
Claude models: adaptive thinking with `output_config.effort` shaping,
prompt-cache breakpoints (capped at 4, earliest dropped), signed-thinking
replay via `signature_delta`, normalized cache-hit/miss usage telemetry,
and SSE error envelopes. `claude-opus-4-8`, `claude-sonnet-4-6`, and
`claude-haiku-4-5` join the model registry; configure with
`ANTHROPIC_API_KEY` (#3014).
- **Hooks v2.** `tool_call_before` hooks 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 exec` gains `--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.md` and
`constitution.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
(`thinking` enable/disable), and Ollama (`think` param) (#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 list` reports the same active-credential source as
`auth status` for openai-codex.
### Fixed
- **TUI freeze under sub-agent load.** Rapid `AgentProgress` events
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 /C` through
CRT-style argument quoting, which injected literal `\"` sequences that
cmd.exe never unescapes — JSON decisions could not parse. Commands now
reach cmd.exe verbatim via `raw_arg`.
- Codex Responses: assistant tool results are converted to
`function_call_output` items (multi-turn tool calling previously broke),
tool schemas are sanitized for the Responses API, and `maximum` effort
maps to `xhigh` (#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](https://github.com/Hmbown/CodeWhale/blob/main/CHANGELOG.md) for full notes and [docs/CHANGELOG_ARCHIVE.md](https://github.com/Hmbown/CodeWhale/blob/main/docs/CHANGELOG_ARCHIVE.md) for older releases.