Hmbown DeepSeek-TUI
DeepSeek TUI 是一款基于 DeepSeek V4 的 100 万 token 上下文和前缀缓存构建的终端原生编程代理。单二进制文件,无需 Node/Python 运行时——开箱即用,内置 MCP 客户端、沙箱和持久化任务队列。
简体中文 README:npm i -g deepseek-tui
它是什么?
DeepSeek TUI 是一款完全运行在终端中的编程代理。它让 DeepSeek 的前沿模型能够直接访问你的工作区——读取和编辑文件、运行 shell 命令、搜索网络、管理 git 以及编排子代理——全部通过一个快速、键盘驱动的 TUI 完成。
专为 DeepSeek V4(deepseek-v4-pro / deepseek-v4-flash)打造,支持 100 万 token 上下文窗口和原生思维模式(链式思维)流式输出。在处理你的任务时,实时观察模型的推理过程。
主要特性
- 原生 RLM(
rlm_query工具)——并行派发 1–16 个廉价的deepseek-v4-flash子模型,针对现有 DeepSeek 客户端进行批量分析、分解或并行推理 - 思维模式流式输出——在模型推理你的代码时,展示 DeepSeek 的链式思维过程
- 完整工具套件——文件操作、shell 执行、git、网络搜索/浏览、应用补丁、子代理、MCP 服务器
- 100 万 token 上下文——上下文填满时自动进行智能压缩
- 三种交互模式——Plan(只读探索)、Agent(交互式需批准)、YOLO(自动批准)。系统提示采用“先分解”策略,教导模型在行动前先编写清单、更新计划并生成子代理
- 推理强度等级——通过
Shift+Tab在关闭 → 高 → 最大之间循环切换 - 会话保存/恢复——支持长时间会话的断点续传
- 工作区回滚——通过
/restore和revert_turn实现回合前后的侧边 git 快照,不影响仓库的.git - HTTP/SSE 运行时 API——
deepseek serve --http用于无头代理工作流 - MCP 协议——连接模型上下文协议服务器以扩展工具集;参见
docs/MCP.md - 实时成本追踪——每回合和会话级别的 token 使用量和成本估算
- 深色主题——DeepSeek 蓝色调
架构原理
DeepSeek TUI 的架构遵循 调度器 → TUI → 引擎 → 工具 的模式。deepseek CLI 二进制文件是一个轻量级调度器,负责解析子命令并将交互式会话委托给 deepseek-tui 配套二进制文件。TUI 运行一个基于 ratatui 的界面,与执行代理循环的异步引擎通信:用户输入通过流式客户端(兼容 OpenAI 的 Chat Completions)流向 LLM,从响应中提取工具调用并通过类型化的工具注册表(shell、文件操作、git、网络、子代理、MCP)进行调度,结果流式返回对话记录。在后台,引擎管理会话状态、回合追踪和持久化任务队列。LSP 子系统(crates/tui/src/lsp/)通过生成语言服务器(rust-analyzer、pyright 等)并在下一步推理前将错误注入模型上下文,提供编辑后诊断。递归语言模型(RLM)子系统为代理提供了一个沙箱化的 Python REPL,用于批量分类和子 LLM 编排。详见 docs/ARCHITECTURE.md。
快速开始
npm install -g deepseek-tui
deepseek
中国/镜像友好安装
如果从中国大陆下载 GitHub 或 npm 速度较慢,可通过 Cargo 注册表镜像安装 Rust crates:
# ~/.cargo/config.toml
[source.crates-io]
replace-with = "tuna"
[source.tuna]
registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"
然后安装规范的 deepseek 调度器和(可选)配套的 TUI 二进制文件:
cargo install deepseek-tui-cli --locked # 提供 `deepseek`
cargo install deepseek-tui --locked # 提供 `deepseek-tui`(可选)
deepseek --version
当 GitHub 发布资源可访问时,你也可以直接从 GitHub Releases 页面下载预构建的二进制文件。当有镜像的发布资源目录可用时,也可以使用 TUNA、rsproxy、腾讯 COS 或阿里云 OSS 镜像,并设置 DEEPSEEK_TUI_RELEASE_BASE_URL。
首次启动时,系统会提示你输入 DeepSeek API 密钥。你也可以提前设置:
# 通过 CLI
deepseek login --api-key "YOUR_DEEPSEEK_API_KEY"
# 通过环境变量
export DEEPSEEK_API_KEY="YOUR_DEEPSEEK_API_KEY"
deepseek
使用 NVIDIA NIM
deepseek auth set --provider nvidia-nim --api-key "YOUR_NVIDIA_API_KEY"
deepseek --provider nvidia-nim
# 或按进程设置:
DEEPSEEK_PROVIDER=nvidia-nim NVIDIA_API_KEY="..." deepseek
其他 DeepSeek V4 提供商
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
从源码安装
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
cargo install --path crates/tui --locked # 需要 Rust 1.85+
v0.8.7 更新内容
在 v0.8.6 基础上快速修补,以解除复制/选择限制。
✂️ 选择功能覆盖整个对话记录
v0.8.6 的选择收紧限制将复制/选择限定在用户和助手消息正文中,导致无法从系统笔记、思维块或工具输出中复制文本。v0.8.7 移除了这一限制,使渲染的对话记录块再次支持端到端选择。
v0.8.7 已知问题: deepseek update 失败,提示 no asset found for platform …,原因是自更新器中的平台字符串映射使用了 aarch64 / x86_64,而非发布资源中的 arm64 / x64(#503)。在 v0.8.8 修复此问题之前,请通过以下方式更新:
npm i -g deepseek-tui
# 或
cargo install deepseek-tui-cli --locked
完整更新日志:CHANGELOG.md。
v0.8.6 更新内容
📝 AGENTS.md 引导(/init)
/init 遍历工作区,自动检测项目类型(Cargo.toml、package.json、pyproject.toml 等),并写入一个初始的 AGENTS.md 文件,其中包含构建/测试命令、工作区布局以及从 git log 推导出的约定。重新运行会显示建议更新的差异对比。