Codewhale is the public product from Shannon Labs. The
codewhale
command, npm package, and release-asset names remain lowercase technical
identifiers. 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 entrypoints)
npm install -g codewhaleThe wrapper downloads the matched codewhale and codew command assets
from this Release. Both contain the same compiled runtime.
Docker / GHCR
docker run --rm -it \
-e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \
-v codewhale-home:/home/codewhale/.codewhale \
ghcr.io/hmbown/codewhale:v0.9.10The image exposes the same runtime as both codewhale and codew. The
latest tag is also updated on release.
Cargo (Linux / macOS)
cargo install codewhale-cli --lockedThe Cargo package installs codewhale. Cargo cannot create a second command
alias from one binary target; users who want the shorter spelling can add a
codew symlink to that installed executable. The npm, Homebrew, archive,
shell-installer, and container channels install both command names directly.
Manual download — platform archives (recommended)
Each archive below contains the same runtime under the codewhale and
codew command names, 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 |
| Android ARM64 (Termux) | codewhale-android-arm64.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 | — |
| Windows ARM64 | codewhale-windows-arm64.zip | install.bat |
| Windows ARM64 (portable) | codewhale-windows-arm64-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
codewhale.exe,codew.exe, andcodewhale.batunder
%LOCALAPPDATA%\Programs\CodeWhale\bin, adds that directory to the
current-user PATH, and creates a Start Menu shortcut that prefers
Windows Terminal (wt.exe) when it is installed. - Extract the archive for your machine:
codewhale-windows-x64.zipor
codewhale-windows-arm64.zip - Double-click
codewhale.bat(not the raw.exe) to launch - Run
install.batto copy the binaries and launcher to%USERPROFILE%\bin - Add
%USERPROFILE%\binto your PATH
The portable Windows archive skips the install script — extract and run codewhale.bat 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 codewhale-<platform> and
codew-<platform> assets. The seven codewhale-tui-<platform> filenames
attached to v0.9.5 are byte-identical compatibility copies used only to let
already-installed v0.9.4 clients discover and cross this single-binary
transition; current installers do not expose a third runtime. 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 --ignore-missing
# Linux — individual binaries
sha256sum -c codewhale-artifacts-sha256.txt --ignore-missing
# macOS
shasum -a 256 -c codewhale-bundles-sha256.txt --ignore-missing
shasum -a 256 -c codewhale-artifacts-sha256.txt --ignore-missingWhat's in v0.9.10
- Show the full slash-command or
/modelcompletion row in a bounded, wrapping hover popover whenever narrow terminals truncate it, closing the remaining scoped gap from and ), and three $HOME disk leaks are
reclaimed. Extension surfaces now name their real state and act only
through the reviewed install and trust flows, and sub-agent, shell, task,
and workflow state is owned by the session that created it ( failure class reported by
, ). - Pre-header HTTP/2/SSE transport failures get one bounded HTTP/1.1 retry;
authentication, provider-semantic, response-body, and already-pinned HTTP/1
failures remain fail-closed (demian-welt, by
). - Windows default launch prefers Windows Terminal: zip archives ship
codewhale.bat(CRLF,wt.exethen the exe),install.batcopies that
launcher, and the NSIS Start Menu shortcut opens it instead of the raw
binary (). fix(tui): rebase active-cell tool bindings on every mid-turn history insert—/renamemid-turn left the running tool row spinning forever
().fix(tui): reclaim the three $HOME disk leaks— orphaned session dirs,
the unbounded audit.log, and stranded writer temp files.fix(tui): persist approval outcomes before execution(cyq1017) —
approval receipts are committed to a session-owned log before execution
proceeds; unpersistable evidence blocks the tool; resume reconstructs
closed and interrupted approvals ().- Short CLI no longer waits up to three seconds for a telemetry POST on
exit;session_endis recorded and the buffer ships on the next
interactive session. - Bare
/now opens a deliberately small starter set:/help,/setup,
/model,/settings,/resume, and/rc. The full command inventory
remains searchable through/help, the command palette, and direct prefix
typing, without front-loading the entire control surface (). - First run now asks only for decisions needed to become usable, keeps the
offline route explicit, and leaves optional provider, tools, policy, and
appearance work in the progressive/setuprepair guide. The idle aquarium
asks one task-oriented question instead of advertising a tutorial or command
billboard, and the localized telemetry choice appears after the workspace is
ready without blocking the composer. - Provider, active model, and reasoning effort moved out of the crowded header
into a quiet, width-aware footer identity. Compact layouts keep model and
effort before provider detail and shed whole low-priority groups instead of
clipping the composer or control hints. - The model picker no longer re-parses
~/.codewhale/config.tomlonce per
provider when deciding who has a saved key.
Added
/workflowsopens a live run dashboard over this workspace's durable
workflow journal: every retained run with status, phases, child roster,
progress, and host-side cancel — observation only, it never launches a run.- Repository instructions now assemble from the actual containing checkout:
applicableAGENTS.mdfiles resolve repository-root to current-directory in
order under one aggregate budget, a linked worktree is its own root, and
scope is never inferred from path mentions or whichever branch is named
main. /goalis a codex-style control plane: setting an objective dispatches it
to the engine, which owns the goal and starts the first goal turn itself —
the objective is never echoed back as the user's own message, pause/resume
are real control ops, and the hunt-era vocabulary and trophy cards are
gone./extensionsand/pluginsopen one localized inventory for Hooks,
Plugins, local Marketplace catalogs, Skills, and MCP. Reviewed suggestions
include Playwright, Chrome DevTools, Cua Computer Use, Browser Use, and the
sandbox runtime without granting trust or installing anything on open.- Turn Inspector now opens the newest turn and pages across complete recorded
user, reasoning, tool/subagent, and assistant output with page-scoped search,
copy, and export (sky-sun-moon, , by ). codewhale auth status --diagnosticreports canonical paths, isolation
source, backend class, and value-free provider-source presence without
opening credential stores or creating/migrating state ().- The safe deferred
read_mediatool is available to supported read-only
roles, and history receipts distinguish localized tool execution outcomes
without exposing raw payloads (). feat(tui): add cancellable cadence to continuous goals(M-Maciej) —
[goal] continuation_delay_secondsgives coordinator goals a visible quiet
period between successful turns while reusing the existing coalesced goal
continuation token; Esc, Ctrl+C, pause/done/blocked/clear cancel before the
next provider request, and failures never continue ().feat(web): move docs/hooks and docs/troubleshooting onto the dictionary spine(Lstarsky0) — both pages now read copy from the locale dictionaries
instead of inline bilingual literals (,
not completion of the full epic ().feat(tui): show repository context in git chrome(wuisabel-gif) — the TUI
header now identifies the active repository or linked worktree before the
branch and dirty marker, so operators can see where the agent is working
without opening the worktree manager ().feat(tui): first slice of the agents roster— every agent that ran this
session, receipts-only, via/agents listand the sidebar fan-out rows
().chore(scripts): dev-cache warns before it fills a disk( (@SparkofSpike) — restored
/titleas an independent, persistent terminal-window title in PR (@bistack) — extracted the
turn-loop stream processor in PR (@OctoBored) — supplied the
working no-token Star History mirror used across the localized README set
after the canonical chart endpoint began returning a restricted placeholder
( (@cacdcaecawae) — added
provider-neutral typed MCP image forwarding in PR (@DingYong4223) — reported
the narrow-terminal completion truncation closed by the bounded hover reveal
( and (@sky-sun-moon) — reported
the missing full per-turn input, reasoning, tool, and assistant pages that
shaped Turn Inspector navigation ( (@cy2311) — reported the Windows launch
path that now ships and installs a Windows Terminal-aware batch launcher
( (@demian-welt) — provided the
reproducible pre-header SSE transport failure behind the bounded HTTP/1.1
retry ( (@BrathonBai) — reported the
Tabby/CJK IME candidate-window jump that led to the hide-diff-position-show
cursor transaction () — the real-world organization-coordinator use case and
5–30 minute cadence requirement behind cancellable cross-turn goal delays
() — approval outcomes are persisted before execution can
proceed: receipts commit to a session-owned log first, unpersistable
evidence blocks the tool, stale decisions are rejected, and resume
reconstructs closed and interrupted approvals ().- aboimpinto (, EPIC-005/FEAT-015 under ) — the TUI header now names the active
repository or linked worktree before the branch and dirty marker, derived
from Git's common directory and capped by shell density tier (). - SparkofSpike (, epic ) —
docs/hooksanddocs/troubleshootingmove onto
the dictionary spine, retiring their inline bilingual literals in favor of
locale dictionaries with token-aware code spans (, which
they also filed). - Lstarsky0 (, a further phase of — the header status-indicator report that pinned the
regression to a specific setting, with every value, theme, and
fancy_animationscombination already ruled out () — reported the deterministic cross-session contamination
class behind this release's session-ownership boundary, plus route
budgeting evidence () — reported the route budgeting root causes that exact
route-limit propagation now closes ( for full notes and docs/CHANGELOG_ARCHIVE.md for older releases.↗ Original-Artikel auf github.com lesenVollständiger Original-BerichtAusführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf github.com.
SOCIAL SHARE CARD GENERATOR