DeepSeek TUI 深度体验:当 AI 编程智能体住进终端
为什么终端才是编程智能体的最佳归宿
现在的 AI 编程工具太多了。Cursor 在 IDE 里给你补全代码,Claude 在网页上跟你聊架构,GitHub Copilot 在编辑器旁边当副驾。但你是否也跟我一样,经常在这几个窗口之间切来切去——浏览器里问完问题,切到编辑器里改代码,再切到终端里跑测试,切到 Git 里看 diff。
每一次切换,上下文就断一次。
DeepSeek TUI 走了一条不一样的路:把编程智能体直接塞进终端。不需要 IDE 插件,不需要浏览器标签页,就在你每天敲命令的那个黑色窗口里,让 AI 帮你读写文件、跑 shell、管 Git、查网页、调度子智能体。全键盘操作,手不用离开主键区。
这个项目开源在 GitHub(Hmbown/DeepSeek-TUI),用 Rust 编写,底层驱动的是 DeepSeek V4 模型。
它到底能干什么
先说几个让我觉得真正有用的核心能力,而不是简单罗列功能清单:
100 万 token 上下文,不是噱头
很多工具都吹自己的上下文长度,但 100 万 token 在编程场景里是真的有意义。一个中等规模的 Java 或 TypeScript 项目,全量源码加上配置文件,大概就在 30-80 万 token 之间。也就是说,整个项目的代码它都能"看"到。
更关键的是它带了智能压缩——接近上限时自动做"缓存感知压缩",复用前缀缓存。这不是简单地把旧消息扔掉,而是有策略地保留关键信息,同时大幅降低成本。
三种模式,覆盖不同场景
这是我觉得设计得最用心的地方:
- Plan 模式:只读。接手一个陌生项目时,让它先摸清结构、给出修改计划,但它不会动你任何文件。适合评估大改动的风险和成本。
- Agent 模式(默认):每步操作都需要你确认。日常编码调试用这个,安全可控。
- YOLO 模式:自动批准所有操作。适合在实验性分支里批量处理已知模式的任务,比如批量重命名、统一代码风格。
三种模式让你在"放手"和"掌控"之间灵活切换,而不是一刀切。
LSP 诊断闭环
这个功能容易被忽略,但实际用起来很爽。AI 改完代码后,不是交给你就完事了——它会自动调用对应语言的 LSP 服务器(rust-analyzer、pyright、typescript-language-server 等),拿到错误和警告,再把诊断结果喂回给模型,让模型自己修复。
编辑 → 诊断 → 纠错,形成闭环。你看到的最终结果,是已经过一轮自检的代码。
工作区回滚,不动你的 Git
它用 side-git 记录每轮对话的文件快照,你随时可以用 /restore 回滚到任意一轮。重点是:它不动你项目本身的 .git。你的 Git 历史保持干净,AI 的改动有独立的回滚机制。两者互不干扰。
安装和配置:比想象中简单
我试了三种安装方式,最推荐 npm(如果你有 Node.js 的话):
# 国内用户加个镜像源,快很多
npm install -g deepseek-tui --registry=https://registry.npmmirror.com
注意 npm 在这里只是个"下载器",它从 GitHub Releases 拉预编译的二进制文件。安装完之后你的项目里不依赖 Node.js,运行时完全独立。
其他安装方式还有 Cargo(Rust 工具链)和直接下载预编译二进制。官方覆盖了 Linux x64/ARM64、macOS x64/ARM64、Windows x64。自 v0.8.8 起,npm 安装已经原生支持 ARM64 Linux( HarmonyOS 轻薄本、树莓派、Graviton 等都能用)。
配置 API Key 也很直接:
deepseek auth set --provider deepseek
# 然后粘贴你的 Key,来自 platform.deepseek.com/api_keys
密钥保存在 ~/.deepseek/config.toml,不触发系统密钥环弹窗,任何终端都能直接用。
想切中文界面?在输入框里敲 /config,选择 "Edit locale",输入 zh-Hans 就行。或者直接改配置文件:
# ~/.deepseek/settings.toml
locale = "zh-Hans"
成本算一笔账
这是很多开发者关心的实际问题。DeepSeek V4 有两个模型可选:
deepseek-v4-flash(日常主力):
- 输入(缓存命中):$0.0028 / 1M token
- 输入(缓存未命中):$0.14 / 1M token
- 输出:$0.28 / 1M token
deepseek-v4-pro(更强但更贵):
- 输入(缓存命中):约 $0.0036 / 1M token
- 输入(缓存未命中):约 $0.435 / 1M token
- 输出:约 $0.87 / 1M token
缓存命中价格是未命中的 1/50。这意味着什么?你在一个项目里持续工作时,项目的基础代码作为前缀被缓存了,后续每次对话的输入成本极低。只有第一次或者大幅切换上下文时才会付全价。
实际体感:日常在一个项目里编码调试,单次对话成本通常在几美分到十几美分之间。比 Claude Code 便宜一个数量级。
内置的成本追踪功能会显示每轮和每会话的用量、缓存命中率,你可以随时查看自己花了多少钱。
跟 Claude Code / Codex / Aider 比怎么样
这个问题肯定有人问,我直接说结论:
| 维度 | DeepSeek TUI | Claude Code | Codex CLI | Aider |
|---|---|---|---|---|
| 模型 | DeepSeek V4 | Claude | GPT-4/4o | 任意 OpenAI 兼容 |
| 上下文 | 100 万 token | 20 万 token | 20 万 token | 取决于模型 |
| 运行环境 | 单一二进制 | Node.js | Go | Python |
| 价格 | 极低(尤其缓存命中) | 较高 | 中等 | 取决于模型 |
| 开源 | ✅ | ❌ | ❌ | ✅ |
| MCP 支持 | ✅ 内置 | ✅ | ❌ | ❌ |
| LSP 自动修复 | ✅ | 部分 | ❌ | ❌ |
| 中文 UI | ✅ | ❌ | ❌ | ❌ |
DeepSeek TUI 的核心优势:
- 成本:同样的任务,费用大概是 Claude Code 的 1/5 到 1/10
- 上下文长度:100 万 token 对 20 万 token,处理大项目时优势明显
- 开源:你可以审计代码、自己部署、定制功能
- 中文友好:原生中文界面,国内镜像加速
目前不如 Claude Code 的地方:
- 生态成熟度:Claude Code 的用户基数更大,社区资源更丰富
- 技能系统:Claude Code 的 MCP 生态更活跃
- 模型能力上限:在极端复杂的推理任务上,Claude Opus 级别仍有优势
实际使用场景建议
基于我的体验,这几个场景特别适合用 DeepSeek TUI:
1. 接手陌生项目
Plan 模式下让它读代码、画架构、给出修改计划。100 万 token 的上下文意味着整个项目都能放进上下文窗口,它不会"看了一半忘了前半部分"。
2. 批量代码修改
YOLO 模式下让它批量处理——统一代码风格、批量重命名、迁移 API。配合工作区回滚,改坏了随时恢复。
3. 日常编码调试
Agent 模式是默认模式,每步操作需要你确认。适合日常开发,AI 帮你写代码、跑测试、查文档,但你始终有最终决定权。
4. 嵌入 CI/CD 流水线
deepseek serve --http 可以启动无界面服务,通过 HTTP/SSE API 调用。可以把它集成到自动化流程里,比如自动代码审查、自动修复简单 Bug。
几个实用技巧
用 @ 引用文件:在输入框里输入 @ 加上文件路径,可以把文件内容附加为上下文。比如 @src/main.py 帮我重构这个文件。
暂存草稿:写了一半的想法按 Ctrl+S 暂存,用 /stash list 查看所有暂存,用 /stash pop 取回。适合多任务并行时切换上下文。
恢复历史提示:按 Alt+R 可以搜索历史提示,找回之前用过的 prompt。
推理强度调节:Shift+Tab 在 off / high / max 之间切换。简单问题用 off 省成本,复杂推理用 max。
用户记忆:开启后(DEEPSEEK_MEMORY=on),你的偏好(缩进风格、命名习惯等)会跨会话保留,不用每次都交代。
写在最后
AI 编程工具赛道越来越卷,但 DeepSeek TUI 找到了一条差异化的路:不跟 IDE 抢位置,而是在终端里给你一个全能的 AI 编程助手。
它的优势很明显——成本低、上下文长、开源可控、中文友好。劣势也客观存在——生态还在早期,模型能力上限跟顶级商业模型还有差距。
但考虑到它的发展速度(v0.8.10 已经在持续迭代中),以及 DeepSeek 模型本身的快速进步,这个项目值得持续关注。
如果你已经厌倦了"浏览器里问、编辑器里改、终端里跑"的割裂流程,不妨花十分钟装一个试试。反正成本不高,不好用随时卸载。
npm install -g deepseek-tui --registry=https://registry.npmmirror.com
deepseek auth set --provider deepseek
deepseek
三个命令,开始体验。
