DeepSeek CLI 🤖
Your AI-powered terminal companion for DeepSeek models
Unofficial terminal UI (TUI) + CLI for the DeepSeek platform — chat with DeepSeek models and collaborate with AI assistants that can read, write, execute, and plan with approval-gated tool access.
Not affiliated with DeepSeek Inc.
✨ Features
- Interactive TUI with multiple modes (Normal, Plan, Agent, YOLO)
- Comprehensive tool access – File operations, shell execution, task management, and sub-agent systems
- File operations: List directories, read/write/edit files, apply patches, search files with regex
- Shell execution: Run commands with timeout support, background execution with task management
- Task management: Todo lists, implementation plans, persistent notes
- Sub-agent system: Spawn, coordinate, and cancel background agents (including swarms)
- User input prompts: Ask structured, multiple-choice questions during tool flows
- Web browsing:
web.runsearch/open/click/find/screenshot with citation-ready sources - Structured data tools: weather, finance, sports, time, calculator
- Multi‑model support – DeepSeek‑Reasoner, DeepSeek‑Chat, and other DeepSeek models
- Context‑aware – loads project‑specific instructions from
AGENTS.md - Session management – resume, fork, and search past conversations
- Skills system – reusable workflows stored as
SKILL.mddirectories - Model Context Protocol (MCP) – integrate external tool servers
- Sandboxed execution (macOS) for safe shell commands
- Git integration – code review, patch application, diff analysis
- Cross‑platform – works on macOS, Linux, and Windows
🚀 Quick Start
- Get an API key from https://platform.deepseek.com
- Install and run:
# Install via Cargo
# Set your API key
# Bootstrap MCP + skills templates (recommended)
# Start chatting
- Press
F1or type/helpfor the in‑app command list.
If anything looks off, run deepseek doctor to diagnose configuration issues.
📦 Installation
From crates.io
Build from source
Direct download
Download a prebuilt binary from GitHub Releases and put it on your PATH as deepseek.
⚙️ Configuration
On first run, the TUI can prompt for your API key and save it to ~/.deepseek/config.toml. You can also create the file manually:
# ~/.deepseek/config.toml
= "YOUR_DEEPSEEK_API_KEY" # must be non‑empty
= "deepseek-reasoner" # optional
= false # optional
= 3 # optional (1‑20)
Useful environment variables:
DEEPSEEK_API_KEY(overridesapi_key)DEEPSEEK_BASE_URL(default:https://api.deepseek.com; China users may usehttps://api.deepseeki.com)DEEPSEEK_PROFILE(selects[profiles.<name>]from the config; errors if missing)DEEPSEEK_CONFIG_PATH(override config path)DEEPSEEK_MCP_CONFIG,DEEPSEEK_SKILLS_DIR,DEEPSEEK_NOTES_PATH,DEEPSEEK_MEMORY_PATH,DEEPSEEK_ALLOW_SHELL,DEEPSEEK_MAX_SUBAGENTS
To bootstrap MCP and skills at their resolved locations, run deepseek setup. To
only create an MCP template, run deepseek mcp init.
See config.example.toml and docs/CONFIGURATION.md for a full reference.
🎮 Modes
In the TUI, press Tab to cycle modes: Normal → Plan → Agent → YOLO → Normal.
| Mode | Description | Approval Behavior |
|---|---|---|
| Normal | Chat; asks before file writes or shell | Manual approval for writes & shell |
| Plan | Design‑first prompting; same approvals as Normal | Manual approval for writes & shell |
| Agent | Multi‑step tool use; asks before shell | Manual approval for shell, auto‑approve file writes |
| YOLO | Enables shell + trust + auto‑approves all tools (dangerous) | Auto‑approve all tools |
| Approval behavior is mode‑dependent, but you can also override it at runtime with `/set approval_mode auto | suggest | never`. |
🛠️ Tools
DeepSeek CLI exposes a comprehensive set of tools to the model across 5 categories, with 16+ individual tools available, all with approval gating based on the current mode.
Tool Categories
File Operations
list_dir– List directory contents with file/directory metadataread_file– Read UTF‑8 files from the workspacewrite_file– Create or overwrite filesedit_file– Search and replace text in filesapply_patch– Apply unified diff patches with fuzzy matchinggrep_files– Search files by regex pattern with context linesweb.run– Browse the web (search/open/click/find/screenshot) with ref_ids for citationsweb_search– Quick web search (fallback when citations are not needed)request_user_input– Ask the user short multiple-choice questionsmulti_tool_use.parallel– Execute multiple read-only tools in parallel
Structured Data
weather– Daily weather forecast for a locationfinance– Latest price for a stock, fund, index, or cryptocurrencysports– Schedules or standings for a leaguetime– Current time for a UTC offsetcalculator– Evaluate arithmetic expressions
Shell Execution
exec_shell– Run shell commands with timeout support- Background execution – Run commands in background with task ID return
Task Management
todo_write– Create and update todo lists with status trackingupdate_plan– Manage structured implementation plansnote– Append persistent notes across sessions
Sub‑Agents
agent_spawn– Create background sub‑agents for focused tasksagent_swarm– Launch a dependency‑aware swarm of sub‑agentsagent_result– Retrieve results from sub‑agentsagent_list– List all active and completed agentsagent_cancel– Cancel running sub‑agents
System Behavior
- Workspace boundary: File tools are restricted to
--workspaceunless you enable/trust(YOLO enables trust automatically). - Approvals: The TUI requests approval depending on mode and tool category (file writes, shell).
- Web browsing:
web.runuses DuckDuckGo HTML results and is auto‑approved. - Web search:
web_searchis a quick fallback when citations are not needed. - Skills: Reusable workflows stored as
SKILL.mddirectories. The resolved skills dir prefers workspace-local.agents/skills, then./skills, then~/.deepseek/skills. Use/skillsand/skill <name>. Bootstrap withdeepseek setup --skills(add--localfor./skills). - MCP: Load external tool servers via
~/.deepseek/mcp.json(supportsserversandmcpServers). MCP tools currently execute without TUI approval prompts, so only enable servers you trust. Seedocs/MCP.md.
📚 Examples
Interactive chat
One‑shot prompt (non‑interactive)
Agentic execution with tool access
Resume latest session
Work on a specific project
Review staged git changes
Apply a patch file
List saved sessions
Generate shell completions
đź”§ Troubleshooting
No API key
Set DEEPSEEK_API_KEY environment variable or run deepseek and complete onboarding.
Config not found
Check ~/.deepseek/config.toml (or DEEPSEEK_CONFIG_PATH).
Wrong region / base URL
Set DEEPSEEK_BASE_URL to https://api.deepseeki.com (China).
Session issues
Run deepseek sessions and try deepseek --resume latest.
Skills missing
Run deepseek setup --skills to create a global skills directory, or add --local
to create ./skills for the current workspace. If you want the preferred
workspace-local path, create .agents/skills manually. Then run deepseek doctor
to see which skills directory is selected.
MCP tools missing
Run deepseek mcp init (or deepseek setup --mcp), then restart. deepseek doctor
now checks the MCP path resolved from your config/env overrides.
Sandbox errors (macOS)
Run deepseek doctor to confirm sandbox availability. On macOS, ensure
/usr/bin/sandbox-exec exists. For other platforms, sandboxing is limited.
đź“– Documentation
docs/CONFIGURATION.md– Complete configuration referencedocs/MCP.md– Model Context Protocol guidedocs/ARCHITECTURE.md– Project architecturedocs/MODES.md– Mode comparison and usageCONTRIBUTING.md– How to contribute to the project
đź§Ş Development
See CONTRIBUTING.md for detailed guidelines.
đź“„ License
MIT
DeepSeek is a trademark of DeepSeek Inc. This is an unofficial project.