DeepSeek TUI v0.8.59

DeepSeek TUI is an open source terminal based coding agent designed for DeepSeek AI models. Unlike a simple chatbot, it can interact with your local workspace, execute shell commands, manage git operations, and assist with software development tasks directly from the command line.

The project is written in Rust and focuses on speed, low resource usage, and keyboard driven workflows. It is especially appealing for developers who spend most of their time in the terminal.

DeepSeek TUI is gaining attention among developers who prefer terminal based workflows and want direct access to AI powered coding tools without relying on heavy IDE integrations. Built around DeepSeek models, it transforms the terminal into an interactive coding assistant capable of editing files, running commands, and managing development workflows.

Download DeepSeek TUI v0.8.59 - Software Mirrors

Download DeepSeek TUI v0.8.59 Windows 64bit
codewhale-tui-windows-x64.exe | 42.98 MB

Download DeepSeek TUI v0.8.59 Windows 64bit
codewhale-windows-x64-portable.zip | 19.73 MB

Download DeepSeek TUI v0.8.59 Windows 64bit
codewhale-windows-x64.exe | 12.77 MB

Download DeepSeek TUI v0.8.59 Windows 64bit
codewhale-windows-x64.zip | 19.73 MB

Download DeepSeek TUI v0.8.59 macOS arm64
codewhale-macos-arm64 | 12.79 MB

Download DeepSeek TUI v0.8.59 macOS arm64
codewhale-macos-arm64.tar.gz | 20.89 MB

Download DeepSeek TUI v0.8.59 macOS arm64
codewhale-tui-macos-arm64 | 40.08 MB

Download DeepSeek TUI v0.8.59 macOS x64
codewhale-macos-x64 | 13.35 MB

Download DeepSeek TUI v0.8.59 macOS x64
codewhale-macos-x64.tar.gz | 21.76 MB

Download DeepSeek TUI v0.8.59 macOS x64
codewhale-tui-macos-x64 | 41.87 MB

Download DeepSeek TUI v0.8.59 macOS arm64
codewhale-macos-arm64 | 12.79 MB

Download DeepSeek TUI v0.8.59 macOS arm64
codewhale-macos-arm64.tar.gz | 20.89 MB

Download DeepSeek TUI v0.8.59 macOS arm64
codewhale-tui-macos-arm64 | 40.08 MB

Download DeepSeek TUI v0.8.59 Linux x64
codewhale-linux-x64 | 16.59 MB

Download DeepSeek TUI v0.8.59 Linux x64
codewhale-linux-x64.tar.gz | 23.44 MB

Download DeepSeek TUI v0.8.59 Linux x64
codewhale-tui-linux-x64 | 50.68 MB

Download DeepSeek TUI v0.8.59 Linux arm64
codewhale-linux-arm64 | 15.79 MB

Download DeepSeek TUI v0.8.59 Linux arm64
codewhale-linux-arm64.tar.gz | 23.15 MB

Download DeepSeek TUI v0.8.59 Linux arm64
codewhale-tui-linux-arm64 | 47.64 MB

DeepSeek TUI v0.8.59 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.59
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-.tar.gz
cd codewhale-
./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.59

Added

  • Moonshot Kimi K2.7 Code model. The Moonshot/Kimi provider now defaults to
kimi-k2.7-code, recognizes kimi/kimi-k2 aliases for that model, keeps explicit kimi-k2.6 selectable, and adds the OpenRouter moonshotai/kimi-k2.7-code registry 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 metadata row, 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 running or 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 visible queued: waiting for an interactive fanout slot reason before their first model step.
  • Goal lifecycle controls. /goal is now the primary command surface for
