A terminal-native TUI and CLI for DeepSeek models, built in Rust.
For DeepSeek models (current and future model IDs). Not affiliated with DeepSeek Inc.
A terminal-native agent loop that gives DeepSeek the tools it needs to actually write code: file editing, shell execution, web search, git operations, task tracking, and MCP server integration. Coherence-aware memory compaction keeps long sessions on track without blowing up the context window.
Three modes:
- Plan — design-first, proposes before acting
- Agent — multi-step autonomous tool use
- YOLO — full auto-approve, no guardrails (preloads tools by default)
Recent highlights: workspace architecture (modular crates mirroring Codex layout), sub-agent orchestration (background workers, parallel tool calls, dependency-aware swarms), parallel tool execution (multi_tool_use.parallel), runtime HTTP/SSE API (deepseek serve --http), background task queue (/task), interactive configuration (/config), model discovery (/models), command palette (Ctrl+K), expandable tool payloads (v), persistent sidebar for live plan/todo/sub-agent state, and model context-window suffix hints (-32k, -256k).
# From crates.io (requires Rust 1.85+)
cargo install deepseek-tui --locked
# Or from source
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
cargo install --path crates/tui --locked # TUI (interactive terminal)
cargo install --path crates/cli --locked # CLI (dispatcher + server)Create ~/.deepseek/config.toml:
api_key = "YOUR_DEEPSEEK_API_KEY"Then run:
deepseek-tui # interactive TUI
# or
deepseek # CLI dispatcher (delegates to deepseek-tui for interactive use)Tab switches modes, F1 opens help, Esc cancels a running request.
deepseek-tui # interactive TUI
deepseek-tui -p "explain this in 2 sentences" # one-shot prompt
deepseek-tui --yolo # agent mode, all tools auto-approved
deepseek doctor # check your setup
deepseek models # list available models
deepseek serve --http # start HTTP/SSE API serverWithin the TUI, use /config, /models, /task, and Ctrl+K command palette.
crates/
cli/ deepseek-cli → deepseek CLI dispatcher + server
tui/ deepseek-tui → deepseek-tui Interactive terminal UI
app-server/ deepseek-app-server HTTP/SSE + JSON-RPC server
core/ deepseek-core Agent loop + engine
protocol/ deepseek-protocol Request/response framing
config/ deepseek-config Configuration + profiles
state/ deepseek-state SQLite session persistence
tools/ deepseek-tools Tool registry + specs
mcp/ deepseek-mcp MCP server integration
hooks/ deepseek-hooks Lifecycle hooks
execpolicy/ deepseek-execpolicy Approval policy engine
agent/ deepseek-agent Model/provider registry
tui-core/ deepseek-tui-core TUI state machine scaffold
Common model IDs: deepseek-chat, deepseek-reasoner.
Any valid deepseek-* model ID is accepted (including future releases). Model IDs can include context-window suffix hints (-32k, -256k). To see live IDs from your configured endpoint:
deepseek modelsEverything lives in ~/.deepseek/config.toml. See config.example.toml for the full set of options.
Common environment overrides: DEEPSEEK_API_KEY, DEEPSEEK_BASE_URL, DEEPSEEK_CONFIG_PATH, DEEPSEEK_PROFILE, DEEPSEEK_ALLOW_SHELL, DEEPSEEK_TRUST_MODE, and DEEPSEEK_CAPACITY_*.
For the full config/env matrix (profiles, feature flags, capacity tuning, sandbox controls), see docs/CONFIGURATION.md.
Detailed docs are in the docs/ folder — architecture, modes, MCP integration, runtime API, etc.
MIT
