- Bump workspace version to 0.7.6 (Cargo.toml + all crate internal dep pins) - Bump npm wrapper version and deepseekBinaryVersion to 0.7.6 - Add v0.7.6 changelog entry: localization, paste burst, history search, pending input preview, grouped /config editor, searchable help overlay, Alt+↑ edit-last-queued, composer attachment management - Update README with v0.7.6 features (localization, paste, history search) - Archive v0.7.5 implementation plan to docs/archive/ - Update Cargo.lock
DeepSeek TUI
A terminal-native coding agent for DeepSeek V4 models — with 1M-token context, thinking-mode reasoning, and full tool-use.
npm i -g deepseek-tui
What is it?
DeepSeek TUI is a coding agent that runs entirely in your terminal. It gives DeepSeek's frontier models direct access to your workspace — reading and editing files, running shell commands, searching the web, managing git, and orchestrating sub-agents — all through a fast, keyboard-driven TUI.
Built for DeepSeek V4 (deepseek-v4-pro / deepseek-v4-flash) with 1M-token context windows and native thinking-mode (chain-of-thought) streaming. See the model's reasoning unfold in real time as it works through your tasks.
Key Features
- Native RLM (
rlm_querytool) — fans out 1–16 cheapdeepseek-v4-flashchildren in parallel against the existing DeepSeek client for batched analysis, decomposition, or parallel reasoning - Thinking-mode streaming — shows DeepSeek's chain-of-thought as it reasons about your code
- Full tool suite — file ops, shell execution, git, web search/browse, apply-patch, sub-agents, MCP servers
- 1M-token context — automatic intelligent compaction when context fills up
- Three interaction modes — Plan (read-only explore), Agent (interactive with approval), YOLO (auto-approved). Decomposition-first system prompts teach the model to
checklist_write,update_plan, and spawn sub-agents before acting - Reasoning-effort tiers — cycle through
off → high → maxwith Shift+Tab - Session save/resume — checkpoint and resume long sessions
- Workspace rollback — side-git pre/post-turn snapshots with
/restoreandrevert_turn, without touching your repo's.git - HTTP/SSE runtime API —
deepseek serve --httpfor headless agent workflows - MCP protocol — connect to Model Context Protocol servers for extended tooling; see docs/MCP.md
- Live cost tracking — per-turn and session-level token usage and cost estimates
- Dark theme — DeepSeek-blue palette
Quickstart
npm install -g deepseek-tui
deepseek
On first launch you'll be prompted for your DeepSeek API key. You can also set it ahead of time:
# via CLI
deepseek login --api-key "YOUR_DEEPSEEK_API_KEY"
# via env var
export DEEPSEEK_API_KEY="YOUR_DEEPSEEK_API_KEY"
deepseek
Using NVIDIA NIM
deepseek auth set --provider nvidia-nim --api-key "YOUR_NVIDIA_API_KEY"
deepseek --provider nvidia-nim
# or per-process:
DEEPSEEK_PROVIDER=nvidia-nim NVIDIA_API_KEY="..." deepseek
Other DeepSeek V4 providers
deepseek auth set --provider fireworks --api-key "YOUR_FIREWORKS_API_KEY"
deepseek --provider fireworks --model deepseek-v4-pro
# SGLang is self-hosted; auth is optional for localhost deployments.
SGLANG_BASE_URL="http://localhost:30000/v1" deepseek --provider sglang --model deepseek-v4-flash
Install from source
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
cargo install --path crates/tui --bin deepseek-tui --locked # requires Rust 1.85+
cargo install --path crates/cli --bin deepseek --locked
What's new in v0.7.6
🌐 UI Localization
DeepSeek TUI now speaks your language. The new locale setting
in settings.toml controls UI chrome — composer, history search,
/config, help overlay, and status hints — without changing model
output language.
| Setting | Display |
|---|---|
locale = \"auto\" |
Checks LC_ALL → LC_MESSAGES → LANG (default) |
locale = \"ja\" |
Japanese |
locale = \"zh-Hans\" |
Chinese Simplified |
locale = \"pt-BR\" |
Portuguese (Brazil) |
locale = \"en\" |
English fallback |
Unsure what to pick? Run locale in your terminal; the first matching
tag is used automatically.
📋 Smarter paste handling
Paste-burst detection catches rapid-key pastes in terminals that don't
send bracketed-paste events — CRLF is normalized, and multiline pastes
stay buffered until you stop typing. Configurable via paste_burst_detection.
🔍 Composer history search
Forgot that prompt you wrote an hour ago? Alt+R opens a live search
across input history and recovered drafts. Type to filter, Enter to
accept, Esc to restore what you were typing.
👁️ Pending input preview
During a running turn, queued messages, pending steers, and context chips
appear above the composer so you can see what will be sent next.
Alt+↑ pops the last queued message back for editing.
⚙️ Grouped /config editor
/config now groups settings by section (Model, Permissions, Display,
...) with a live filter. ↑/↓ (or j/k when the filter is empty)
navigate; Enter/e edit the selected row; Esc clears the filter
or closes.
⌨️ Searchable help overlay
? (with empty input), F1, or Ctrl+/ opens a searchable help
overlay. Type to filter commands and keybindings; multi-term searches
act as AND.
Full history: CHANGELOG.md.
Models & Pricing
DeepSeek TUI targets DeepSeek V4 models with 1M-token context windows by default.
| Model | Context | Input (cache hit) | Input (cache miss) | 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 |
Legacy aliases deepseek-chat and deepseek-reasoner silently map to deepseek-v4-flash.
NVIDIA NIM hosted variants (deepseek-ai/deepseek-v4-pro, deepseek-ai/deepseek-v4-flash) use your NVIDIA account terms — no DeepSeek platform billing.
*DeepSeek lists the Pro rates above as a limited-time 75% discount valid until 2026-05-05 15:59 UTC; the TUI cost estimator falls back to base Pro rates after that timestamp.
Usage
deepseek # interactive TUI
deepseek "explain this function" # one-shot prompt
deepseek --model deepseek-v4-flash "summarize" # model override
deepseek --yolo # YOLO mode (auto-approve tools)
deepseek login --api-key "..." # save API key
deepseek doctor # check setup & connectivity
deepseek doctor --json # machine-readable diagnostics
deepseek setup --status # read-only setup status
deepseek setup --tools --plugins # scaffold local tool/plugin dirs
deepseek models # list live API models
deepseek sessions # list saved sessions
deepseek resume --last # resume latest session
deepseek serve --http # HTTP/SSE API server
deepseek mcp list # list configured MCP servers
deepseek mcp validate # validate MCP config/connectivity
deepseek mcp-server # run dispatcher MCP stdio server
Keyboard shortcuts
| Key | Action |
|---|---|
Tab |
Complete / or @ entries; while a turn is running, queue the draft as a follow-up; otherwise cycle mode |
Shift+Tab |
Cycle reasoning-effort: off → high → max |
F1 |
Help |
Esc |
Back / dismiss |
Ctrl+K |
Command palette |
Ctrl+R |
Resume an earlier session |
Alt+R |
Search prompt history and recover cleared drafts |
@path |
Attach file/directory context in composer |
↑ (at composer start) |
Select attachment row for removal |
Alt+↑ |
Edit last queued message |
/attach <path> |
Attach image/video media references; select the row with ↑ at composer start and remove with Backspace/Delete |
Modes
| Mode | Behavior |
|---|---|
| Plan 🔍 | Read-only investigation — model explores and proposes a decomposition plan (update_plan + checklist_write) before making changes |
| Agent 🤖 | Default interactive mode — multi-step tool use with approval gates; model outlines work via checklist_write before requesting writes |
| YOLO ⚡ | Auto-approve all tools in a trusted workspace; model still creates checklist_write/update_plan to keep work visible and trackable |
Configuration
~/.deepseek/config.toml — see config.example.toml for every option.
Key environment overrides:
| Variable | Purpose |
|---|---|
DEEPSEEK_API_KEY |
API key |
DEEPSEEK_BASE_URL |
API base URL |
DEEPSEEK_MODEL |
Default model |
DEEPSEEK_PROVIDER |
Provider: deepseek (default), nvidia-nim, fireworks, or sglang |
DEEPSEEK_PROFILE |
Config profile name |
NVIDIA_API_KEY |
NVIDIA NIM API key |
FIREWORKS_API_KEY |
Fireworks AI API key |
SGLANG_BASE_URL |
Self-hosted SGLang endpoint |
SGLANG_API_KEY |
Optional SGLang bearer token |
Quick diagnostics: deepseek setup --status checks API key, MCP, sandbox, and
.env state without network calls; deepseek doctor --json is suitable for CI;
deepseek setup --tools --plugins scaffolds local tool and plugin directories.
DeepSeek context caching is automatic — when the API returns cache hit/miss token fields, the TUI includes them in usage and cost tracking.
Full reference: docs/CONFIGURATION.md and docs/MCP.md.
UI locale is separate from model language — set locale in settings.toml
or via the LC_ALL/LANG environment variables. See docs/CONFIGURATION.md.
Publishing your own skill
DeepSeek-TUI can install community skills directly from a GitHub repo, with no backend service in the loop:
- Create a public GitHub repo with a
SKILL.mdat the root containing the usual---frontmatter (name,description). - Multi-skill bundles use
skills/<name>/SKILL.mdinstead — the installer picks the first match and names the install after the frontmattername. - Push to
main(ormaster); the installer fetchesarchive/refs/heads/main.tar.gzand falls back tomaster.tar.gz. - Users install via
/skill install github:<owner>/<repo>— installs are gated by the[network]policy, validated for path traversal and size, and placed under~/.deepseek/skills/<name>/. - Submit a PR to the curated
index.json(default registry) to make the skill installable by name (/skill install <name>) instead of the GitHub spec.
Documentation
| Doc | Topic |
|---|---|
| ARCHITECTURE.md | Codebase internals |
| CONFIGURATION.md | Full config reference |
| MODES.md | Plan / Agent / YOLO modes |
| MCP.md | Model Context Protocol integration |
| RUNTIME_API.md | HTTP/SSE API server |
| RELEASE_RUNBOOK.md | Release process |
| OPERATIONS_RUNBOOK.md | Ops & recovery |
Contributing
See CONTRIBUTING.md. Pull requests welcome!
Not affiliated with DeepSeek Inc.
