* Polish UI, fix bugs, and rewrite README for clarity
- Fix welcome banner generating a fake session ID (random UUID that
didn't match the actual session); now shows tips and omits the
misleading session line
- Fix footer redundancy: mode and model were shown in both the header
and footer; footer now shows session ID, token count, and help hint
- Fix STATUS_SUCCESS and STATUS_WARNING being the same color
(both DEEPSEEK_SKY), making success/warning states indistinguishable;
success is now green, warning is amber
- Remove unprofessional thinking tagline ("You're absolutely right!
... maybe."); replaced with professional labels
- Fix README mode cycle documentation (said Normal->Plan->Agent->YOLO
but code actually cycles Plan->Agent->YOLO->Plan)
- Fix README tool miscategorization: web.run, web_search,
request_user_input, and multi_tool_use.parallel were listed under
"File Operations" instead of their own categories
- Rewrite README with numbered getting-started steps, keyboard
shortcuts table, cleaner tool categories, environment variable table,
and compact troubleshooting table
- Remove unused imports (chrono::Local, uuid::Uuid, Color, Modifier)
and dead code (mode_color, mode_badge_style)
https://claude.ai/code/session_011XiGZRhainhyvZ8BKKrfzj
* Update src/tui/app.rs
* Update README.md
6.7 KiB
DeepSeek CLI
An unofficial terminal UI and CLI for the DeepSeek platform.
Chat with DeepSeek models directly from your terminal. The assistant can read and write files, run shell commands, search the web, manage tasks, and coordinate sub-agents — all with configurable approval gating.
Not affiliated with DeepSeek Inc.
Getting Started
1. Install
Choose one of:
# From crates.io (requires Rust 1.85+)
cargo install deepseek-tui --locked
# Or build from source
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
cargo build --release
# binary is at ./target/release/deepseek
Prebuilt binaries are also available on GitHub Releases.
2. Set your API key
Get a key from platform.deepseek.com, then:
export DEEPSEEK_API_KEY="sk-..."
Alternatively, run deepseek and the onboarding wizard will prompt you to enter and save the key.
3. Run
deepseek
On first launch the TUI opens in Agent mode. Press Tab to switch modes, F1 or type /help to see all commands, and Esc to cancel a running request.
4. Optional setup
# Bootstrap MCP server config and skills templates
deepseek setup
# Verify your environment
deepseek doctor
Keyboard Shortcuts
| Key | Action |
|---|---|
Enter |
Send message |
Alt+Enter / Ctrl+J |
Insert newline |
Tab |
Cycle modes (Plan / Agent / YOLO) |
Esc |
Cancel request / clear input |
Ctrl+C |
Cancel request or exit |
Ctrl+R |
Search past sessions |
F1 or Ctrl+/ |
Toggle help overlay |
PageUp / PageDown |
Scroll transcript |
Alt+Up / Alt+Down |
Scroll transcript (small) |
l (empty input) |
Open last message in pager |
Modes
Press Tab to cycle modes: Plan -> Agent -> YOLO -> Plan.
| Mode | Description | Approvals |
|---|---|---|
| Plan | Design-first prompting; produces a plan before implementing | Manual for writes and shell |
| Agent | Multi-step autonomous tool use | Auto-approve file writes, manual for shell |
| YOLO | Full auto-approve (use with caution) | All tools auto-approved |
Normal mode is also available (chat-only with manual approval for everything) and can be selected via Esc from Agent mode or /set mode normal.
Override approval behavior at runtime: /set approval_mode auto|suggest|never.
Tools
The model has access to 25+ tools across these categories:
File Operations
list_dir/read_file/write_file/edit_file— basic file I/O within the workspaceapply_patch— apply unified diffs with fuzzy matchinggrep_files/file_search— search files by regex or name
Shell Execution
exec_shell— run commands with timeout support and background executionexec_shell_wait/exec_shell_interact— wait on or send input to running commands
Web
web.run— multi-command browser (search / open / click / find / screenshot / image_query) with citation supportweb_search— quick DuckDuckGo search when citations are not needed
Task Management
todo_write— create and track task lists with statusupdate_plan— structured implementation plansnote— persistent cross-session notes
Sub-Agents
agent_spawn/agent_swarm— launch background agents or dependency-aware swarmsagent_result/agent_list/agent_cancel— manage running agents
Structured Data
weather/finance/sports/time/calculator
Interaction
request_user_input— ask the user structured or multiple-choice questionsmulti_tool_use.parallel— execute multiple read-only tools in parallel
All file tools respect the --workspace boundary unless /trust is enabled (YOLO enables trust automatically). MCP tools execute without TUI approval prompts, so only enable servers you trust.
Configuration
The TUI stores its config at ~/.deepseek/config.toml:
api_key = "sk-..."
default_text_model = "deepseek-reasoner" # optional
allow_shell = false # optional
max_subagents = 3 # optional (1-20)
Environment Variables
| Variable | Purpose |
|---|---|
DEEPSEEK_API_KEY |
API key (overrides config file) |
DEEPSEEK_BASE_URL |
API endpoint (default: https://api.deepseek.com) |
DEEPSEEK_PROFILE |
Select a [profiles.<name>] section from config |
DEEPSEEK_CONFIG_PATH |
Override config file location |
Additional overrides: DEEPSEEK_MCP_CONFIG, DEEPSEEK_SKILLS_DIR, DEEPSEEK_NOTES_PATH, DEEPSEEK_MEMORY_PATH, DEEPSEEK_ALLOW_SHELL, DEEPSEEK_MAX_SUBAGENTS.
See config.example.toml and docs/CONFIGURATION.md for the full reference.
Examples
# Interactive chat (default)
deepseek
# One-shot prompt (non-interactive, prints and exits)
deepseek -p "Explain the borrow checker in two sentences"
# Agentic execution with auto-approve
deepseek exec --auto "Fix all clippy warnings in this project"
# Resume latest session
deepseek --continue
# Work on a specific project directory
deepseek --workspace /path/to/project
# Review staged git changes
deepseek review --staged
# List saved sessions
deepseek sessions --limit 50
# Shell completions
deepseek completions zsh > _deepseek
deepseek completions bash > deepseek.bash
deepseek completions fish > deepseek.fish
Troubleshooting
| Problem | Fix |
|---|---|
| No API key | Set DEEPSEEK_API_KEY or run deepseek to complete onboarding |
| Config not found | Check ~/.deepseek/config.toml (or DEEPSEEK_CONFIG_PATH) |
| Wrong region | Set DEEPSEEK_BASE_URL to https://api.deepseeki.com (China) |
| Session issues | Run deepseek sessions then deepseek --resume latest |
| Skills missing | Run deepseek setup --skills (add --local for workspace-local) |
| MCP tools missing | Run deepseek mcp init, then restart |
| Sandbox errors (macOS) | Run deepseek doctor to confirm sandbox availability |
Documentation
Development
cargo build
cargo test
cargo clippy
cargo fmt
See CONTRIBUTING.md for detailed guidelines.
License
MIT
DeepSeek is a trademark of DeepSeek Inc. This is an unofficial, community-driven project.