Updated 2026-06-10
DeepSeek TUI — Your Terminal Becomes a DeepSeek-Powered Coding Agent
DeepSeek TUI is an open-source, Rust-powered terminal coding agent built specifically for DeepSeek V4. Think of it as a command-line assistant that can read your code, write files, run shell commands, manage git, search the web, and dispatch parallel sub-agents — all inside your terminal. This guide keeps the DeepSeek TUI search intent intact: deepseek-tui.com, the legacy `deepseek` command, DeepSeek API setup, and the Pro-orchestrates-Flash workflow remain the main story. CodeWhale is covered as the upstream rename and fresh-install path, with the dedicated /codewhale page handling the new package and binary names.
1. What DeepSeek TUI actually is
DeepSeek TUI is a terminal-native coding agent — a single compiled Rust binary that talks to the DeepSeek API. You type prompts into a terminal interface, and the agent can read and edit files, execute shell commands, manage git branches, search the web, and call out to MCP servers for extra capabilities. It is not a terminal emulator (that's Warp) and not a chat bot (that's the DeepSeek web app). It's a tool-using agent that lives in your terminal.
The project was created by independent developer Hunter Bown and is not affiliated with DeepSeek Inc. It has grown quickly through community contributions — 28 PRs from a single contributor in one release cycle — and supports English, Japanese, Simplified Chinese, and Brazilian Portuguese out of the box.
| Attribute | Detail |
|---|---|
| Language | Rust (compiled binary, no Node.js or Python needed) |
| License | MIT |
| Release cadence | Active 0.8.x releases; DeepSeek TUI remains the legacy search-facing name while CodeWhale carries the renamed upstream package path |
| Context window | 1 million tokens (DeepSeek V4 native) |
| Install methods | Homebrew, npm, Cargo, Docker, direct binary download, Scoop |
| Platforms | Linux x64/ARM64, macOS x64/ARM64, Windows x64 |
2. Developer website: where deepseek-tui.com fits
If you are looking for the DeepSeek TUI developer website, use https://deepseek-tui.com. It belongs in the developer-resource section of this guide because it helps users orient around the tool before reading release notes, architecture docs, and configuration details.
Do not confuse the developer website with official DeepSeek Inc. channels. DeepSeek TUI is an independent developer project that uses the DeepSeek API. For installation evidence, release artifacts, source code, and bug reports, cross-check the GitHub repository before running commands on a production machine.
| Resource | Use it for | Trust boundary |
|---|---|---|
| deepseek-tui.com | Developer landing page and product orientation. | External developer site, not an official DeepSeek Inc. property. |
| GitHub repository | Source code, releases, issues, architecture, and configuration docs. | Primary implementation source; newer upstream surfaces now use CodeWhale, while DeepSeek TUI remains the legacy public/search-facing name. |
| DeepSeek API docs | API key, model, pricing, and endpoint behavior. | Official DeepSeek API source. |
Sources checked
- DeepSeek TUI developer website - Developer landing page for the DeepSeek TUI project.
- DeepSeek TUI GitHub repository - Primary source for code, releases, and implementation documentation. The old Hmbown/DeepSeek-TUI path now redirects here.
3. Install DeepSeek TUI
If your search intent is DeepSeek TUI, start from the public DeepSeek TUI name and then identify which naming surface your machine or tutorial is using. Older public-site and blog examples often use `deepseek` / `deepseek-tui`; newer upstream examples use `codewhale` / `codewhale-tui`.
The paired-binary rule still matters no matter which name you see: Cargo and manual downloads must provide both the dispatcher and the TUI runtime together. Installing only one binary still fails with `MISSING_COMPANION_BINARY`.
For existing DeepSeek TUI users, the safest operational guidance is to keep the current command surface consistent while you verify the active version, config directory, and API key source. Do not mix a `deepseek-tui` npm install, a CodeWhale GitHub asset, and a copied Docker mount from another release in one setup.
For fresh installs under the renamed upstream project, use the dedicated /codewhale page and the current CodeWhale release docs. That page can lead with `codewhale` without weakening this DeepSeek TUI page's established search topic.
The install contract is stricter than many older blog posts suggest: current Cargo and source-build docs assume Rust 1.88+, manual GitHub Release installs should verify the published checksum manifest, mainland-China users can speed up both npm and release downloads with documented mirror settings, and the npm wrapper documents mirror/fork controls such as `DEEPSEEK_TUI_GITHUB_REPO`, `DEEPSEEK_TUI_RELEASE_BASE_URL`, `DEEPSEEK_TUI_FORCE_DOWNLOAD=1`, and `DEEPSEEK_TUI_OPTIONAL_INSTALL=1` for CI or restricted networks.
When troubleshooting config, check both the DeepSeek TUI-era `.deepseek` path and the newer `.codewhale` path. Which one matters depends on the command and release line installed on that machine.
# DeepSeek TUI search path: first identify the installed command
which deepseek || true
which codewhale || true
# Legacy/public DeepSeek TUI examples may still look like this
npm install -g deepseek-tui
deepseek
# Fresh upstream installs now use the CodeWhale path.
# See /codewhale before copying new package and binary names.
npm install -g codewhale
codewhale
# Homebrew examples can still carry the older tap/package naming.
brew tap Hmbown/deepseek-tui
brew install deepseek-tui
# Cargo requires both crates/binaries to stay paired.
# Install both crates together so the dispatcher and runtime stay paired.
cargo install codewhale-cli codewhale-tui --locked
# Direct download from GitHub Releases
# Visit https://github.com/Hmbown/CodeWhale/releases
# Download BOTH binaries for your platform, verify the SHA-256 manifest,
# chmod +x, and move them into the same PATH directory
# Mirror / CI examples used by the npm wrapper
export DEEPSEEK_TUI_RELEASE_BASE_URL="https://your-mirror.example/releases"
export DEEPSEEK_TUI_GITHUB_REPO="Hmbown/CodeWhale"
export DEEPSEEK_TUI_OPTIONAL_INSTALL=1
# Upgrade with the command/package line you actually installed.
deepseek update
codewhale update
npm install -g codewhale@latest
brew update && brew upgrade deepseek-tui
cargo install codewhale-cli --locked --force
cargo install codewhale-tui --locked --forceSources checked
- CodeWhale releases - Check the latest stable release and published checksum manifest before manual installs.
- CodeWhale install docs - Primary source for install paths, checksum verification, mirror-related environment variables, and the current `.codewhale`-based home layout.
- CodeWhale security policy - Primary source for the latest-stable-only support policy and published advisories.
4. Configure your DeepSeek API key
On first launch you will be prompted for a DeepSeek API key. You can also set it explicitly. The current README says user config lives at ~/.codewhale/config.toml, with ~/.deepseek/config.toml kept only as a legacy fallback. Project-specific overrides now live in <workspace>/.codewhale/config.toml, while <workspace>/.deepseek/config.toml remains compatibility-only (api_key and base_url are still denied at the project level for security).
By default the current DeepSeek Platform provider targets `https://api.deepseek.com/beta`, which lets beta-gated API features work without extra setup. If you need the stable non-beta route, the README now says to set `base_url = "https://api.deepseek.com"` explicitly. A recent 0.8.17 reliability pass also corrected the `deepseek-cn` preset so it defaults to the official DeepSeek host rather than an unofficial typo host, while still recognizing older legacy configs. The TUI also supports NVIDIA NIM, Fireworks, and self-hosted SGLang deployments as alternative providers.
The current docs also make `codewhale doctor` part of the baseline workflow. Use it right after install to confirm that the active credential source, endpoint routing, and local binary pair are all healthy before you start editing code. If a wrapper app or internal tool needs a machine-readable readiness check, the runtime docs now also expose `codewhale doctor --json`.
The newest README wording is more operational about key problems than many older install guides: `codewhale auth status` now shows whether the active key came from saved config, keyring, or `DEEPSEEK_API_KEY`, while `codewhale auth clear --provider deepseek` gives teams a documented way to rotate or remove a saved credential. That matters because saved config keys take precedence over keyring and env vars, so stale shell exports are no longer the only thing to check when a machine uses the wrong account.
# Save your DeepSeek API key (get one from https://platform.deepseek.com)
codewhale auth set --provider deepseek
# Inspect or clear the currently active credential source
codewhale auth status
codewhale auth clear --provider deepseek
# Or use the environment variable
export DEEPSEEK_API_KEY="sk-..."
# Verify everything is wired correctly
codewhale doctor
# List available models on your account
codewhale models5. The three work modes: Plan, Agent, YOLO
DeepSeek TUI gives you three escalating levels of autonomy. You cycle between them with Tab in the TUI, or pass them as flags on the command line.
Plan mode is read-only exploration — the agent can search and read files, but cannot modify anything. Use it to understand unfamiliar code or to let the agent survey a repo before you grant it write access.
Agent mode is the default interactive setting. The agent proposes actions (edit a file, run a command, create a branch) and you approve or deny each one. This is the sweet spot for most development work — you stay in control while the agent does the heavy lifting.
YOLO mode auto-approves every tool call. It is fast but risky. Only use it for well-defined, low-stakes tasks where you trust the outcome, like running a linter you have already configured or applying a repetitive find-and-replace across known files.
| Mode | Reads files | Writes files | Runs commands | Needs approval |
|---|---|---|---|---|
| Plan | Yes | No | No | N/A (read-only) |
| Agent | Yes | Yes | Yes | Each action |
| YOLO | Yes | Yes | Yes | None (auto-approved) |
6. RLM: parallel reasoning with Flash sub-agents
One of the most interesting features is RLM (rlm_query), which farms out 1–16 cheap deepseek-v4-flash child agents to analyze a problem in parallel. The Pro model orchestrates the overall strategy; Flash workers handle the parallel grunt work. This is the "Pro does the big job, Flash does the small jobs" architecture the tool was designed around.
The practical result: you get the reasoning depth of Pro at a fraction of the cost, because the expensive model only coordinates while the cheap model runs the parallel workstreams. This is ideal for codebase-wide refactors, multi-file bug investigations, and batch code reviews.
The latest README also makes the billing model more explicit: the route that actually ran is the one that gets charged. If auto mode escalates from Flash to Pro, cost tracking follows the real routed model rather than the initial router probe, and sub-agents inherit auto mode unless you pin a different model explicitly.
7. Reasoning effort control
DeepSeek V4 Pro supports adjustable reasoning depth. Press Shift+Tab in the TUI to cycle through off → high → max. Recent 0.8.x releases also document an auto mode that picks the reasoning tier based on the prompt content — short factual questions get no extra reasoning, while complex debugging prompts can get deeper reasoning.
This is not a gimmick. Turning reasoning off for simple questions saves tokens and latency. Cranking it to max for hard problems gives the model space to work through multi-step logic before answering.
8. Tool suite: everything the agent can do
DeepSeek TUI ships with a typed tool registry covering the full development workflow. Every tool call is logged and auditable.
| Tool category | What it does |
|---|---|
| File operations | Read, write, and edit files with surgical precision via FIM (fill-in-the-middle) edits |
| Shell execution | Run arbitrary commands with pluggable sandbox backends (local or remote) |
| Git operations | Branch, commit, diff, log — with workspace rollback via side-git snapshots |
| Web search & browse | Search the web and fetch page content for current information |
| Sub-agents | Spawn child agents for parallel exploration of large codebases |
| MCP servers | Connect to Model Context Protocol servers for extended capabilities |
| RLM query | Fan out 1–16 Flash workers for parallel batched reasoning |
| Apply-patch | Apply structured diffs to code without full-file rewrites |
| Skills | Load composable instruction packs from GitHub or local directories |
9. Skills system: installable instruction packs
Skills are directories containing a SKILL.md file with frontmatter (name + description). They are composable, installable from GitHub, and require no backend service. The agent can auto-select skills based on task descriptions via the load_skill tool.
The current README is more explicit about discovery order than many older blog posts: workspace directories are `.agents/skills` → `skills` → `.opencode/skills` → `.claude/skills` → `.cursor/skills`, and global directories are `~/.agents/skills` → `~/.claude/skills` → `~/.codewhale/skills` → `~/.deepseek/skills`. This means many existing Claude Code skill packs can work in DeepSeek TUI with little or no modification, while new installs should treat `.codewhale` as the primary home and `.deepseek` as compatibility only.
# List installed skills
codewhale
# then type /skills in the TUI
# Install a community skill from GitHub
/skill install github:<owner>/<repo>
# Scaffold a new skill
/skill new
# Sync the skill registry
/skills sync10. Session management and rollback
Every turn is automatically snapshotted via a side-git mechanism — a separate git repository that tracks workspace state without touching your project's .git directory. If the agent makes a mess, /restore rolls back to the previous snapshot. The revert_turn tool can undo a single turn without losing the entire session.
Sessions can be saved and resumed later. Long-running sessions support intelligent context compaction that preserves important state while dropping stale turns to stay within token limits. A durable task queue survives restarts for background work.
The newer runtime docs also matter for teams that want to wrap DeepSeek TUI in a local app or editor flow: `codewhale serve --http` starts a localhost HTTP/SSE runtime API, `codewhale serve --acp` exposes an ACP stdio adapter for editor clients, and `codewhale serve --mcp` lets other tools access the DeepSeek tool surface through MCP. The legacy `deepseek serve ...` path still works only as a short-term shim.
# Start interactive session
codewhale
# One-shot question (no TUI)
codewhale "explain this function"
# Resume your most recent session
codewhale resume --last
# List all saved sessions
codewhale sessions
# Machine-readable health for wrapper apps
codewhale doctor --json
# Start a local HTTP/SSE runtime API
codewhale serve --http
# Auto-approve mode for batch tasks
codewhale --yolo "run cargo clippy and fix all warnings"
# Start ACP stdio mode for editor-style clients
codewhale serve --acp11. Cost tracking and optimization
DeepSeek TUI displays live per-turn and session-level token usage with cache hit/miss breakdowns. You always know what you are spending. The current README now says the old promotional discount was folded into a one-quarter base-rate adjustment on May 31, 2026, and that the TUI cost estimator already uses the current V4 Pro and V4 Flash rates. DeepSeek V4 Pro is listed at $0.435/1M input tokens (cache miss) and $0.87/1M output tokens, while cache-hit input drops to just $0.003625/1M tokens.
The RLM feature is designed around this cost structure: Pro coordinates (expensive but brief), Flash workers execute in parallel (cheap and fast). The prefix-cache optimization keeps repeated system prompts and tool definitions in cache, so you only pay the full input rate once per session.
A newer operational detail now belongs in setup docs too: auto mode first makes a small Flash routing call, then bills the model that actually handled the real turn. That makes `deepseek --model auto` easier to trust for teams that want adaptive routing without losing cost attribution.
| Model | Context | Cache-hit input | Cache-miss input | Output |
|---|---|---|---|---|
| deepseek-v4-pro | 1M | $0.003625/1M* | $0.435/1M | $0.87/1M |
| deepseek-v4-flash | 1M | $0.0028/1M | $0.14/1M | $0.28/1M |
12. Keyboard shortcuts you will use every day
The TUI has a shallow learning curve. These are the shortcuts that matter most. Press F1 anytime for a searchable help overlay.
| Key | Action |
|---|---|
| Tab | Complete / or @ entries; queue draft; cycle mode (Plan → Agent → YOLO) |
| Shift+Tab | Cycle reasoning effort: off → high → max → auto |
| Esc | Back / dismiss current panel |
| Ctrl+K | Command palette (search all commands) |
| Ctrl+R | Resume an earlier session |
| Ctrl+S | Stash the current draft |
| Alt+R | Search prompt history, recover cleared drafts |
| @path | Attach a file or directory as context |
| F1 | Searchable help overlay |
| Alt+↑ | Edit the last queued message |
13. How it compares to Claude Code
DeepSeek TUI and Claude Code occupy the same category — terminal coding agents — but make different trade-offs. DeepSeek TUI wins on context window (1M vs ~200K tokens) and cost (1–5% of Claude's per-token price). Claude Code wins on reasoning depth and ecosystem maturity — it ships as a first-party Anthropic product with deeper integration into the Claude model family.
A practical take: if you are doing large-context work (whole-codebase analysis, multi-file refactors, batched reviews), DeepSeek TUI's 1M-token window and parallel Flash workers give you capabilities Claude Code cannot match at any price. For narrower, deeper reasoning tasks, Claude Code's model quality edge still matters.
The two are not mutually exclusive. Several teams run both: DeepSeek TUI for broad, parallel, cost-sensitive work, and Claude Code for tight, reasoning-heavy tasks.
| Capability | DeepSeek TUI | Claude Code |
|---|---|---|
| Context window | 1M tokens | ~200K tokens |
| Cost per 1M output | ~$0.87 (Pro) / $0.28 (Flash) | $15 (Opus) / $3 (Sonnet) |
| Parallel sub-agents | 1–16 Flash workers (RLM) | Manual multi-session |
| Work modes | Plan / Agent / YOLO | Single agent mode |
| Workspace rollback | Side-git snapshots, /restore | Git-based |
| Skills compatibility | Reads .claude/skills path | Native |
| MCP support | Yes | Yes |
| Platform | Rust binary (no runtime dep) | Node.js (npm) |
| License | MIT (community) | Proprietary (Anthropic) |
FAQ
What is the DeepSeek TUI developer website?
The developer website is https://deepseek-tui.com. Use it as the public project landing page, then verify source code, releases, and implementation documentation through the GitHub repository before installing.
What is DeepSeek TUI?
DeepSeek TUI is an open-source terminal coding agent written in Rust. It runs in your terminal and can read/write files, execute shell commands, manage git, search the web, and dispatch parallel sub-agents — all powered by DeepSeek V4's API. Think of it as 'Claude Code, but built for DeepSeek.'
Do I need a DeepSeek API key to use it?
Yes. DeepSeek TUI talks to the DeepSeek API — it does not run models locally. You need an API key from platform.deepseek.com, or a discounted official key from /pricing. Set it with deepseek auth set --provider deepseek or the DEEPSEEK_API_KEY environment variable.
Does it only work with DeepSeek models?
It is optimized for DeepSeek V4 (1M context, thinking-mode streaming, FIM edits), but also supports NVIDIA NIM, Fireworks, and self-hosted SGLang as alternative providers. It does not support Anthropic or OpenAI models.
What does 'Pro does the big job, Flash does the small jobs' mean?
DeepSeek TUI's RLM (rlm_query) feature lets the Pro model act as an orchestrator, dispatching up to 16 Flash workers to analyze sub-tasks in parallel. Pro handles the high-level strategy; Flash workers do the cheaper, parallel grunt work. This gives you Pro-level reasoning quality at a much lower total cost.
Is DeepSeek TUI the same as the DeepSeek web chat?
No. The web chat is a conversational interface. DeepSeek TUI is a coding agent — it can read your project files, edit code, run commands, manage git, and use tools. It is a development tool, not a chat bot.
Can I use it instead of Claude Code?
For many tasks, yes — especially large-context work, parallel analysis, and cost-sensitive projects. For narrower tasks requiring the deepest reasoning, Claude Code's model quality edge still matters. Many teams use both: DeepSeek TUI for breadth, Claude Code for depth.
How do I install it in China with slow GitHub access?
Set `DEEPSEEK_TUI_RELEASE_BASE_URL` to a mirror URL for prebuilt binaries, and if npm itself is slow switch to an npm mirror such as npmmirror. Cargo users can configure the TUNA registry mirror. The install docs also expose `DEEPSEEK_TUI_GITHUB_REPO` for forked release sources and `DEEPSEEK_TUI_OPTIONAL_INSTALL=1` for CI jobs where a failed binary download should not abort the whole npm install.
Can I check which credential source DeepSeek TUI is actually using?
Yes. Run the auth status command for the binary installed on that machine: older DeepSeek TUI setups may use `deepseek auth status`, while fresh CodeWhale setups use `codewhale auth status`. The point is to see whether the active key is coming from saved config, keyring, or `DEEPSEEK_API_KEY`.
Is DeepSeek TUI being renamed to CodeWhale?
Yes. CodeWhale is the renamed upstream project and fresh-install surface. DeepSeek TUI remains the legacy public/search-facing name, so this guide explains the transition without making CodeWhale the headline topic of the DeepSeek TUI URL.
Does DeepSeek TUI support Nix now?
Yes. The current official install docs include a Nix path with `nix run github:Hmbown/CodeWhale` plus flake examples. It is still an install surface, not a different product branch, but it gives Nix and NixOS users a first-party documented path instead of a community-only workaround.
Is it safe to use in YOLO mode?
YOLO mode auto-approves every tool call — it will edit files, run commands, and make git changes without asking. Use it only for well-defined, low-stakes tasks. For everyday work, stick to Agent mode where you approve each action. The side-git rollback feature provides a safety net if things go wrong.
DeepSeek TUI remains one of the strongest DeepSeek-first terminal agents. The key editorial rule is simple: keep DeepSeek TUI as the headline for this legacy/search-facing page, then route fresh CodeWhale package and binary instructions to /codewhale. That split helps readers avoid mixed setup commands and gives crawlers a cleaner topic boundary.
Related model comparisons
Continue from this guide into structured DeepSeek-first comparison pages with model tables, routing advice, and pricing context.