session goals, with pause, resume, complete, blocked, and clear controls while /hunt remains 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, and thread/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 in commands/parse.rs, and handlers under group-owned command areas, preserving the existing dispatch surface while reducing future commands/mod.rs churn.
  • Approval-rule source metadata (#1186/#2971). Runtime API
approval.required events now include optional matched_rule metadata 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-8 now trigger bound
hotbar slots only when the composer is empty, while Alt+1-Alt+8 trigger slots regardless of composer text and overlays keep key ownership. Thanks @reidliu41 for the PR.
  • Voice dictation commands (#3051). /voice, /voice-send, and
/voice-control now record through sox/rec/arecord, transcribe via the active provider's chat-completions API, and insert transcripts at the composer cursor. The voice.toggle hotbar action dispatches the real voice command, with help and status text localized across all seven shipped locales. Thanks @huqiantao for the PR.
  • Thread rewind and snapshot restore API (#2808). GUI clients can now call
POST /v1/threads/{id}/undo, /patch-undo, and /retry to fork, roll back, or rerun recent thread turns, plus POST /v1/snapshots/{id}/restore to restore a workspace snapshot by id. Thanks @bengao168 for the PR.
  • Active provider fallback chain (#2773). Configured fallback_providers
now build an ordered primary-plus-fallback route that the TUI can report, advance through, and reset with /provider fallback reset, including footer visibility for fallback state. Thanks @idling11 for the PR.
  • Provider metadata registry (#3005). Built-in provider ids, display names,
defaults, env vars, config keys, aliases, and wire formats now live in a shared metadata registry, with the provider drift check covering the registry contract. Thanks @sximelon for the PR.
  • Hugging Face provider route (#2879). Hugging Face Inference Providers now
have first-class config, env, docs, and registry coverage for the OpenAI-compatible router, including huggingface/hugging-face/ hugging_face/hf aliases and HUGGINGFACE_/HF_ env fallbacks. Thanks @mvanhorn for the PR.

Fixed

  • SSE data lines without spaces (#3152). Chat Completions, Responses, and
Anthropic stream readers now accept both data: {...} and data:{...} SSE frames, matching the spec and preventing providers that omit the optional space from streaming empty output. Thanks @wgeeker for the PR.
  • Runtime thread detail N+1 reads (#3141). get_thread_detail now scans
persisted turn items once and groups them by turn instead of reading the items directory once per turn, preserving item order while keeping large thread detail loads responsive.
  • Project-local hook trust boundary (#3140). .codewhale/hooks.toml is now
loaded only after the workspace is trusted in user-owned config, matching the project-local MCP trust model while preserving the documented shell-command hook contract.
  • Skill registry sync latency (#3139). /skills sync now syncs registry
entries with bounded ordered concurrency, so network latency no longer stacks one skill at a time while output order stays deterministic.
  • SiliconFlow China provider config (#2893/#2895). siliconflow-CN
now reads its own [providers.siliconflow_cn] / [providers.siliconflow-CN] table and falls back to [providers.siliconflow] only for unset api_key/base_url/model fields. Thanks @Artenx for the report and @idling11 for the PR.
  • Self-update download timeout (#3006). codewhale update now applies a
five-minute HTTP client timeout so blocked or very slow GitHub release downloads fail instead of hanging indefinitely. Thanks @New2Niu for the PR.
  • Legacy deepseek update migration (#2960/#3013/#3053). Running
deepseek update or deepseek-tui update from a pre-rebrand install now returns copy-pasteable npm, Cargo, Homebrew, and manual-binary migration steps instead of trying to spawn a missing codewhale binary. README and rebrand docs now cover the same upgrade path. Thanks @jazzi and @tiangangQiu for the reports, @cyq1017 for the update-path PR, and @angus-guo for the README PR.
  • Short codew shim delegation. The codew convenience binary now
prefers the sibling codewhale dispatcher installed next to it before falling back to PATH, preventing fresh local builds or installs from accidentally invoking an older global dispatcher.
  • Constitution trust wording (#2950/#3008). The base prompt now explains
that "begins with an A" means a baseline of trust, not a literal output formatting rule. Thanks @cyq1017 for the PR.
  • TUI provider-source recovery (#3007/#3011). Unsupported interactive
providers now report whether the value came from --provider, environment, or config. Config-sourced unsupported providers fall back to DeepSeek without forwarding stale keyring secrets. Thanks @cyq1017 for the PR.
  • Exec auto-model handoff (#3148). codewhale exec --model auto now
survives the CLI/TUI boundary by honoring the CodeWhale model env alias and legacy DeepSeek model handoff before falling back to provider defaults. Thanks @hongchen1993 for the PR.
  • macOS shortcut modifiers (#2938/#2943). Ctrl-like shortcuts that are
reported as SUPER by macOS terminals now work for backgrounding tasks and sidebar-focus chords without rewriting clipboard shortcuts. Thanks @idling11 for the PR.
  • TUI mouse-report leak (#3063/#3067). Strip raw SGR mouse coordinate
tails from the composer even when use_mouse_capture is false, covering orphaned terminal reporting state after crashes or focus races.
  • Interrupted sub-agent lifecycle (#3080). API-timeout interruptions now
emit MailboxMessage::Interrupted, render terminal interrupted cards, and reconcile stale running fanout counts from manager snapshots.
  • OpenAI Codex stream diagnostics and active tool collapse (#3146). The
Responses bridge now reports nested response.failed / response.incomplete errors instead of unknown, and dense successful in-flight tool bursts collapse into the same calm activity metadata row as committed history.
  • OpenAI Codex reasoning tiers. Switching from DeepSeek to openai-codex
now normalizes stale reasoning state into Responses-compatible low/medium/high/xhigh tiers. Startup, /config, and the model picker now display Codex labels instead of leaking DeepSeek off/max names, while Codex still reports as a Responses payload provider. The Responses request builder also clamps legacy minimal input to low and has regression coverage that Codex requests use reasoning.effort, not DeepSeek thinking fields.
  • OpenAI Codex context metadata (#3070). The gpt-5.5 default and
CodeWhale aliases now use OpenAI's documented 1,050,000-token context window and 128,000 max-output metadata for context pressure, prompts, and doctor capability output.
  • OpenRouter Nemotron 3 Ultra preset. The OpenRouter preset and model
registry now emit nvidia/nemotron-3-ultra-550b-a55b while keeping the old Ultra aliases compatible.
  • OpenRouter auth after MiMo switches (#3064). Switching from Xiaomi MiMo
to OpenRouter now has regression coverage for preflight key failures and Bearer auth header isolation before any request can be dispatched.
  • Responses strict-tool schema compatibility (#3062/#3017/#1883). Responses
function tools now preserve per-tool strict-mode compatibility, keep optional strict-schema fields nullable, and append deterministic constraint notes when root composition groups must be flattened for Responses.
  • Runtime prompt autonomous loop guard (#3061). Runtime policy reference
now explicitly forbids initiating new work when is the only new turn content and no tool/sub-agent handoff is pending.
  • Goal runtime status sync. Goal token budgets and active/paused/complete
status now sync into the engine alongside the objective, and model-visible update_goal can only mark goals complete or blocked.

Contributors

  • Devin session work on #3080/#3095 (PRs #3103, #3104, #3106) — Hunter Bown
(maintainer integration/cherry-pick on codex/v0.8.59-release-ready).
  • Nightt (@nightt5879) for the Responses strict-tool schema hardening in PR
#3062.
  • yekern (@yekern) for the #3061 runtime-prompt loop safety report and repro
that shaped the dispatch guard.
  • Paulo Aboim Pinto (@aboimpinto) for the staged command-boundary design and
Layer 3 registry/parser extraction in PR #2888, plus the #2851/#2791/#2870 architecture stream that guided the grouped command areas in #3055. 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.

Key Features of DeepSeek TUI

  • Terminal Native Workflow
    DeepSeek TUI operates entirely within the terminal, allowing developers to work without switching between browser windows or external interfaces.

  • AI Assisted Coding
    The assistant can read and edit files, generate code, explain logic, and help automate development tasks.

  • Shell Command Execution
    It supports running terminal commands directly through the interface, streamlining development workflows.

  • Git Integration
    Developers can manage repositories, review changes, and handle version control related tasks from inside the tool.

  • Multiple Work Modes
    DeepSeek TUI includes modes like Plan, Agent, and YOLO, offering different levels of automation and approval control.

  • Large Context Handling
    The tool is built around DeepSeek V4 capabilities, including support for extremely large context windows that help with understanding bigger codebases.

User Experience

DeepSeek TUI is designed for developers comfortable with terminal environments. The interface is keyboard focused and efficient, though beginners may need time to adapt.

The workflow feels closer to tools like Claude Code or Codex style assistants rather than traditional chat applications. Community feedback on Reddit and GitHub discussions highlights its speed and practical coding workflow.

Performance and Compatibility

Because it is written in Rust, DeepSeek TUI is lightweight and responsive. It supports Linux, macOS, and Windows, with installation available through npm, Cargo, or direct binaries.

Performance depends heavily on the connected DeepSeek models and API configuration, but the local interface itself remains fast and efficient.

Pros

  • Fast terminal native workflow

  • AI powered coding and automation

  • Lightweight Rust based architecture

  • Supports file editing and shell execution

  • Open source and actively developed

Cons

  • Requires familiarity with terminal workflows

  • Depends on external AI APIs

  • Advanced automation modes may feel risky for inexperienced users

DeepSeek TUI is ideal for developers, DevOps engineers, and terminal focused power users who want AI assistance integrated directly into their command line workflow. It is especially attractive for users seeking a lightweight alternative to browser based AI coding tools.

DeepSeek TUI combines AI coding assistance with the efficiency of terminal workflows. Its fast performance, flexible automation, and developer focused design make it one of the most interesting open source AI terminal tools currently gaining traction.

DeepSeek TUI v0.8.59
Free
Software Informations:
Developer:

Operating System:
Windows / macOS / Linux
Date Added:
2026-06-13T16:01:07.380Z
Categories:

Post a Comment/Report Broken Link: