DeepSeek CLI
A terminal interface for the DeepSeek platform.
Current release: v0.3.21.
Not affiliated with DeepSeek Inc.
DeepSeek CLI lets you run and control DeepSeek models from your terminal with file editing, shell execution, web lookup, task orchestration, and sub-agent workflows. Works with DeepSeek v3.2 (chat + reasoner). Ready for v4.
Getting started
- Install
# 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 install --path . --locked
- Add API key
Create ~/.deepseek/config.toml:
api_key = "YOUR_DEEPSEEK_API_KEY"
- Run
deepseek
Use Tab to switch modes, F1 for help, and Esc to cancel a running request.
Modes
| Mode | Behavior | Approval |
|---|---|---|
Plan |
Design-first, proposes a plan first | Manual for writes and shell |
Agent |
Multi-step autonomous tool use | File writes auto-approved, shell is manual |
YOLO |
Full auto-approve | All tools auto-approved |
Use /set mode normal to return to manual mode for all actions.
What it can do
- Workspace file operations: read, edit, search, and patch files
- Shell execution with timeout and interactive support
- Web search and content capture with citations
- Git inspection, task lists, and PR/issue workflows
- Sub-agent orchestration and background execution
- MCP integration for external tool servers
- Runtime API (
deepseek serve --http) for external clients
Key commands
deepseek # interactive mode
deepseek -p "Explain ... in 2 sentences" # one-shot prompt
deepseek exec --auto "Fix all clippy warnings in this project" # agentic execution
deepseek serve --http # start local runtime API
deepseek models # list available models
deepseek doctor # environment and config checks
Configuration
Defaults can be stored in ~/.deepseek/config.toml:
api_key = "sk-..."
default_text_model = "deepseek-reasoner" # optional (or "deepseek-chat")
allow_shell = true # optional (sandboxed by default)
max_subagents = 3 # optional (1-20)
Overrides:
DEEPSEEK_API_KEY(API key; highest priority)DEEPSEEK_BASE_URL(default:https://api.deepseek.com)
See config.example.toml and docs/CONFIGURATION.md.
API Runtime
deepseek serve --http starts a local HTTP/SSE service on 127.0.0.1:7878 for multi-turn conversations, task queues, and event streaming.
See docs/RUNTIME_API.md.
Docs
- Configuration Reference
- Architecture
- Mode Comparison
- MCP Integration
- Runtime API
- Operations Runbook
- Contributing
Development
cargo build
cargo test
cargo clippy
cargo fmt
Contributors
- Hunter Bown (
@Hmbown)
License
MIT
DeepSeek is a trademark of DeepSeek Inc. This is an unofficial, community-run project.
