DeepSeek TUI 是一个完全运行在终端里的编程智能体
面向 DeepSeek V4 的终端原生编程智能体:100 万 token 上下文、思考模式流式推理、前缀缓存感知。自包含 Rust 二进制发布——开箱即带 MCP 客户端、沙箱和持久化任务队列。

安装
deepseek 是自包含 Rust 二进制——运行时不依赖 Node.js 或 Python。 下面几种方式装出来的是同一套二进制,按你已有的工具链选一个即可:
# 1. npm —— 已装 Node 的最方便方式。npm 包只是一个下载器,
# 会从 GitHub Releases 拉取对应平台的预编译二进制,
# 并不会让 deepseek 本身依赖 Node 运行时。
npm install -g deepseek-tui
# 2. Cargo —— 无需 Node。
cargo install deepseek-tui-cli --locked # `deepseek` 入口
cargo install deepseek-tui --locked # `deepseek-tui` TUI 二进制
# 3. Homebrew —— macOS 包管理器。
brew tap Hmbown/deepseek-tui
brew install deepseek-tui
# 4. 直接下载 —— 无需任何工具链。
# https://github.com/Hmbown/DeepSeek-TUI/releases
# 覆盖 Linux x64/ARM64、macOS x64/ARM64、Windows x64
# 5. Docker —— 预构建发布镜像。
docker run --rm -it \
-e DEEPSEEK_API_KEY \
-v "$PWD:/workspace" \
ghcr.io/hmbown/deepseek-tui:latest
中国大陆访问较慢时,npm 可加
--registry=https://registry.npmmirror.com, 或使用下方的 Cargo 镜像。DeepSeek TUI 是一个完全运行在终端里的编程智能体。它让 DeepSeek 前沿模型直接访问你的工作区:读写文件、运行 shell 命令、搜索浏览网页、管理 git、调度子智能体——全部通过快速、键盘驱动的 TUI 完成。
它面向 DeepSeek V4(
deepseek-v4-pro/deepseek-v4-flash)构建,原生支持 100 万 token 上下文窗口和思考模式流式输出。主要功能:
- 原生 RLM(
rlm_query)—— 利用现有 API 客户端并行调度 1-16 个低成本deepseek-v4-flash子任务,用于批量分析和并行推理- 思考模式流式输出 —— 实时观察模型在解决问题时的思维链展开
- 完整工具集 —— 文件操作、shell 执行、git、网页搜索/浏览、apply-patch、子智能体、MCP 服务器
- 100 万 token 上下文 —— 上下文接近上限时自动智能压缩,支持前缀缓存感知以降低成本
- 三种交互模式 —— Plan(只读探索)、Agent(带审批的默认交互)、YOLO(可信工作区自动批准)
- 推理强度档位 —— 用
Shift+Tab在off → high → max之间切换- 会话保存和恢复 —— 长任务的断点续作
- 工作区回滚 —— 通过 side-git 记录每轮前后快照,支持
/restore和revert_turn,不影响项目自己的.git- 持久化任务队列 —— 后台任务在重启后仍然存在,支持计划任务和长时间运行的操作
- HTTP/SSE 运行时 API ——
deepseek serve --http用于无界面智能体流程- MCP 协议 —— 连接 Model Context Protocol 服务器扩展工具,见 docs/MCP.md
- LSP 诊断 —— 每次编辑后通过 rust-analyzer、pyright、typescript-language-server、gopls、clangd 提供内联错误/警告
- 用户记忆 —— 可选的持久化笔记文件注入系统提示,实现跨会话偏好保持
- 多语言 UI —— 支持
en、ja、zh-Hans、pt-BR,支持自动检测- 实时成本跟踪 —— 按轮次和会话统计 token 用量与成本估算,含缓存命中/未命中明细
- 技能系统 —— 可通过 GitHub 安装的组合式指令包,无需后端服务
架构说明:
deepseek(调度器 CLI)→deepseek-tui(伴随二进制)→ ratatui 界面 ↔ 异步引擎 ↔ OpenAI 兼容流式客户端。工具调用通过类型化注册表(shell、文件操作、git、web、子智能体、MCP、RLM)路由,结果流式返回对话记录。引擎管理会话状态、轮次追踪、持久化任务队列和 LSP 子系统——它在下一步推理前将编辑后诊断反馈到模型上下文中。快速开始:
npm install -g deepseek-tui deepseek --version deepseek预构建二进制覆盖 Linux x64、Linux ARM64(v0.8.8 起)、macOS x64、macOS ARM64 和 Windows x64。其他目标平台(musl、riscv64、FreeBSD 等)请见下方的从源码安装或 docs/INSTALL.md。
首次启动时会提示输入 DeepSeek API key。密钥保存到
~/.deepseek/config.toml,在任意目录、IDE 终端和脚本中都能使用,不会触发系统密钥环弹窗。也可以提前配置:
deepseek auth set --provider deepseek # 保存到 ~/.deepseek/config.toml export DEEPSEEK_API_KEY="YOUR_KEY" # 环境变量方式;需要在非交互式 shell 中使用请放入 ~/.zshenv deepseek deepseek doctor # 验证安装轮换或移除密钥:
deepseek auth clear --provider deepseek。Linux ARM64(HarmonyOS 轻薄本、openEuler、Kylin、树莓派、Graviton 等)
从 v0.8.8 起,
npm i -g deepseek-tui直接支持 glibc 系的 ARM64 Linux。你也可以从 Releases 页面 下载预编译二进制,放到PATH目录中。中国大陆 / 镜像友好安装
如果在中国大陆访问 GitHub 或 npm 下载较慢,可以通过 Cargo 注册表镜像安装:
# ~/.cargo/config.toml [source.crates-io] replace-with = "tuna" [source.tuna] registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"然后安装两个二进制(调度器在运行时会调用 TUI):
cargo install deepseek-tui-cli --locked # 提供推荐入口 `deepseek` cargo install deepseek-tui --locked # 提供交互式 TUI 伴随二进制 deepseek --version也可以直接从 GitHub Releases 下载预编译二进制。
DEEPSEEK_TUI_RELEASE_BASE_URL可用于镜像后的 release 资产。Windows (Scoop)
Scoop 是一个 Windows 软件包管理器。DeepSeek TUI 已进入 Scoop main bucket,但该 manifest 独立更新,可能滞后于 GitHub/npm/Cargo release。先运行
scoop update,安装后用deepseek --version核对版本:scoop update scoop install deepseek-tui deepseek --version如果需要最新版本,请优先使用 npm 或直接下载 GitHub Release 资产。
从源码安装
适用于任何 Tier-1 Rust 目标,包括 musl、riscv64、FreeBSD 以及尚无预编译包的 ARM64 发行版。
# Linux 构建依赖(Debian/Ubuntu/RHEL): # sudo apt-get install -y build-essential pkg-config libdbus-1-dev # sudo dnf install -y gcc make pkgconf-pkg-config dbus-devel git clone https://github.com/Hmbown/DeepSeek-TUI.git cd DeepSeek-TUI cargo install --path crates/cli --locked # 需要 Rust 1.88+;提供 `deepseek` cargo install --path crates/tui --locked # 提供 `deepseek-tui`两个二进制都需要安装。交叉编译和平台特定说明见 docs/INSTALL.md。
其他模型提供方
# NVIDIA NIM deepseek auth set --provider nvidia-nim --api-key "YOUR_NVIDIA_API_KEY" deepseek --provider nvidia-nim # Fireworks deepseek auth set --provider fireworks --api-key "YOUR_FIREWORKS_API_KEY" deepseek --provider fireworks --model deepseek-v4-pro # 自托管 SGLang SGLANG_BASE_URL="http://localhost:30000/v1" deepseek --provider sglang --model deepseek-v4-flash # 自托管 vLLM VLLM_BASE_URL="http://localhost:8000/v1" deepseek --provider vllm --model deepseek-v4-flash # 自托管 Ollama ollama pull deepseek-coder:1.3b deepseek --provider ollama --model deepseek-coder:1.3bv0.8.29 新功能维护版本,核心是修复 v0.8.27 / v0.8.28 引入的"滚动幽灵"回归 (#1085 类问题)和 Ctrl+R 会话恢复跨项目泄漏的问题(#1395), 外加 25 个社区 PR。完整更新日志。
- "滚动幽灵"彻底修复(#1085 回归)。并行子代理运行
exec_shell时,alt-screen 会被滚动出 ratatui 差分渲染器的 视野,header 上方出现越来越大的空白带。三层防护一并上线: 写入~/.deepseek/logs/tui-YYYY-MM-DD.log的tracing-subscriber、 alt-screen 生命周期内的 fd 级 stderr 重定向(Unixdup2)、 以及tools/、core/、tui/、network_policy.rs、runtime_threads.rs模块的#![deny(clippy::print_stdout, clippy::print_stderr)]。今后在 这些模块新增eprintln!会被 CI 拒绝。- Ctrl+R 会话恢复改为按当前工作区过滤(#1395,PR #1397, 来自 @linzhiqin2003)— 此前列出磁盘上所有会话,导致 在项目 B 打开 DeepSeek-TUI 时按下 Ctrl+R 可能恢复项目 A 的 历史记录。
- 运行时版本号直接显示在 header 中。 Header 右侧集群在 provider / effort / Live / context 之后增加一个
v0.8.29小标签,在终端宽度紧张时最先收起。- MCP HTTP 传输现在尊重 HTTP(S)_PROXY(#1408,来自 @hlx98007)— 公司出口代理、国内 Clash / Shadowsocks 代理 现在能正确应用于 MCP HTTP 连接,跟 box 上的其他工具 (curl、npm、git 等)保持一致。同时支持
NO_PROXY。- MCP 发现接受不规范条目(PR #1410,来自 @Liu-Vince)— 一个错误的 tool / resource / prompt 条目不再让整页丢失; 错误条目被跳过,目录的其余部分正常返回。
- MCP SSE 接受 CRLF 分隔的 endpoint 事件(#1309,PR #1358, 来自 @reidliu41)— FastMCP / uvicorn 风格的 SSE 流不再因 只等待 LF 分隔符而超时。
- 输入框会忽略泄漏的鼠标报告字节(#1418,PR #1421,来自 @reidliu41)— 某些 SSH / IDE 终端链路把
[<35;44;18M这类鼠标报告泄漏到 stdin 时,不再把输入区域填满。- Footer 芯片会遵守可用宽度(#1357,PR #1417,来自 @Wenjunyun123)— 窄终端下,过长的 cache / aux 芯片会先 收起,而不是挤压左侧状态或 composer 区域。
- 笔记管理斜杠命令(PR #1407,来自 @reidliu41)—
/note add、/note list等命令在 TUI 内提供持久笔记功能。- 全局
~/.deepseek/AGENTS.md与项目 AGENTS.md 合并 (#1157,PR #1399,来自 @linzhiqin2003)— 此前工作区 自带 AGENTS.md 会完全遮蔽全局基准,现在分层叠加。- 语言指令:thinking 跟随用户消息语言(#1118,PR #1398, 来自 @linzhiqin2003)— 此前项目上下文推断的
lang字段可能压制最新用户消息的语言,导致中文对话出现英文 thinking。- 网络搜索过滤垃圾 SERP(#964,PR #1396,来自 @linzhiqin2003)— Bing / DDG 回退路径丢弃污染快速查找 结果的 SEO 农场域名。
- Auto 路由识别 CJK 调试 / 搜索关键词(PR #1401、#1402, 来自 @linzhiqin2003)—
--model auto和推理强度选择器 现在能正确路由中文 / 日文技术查询,此前会回退到通用基准。- Deferred tools 首次执行前会先加载 schema(#1419,PR #1429, 来自 @SamhandsomeLee)—
edit_file等延迟加载工具现在会先 展示期望字段并要求模型重试,而不是执行模型猜测出来的参数名。- DeepSeek 公开别名会正确回放 thinking-mode 工具轮次(PR #1428, 来自 @Beltran12138)—
deepseek-chat和deepseek-reasoner现在与显式 V4 模型 ID 一样触发reasoning_contentreplay,避免工具调用后的第二轮 400。- 技能补全收敛到
/skill下(#1437,PR #1442,来自 @reidliu41)— 本地技能很多时不会再挤满根级/命令菜单。edit_file拒绝无变化替换(PR #1460,来自 @xiluoduyu)—search/replace完全相同时会直接返回 清晰的参数错误,而不是生成空 diff。- Windows 终端布局使用宽度稳定的字形(#1314,PR #1465,来自 @CrepuscularIRIS)— header 和文件树不再依赖 cmd / PowerShell 容易误判宽度的 SMP emoji。
- Ghostty 默认启用低动态渲染(#1445,PR #1468,来自 @CrepuscularIRIS)— 受影响终端无需手动配置即可避开动画闪烁。
- Docker buildx provenance 的 EPERM 失败会给出提示(#1449, PR #1469,来自 @CrepuscularIRIS)— macOS shell 输出命中 受限 metadata 写入失败时,会提示 provenance 相关开关。
- Windows CMD 的鼠标滚轮回退会滚动 transcript(#1443, PR #1471,来自 @CrepuscularIRIS)— 关闭 mouse capture 时, 被终端映射成 Up / Down 的滚轮事件不再循环 composer 历史。
sync-cnb.yml工作流加固 — 显式permissions: contents: read、actions/checkoutv3 → v4、触发器收紧到main+v*标签(不再镜像 feature 分支)。使用方式
deepseek # 交互式 TUI deepseek "explain this function" # 一次性提示 deepseek --model deepseek-v4-flash "summarize" # 指定模型 deepseek --yolo # 自动批准工具 deepseek auth set --provider deepseek # 保存 API key deepseek doctor # 检查配置和连接 deepseek doctor --json # 机器可读诊断 deepseek setup --status # 只读安装状态 deepseek setup --tools --plugins # 创建本地工具和插件目录 deepseek models # 列出可用 API 模型 deepseek sessions # 列出已保存会话 deepseek resume --last # 恢复最近会话 deepseek resume <SESSION_ID> # 按 UUID 恢复指定会话 deepseek fork <SESSION_ID> # 在指定轮次分叉会话 deepseek serve --http # HTTP/SSE API 服务 deepseek run pr <N> # 获取 PR 并预填审查提示 deepseek mcp list # 列出已配置 MCP 服务器 deepseek mcp validate # 校验 MCP 配置和连接 deepseek mcp-server # 启动 dispatcher MCP stdio 服务器 deepseek update # 检查并应用二进制更新常用快捷键:
按键 功能 Tab补全 /或@;运行中则把草稿排队;否则切换模式Shift+Tab切换推理强度:off → high → max F1可搜索帮助面板 Esc返回 / 关闭 Ctrl+K命令面板 Ctrl+R恢复旧会话 Alt+R搜索提示历史和恢复草稿 Ctrl+S暂存当前草稿( /stash list、/stash pop恢复)@path在输入框中附加文件或目录上下文 ↑(在输入框开头)选择附件行进行移除 完整快捷键目录:docs/KEYBINDINGS.md。
模式:
模式 行为 Plan 🔍 只读调查;模型先探索并提出计划( update_plan+checklist_write),然后再做更改Agent 🤖 默认交互模式;多步工具调用带审批门禁 YOLO ⚡ 在可信工作区自动批准工具;仍会维护计划和清单以保持可见性
配置:
用户配置:
~/.deepseek/config.toml。项目覆盖:<workspace>/.deepseek/config.toml(以下密钥被拒绝:api_key、base_url、provider、mcp_config_path)。完整选项见 config.example.toml。常用环境变量:
变量 用途 DEEPSEEK_API_KEYDeepSeek API key DEEPSEEK_BASE_URLAPI base URL DEEPSEEK_MODEL默认模型 DEEPSEEK_PROVIDERdeepseek(默认)、nvidia-nim、fireworks、sglang、vllm、ollamaDEEPSEEK_PROFILE配置 profile 名称 DEEPSEEK_MEMORY设为 on启用用户记忆NVIDIA_API_KEY/FIREWORKS_API_KEY/SGLANG_API_KEY/VLLM_API_KEY/OLLAMA_API_KEY提供商认证 SGLANG_BASE_URL自托管 SGLang 端点 VLLM_BASE_URL自托管 vLLM 端点 OLLAMA_BASE_URL自托管 Ollama 端点 OLLAMA_MODEL自托管 Ollama 模型标签 NO_ANIMATIONS=1启动时强制无障碍模式 SSL_CERT_FILE企业代理的自定义 CA 包
locale会控制界面语言,并作为模型自然语言的兜底设置;最新用户消息的语言优先级更高。也就是说,即使系统 locale 是英文,用户用中文提问时,V4 的reasoning_content和最终回复也应该使用中文。可在config.toml中设置locale、使用/config locale zh-Hans、或依赖LC_ALL/LANG。详见 docs/LOCALIZATION.md 和 docs/CONFIGURATION.md。切换为中文界面
如果界面是其他语言,可以在 TUI 内一键切换为简体中文:
- 在 Composer 里输入
/config,按 Tab 或 Enter 打开配置面板。- 选择 Edit locale,在
New:字段输入zh-Hans,按 Enter 应用。可选语言:
auto|en|ja|zh-Hans|pt-BR。也可以在
~/.deepseek/config.toml里直接设置locale = "zh-Hans",或通过LC_ALL/LANG环境变量自动选择:# ~/.deepseek/config.toml [tui] locale = "zh-Hans"或者通过环境变量(中文系统通常已自动生效):
LANG=zh_CN.UTF-8 deepseek run模型和价格:
模型 上下文 输入(缓存命中) 输入(缓存未命中) 输出 deepseek-v4-pro1M $0.003625 / 1M* $0.435 / 1M* $0.87 / 1M* deepseek-v4-flash1M $0.0028 / 1M $0.14 / 1M $0.28 / 1M 旧别名
deepseek-chat/deepseek-reasoner映射到deepseek-v4-flash。NVIDIA NIM 变体使用你的 NVIDIA 账号条款。DeepSeek Pro 价格是限时 75% 折扣,有效期到 2026-05-31 15:59 UTC;该时间之后 TUI 成本估算会回退到 Pro 基础价格。
Note
关于 DeepSeek-V4-Pro 的最新定价信息,请参阅官方 DeepSeek 定价页面,请注意目前可享受 75% 的折扣,该优惠有效期至 2026 年 5 月 31 日 23:59(北京时间)。此外,README 文档中所列出的所有价格,均与官方发布的数值保持一致。
创建和安装技能
DeepSeek TUI 从工作区目录(
.agents/skills→skills→.opencode/skills→.claude/skills)和全局~/.deepseek/skills发现技能。每个技能是一个包含SKILL.md的目录:~/.deepseek/skills/my-skill/ └── SKILL.md需要 YAML frontmatter:
--- name: my-skill description: 当 DeepSeek 需要遵循我的自定义工作流时使用这个技能。 --- # My Skill 这里写给智能体的指令。常用命令:
/skills(列出)、/skill <name>(激活)、/skill new(创建)、/skill install github:<owner>/<repo>(社区)、/skill update/uninstall/trust。社区技能直接从 GitHub 安装,无需后端服务。已安装技能在模型可见的会话上下文里列出;当任务匹配技能描述时,智能体可通过load_skill工具自动读取对应的SKILL.md。服务器本地镜像拉起:https://github.com/Hmbown/DeepSeek-TUI.git
主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网

