DeepSeek-TUI 深度实战:Rust 打造的终端原生 AI 编程智能体——从 10K Star 爆火到生产级 Coding Agent 架构全链路解析
一、引言:终端正在成为 AI 编程的「主战场」
2026年5月,一款名为 DeepSeek-TUI 的开源项目在 GitHub 上演了一场教科书级的病毒式传播。
5月6日,项目 Star 数从 8.7K 一路飙升至 16.3K,单日增长 2434 Star,直接登顶 GitHub Trending 全球榜首。更令人意外的是,这款被开发者称为「DeepSeek 版 Claude Code」的终端编程工具,并非出自 DeepSeek 官方之手,而是一位美国法学背景的独立开发者——Hunter Bown——用 Rust 从零构建的个人项目。
你可能会问:我们已经有了 DeepSeek V4 的网页版、APP 和 API,为什么还需要一个 TUI?
答案藏在 2026 年 AI 编程领域最深刻的变化里:大模型竞争正在从「模型能力」转向「Agent 工作流」。
GitHub Copilot 的真正价值不是 GPT-4 本身,而是 Codex;Anthropic 在开发者圈子的统治力不是来自 Claude 模型本身,而是 Claude Code。这说明,真正改变开发者工作流的,不是更强大的模型,而是围绕模型构建的 Agent 工程体系。
DeepSeek V4 的代码能力、推理能力、长上下文处理都有了质的飞跃,但始终缺少一个基于模型专门优化的 Agent 框架。DeepSeek-TUI 正是为了填补这个空白而生。
1.1 项目速览
| 属性 | 值 |
|---|---|
| 项目名称 | DeepSeek-TUI |
| GitHub | https://github.com/Hmbown/deepseek-tui |
| 当前 Star | 16.3K+(持续增长中) |
| 开发语言 | Rust(占比约 98.3%) |
| 核心定位 | 终端原生 AI 编程智能体 |
| 许可证 | MIT |
| 创始人 | Hunter Bown(法学/音乐教育背景) |
| 首次发布 | 2026年1月 |
| 最新版本 | v0.8.14+ |
二、核心架构:为什么是 Rust?
2.1 技术栈全景图
DeepSeek-TUI 的技术选型非常明确:用 Rust 构建一切。这不仅仅是一个语言选择,而是对终端场景的深度理解。
# Cargo.toml 核心依赖(简化版)
[dependencies]
ratatui = "0.29" # TUI 渲染框架
crossterm = "0.28" # 跨平台终端控制
tokio = "1.49" # 异步运行时(full features)
reqwest = "0.13" # HTTP 客户端(rustls, streaming)
为什么不用 Node.js/Python?
这是理解 DeepSeek-TUI 设计哲学的关键。当前的 AI 编程代理(如 Claude Code 的很多封装层)大量使用 Node.js 或 Python,这些语言在以下场景存在明显短板:
| 场景 | Node.js/Python 问题 | Rust 优势 |
|---|---|---|
| 内存占用 | V8/CPython 动辄数百 MB | 原生二进制,运行时零开销 |
| 并发性能 | GIL 限制 / 异步开销 | 无 GIL,零成本抽象 |
| 启动速度 | 需要启动解释器 | 直接执行,启动 < 50ms |
| 依赖管理 | npm 包地狱 / pip 依赖冲突 | Cargo 单一来源,可重现构建 |
Hunter Bown 在接受采访时提到,他曾用 Python 写过早期原型,但内存占用问题让他转向 Rust:「我想让 DeepSeek-TUI 成为一个可以随时打开、秒级响应的工具,而不是等半分钟才看到光标」。
2.2 三层架构设计
DeepSeek-TUI 采用经典的三层架构,每一层都有明确的职责边界:
┌─────────────────────────────────────────────────────────────┐
│ Presentation Layer │
│ (ratatui + crossterm) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Chat View │ │ Todo View │ │ Cost View │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Agent Engine Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Plan Mode │ │ Agent Mode │ │ YOLO Mode │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Tool Execution Engine │ │
│ │ File | Shell | Git | Web | MCP | LSP │ │
│ └─────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Model Adapter Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ DeepSeek V4 │ │ NVIDIA NIM │ │ Fireworks │ │
│ │ -Pro │ │ Support │ │ Support │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
第一层:展示层(Presentation Layer)
使用 ratatui(Rust 生态最成熟的 TUI 框架)构建交互界面。ratatui 的核心优势是:
- 声明式 UI:通过 widget 组合构建复杂界面
- 异步渲染:不阻塞主线程的 UI 更新
- 跨平台:macOS/Linux/Windows 统一体验
// 典型的 ratatui 布局
fn render(ui: &mut Frame, state: &AppState) {
let chunks = Layout::default()
.direction(Direction::Vertical)
.constraints([
Constraint::Length(3), // Header
Constraint::Min(0), // Main content
Constraint::Length(3), // Footer/Todo
])
.split(ui.size());
ui.render_widget(Block::default().title("DeepSeek-TUI"), chunks[0]);
ui.render_widget(ChatHistory, chunks[1]);
ui.render_widget(TodoList, chunks[2]);
}
第二层:Agent 引擎层(Agent Engine Layer)
这是 DeepSeek-TUI 的核心,也是最接近 Claude Code 的部分。三种运行模式代表了不同的信任级别:
// 模式定义的简化表示
enum RunMode {
/// Plan 模式:只分析不执行,适合理解复杂项目
Plan,
/// Agent 模式:每步操作需用户确认,适合生产环境
Agent,
/// YOLO 模式:完全自动化,适合快速原型验证
YOLO,
}
第三层:模型适配层(Model Adapter Layer)
DeepSeek-TUI 不绑定单一模型,而是通过适配器模式支持多种后端:
// 模型适配器 trait
trait ModelAdapter {
async fn complete(&self, prompt: &Prompt) -> Result<Response>;
async fn stream_complete(&self, prompt: &Prompt, tx: mpsc::Sender<Token>);
fn get_context_window(&self) -> usize;
fn get_cost_per_token(&self) -> Cost;
}
// 当前支持的适配器
struct DeepSeekV4Adapter { /* ... */ }
struct NVIDIANIMAdapter { /* ... */ }
struct FireworksAdapter { /* ... */ }
三、核心特性深度解析
3.1 100 万 Token 上下文:工程实现
这是 DeepSeek-TUI 最令人印象深刻的技术特性。DeepSeek V4 支持 100 万 Token 的上下文窗口,但如何在终端场景下有效利用这个能力?
上下文管理的核心挑战:
- Token 配额管理:100 万 Token 看似巨大,但在处理大型代码库时很快耗尽
- 信息优先级:哪些历史对话应该保留?哪些可以压缩?
- 召回率:压缩后的上下文是否还记得关键信息?
DeepSeek-TUI 的解决方案是自适应上下文压缩:
struct ContextManager {
max_tokens: usize,
compression_threshold: f64,
priority_weights: HashMap<ContentType, f64>,
}
impl ContextManager {
/// 核心压缩算法
fn compress(&self, history: &[Message]) -> Vec<Message> {
let total_tokens = self.count_tokens(&history);
// 当使用超过阈值时触发压缩
if total_tokens as f64 > self.max_tokens as f64 * self.compression_threshold {
// 按优先级权重排序内容
let mut ranked = self.rank_by_importance(history);
// 优先保留:当前文件相关、近期修改、重要错误信息
// 可以压缩:早期探索性对话、低优先级日志
self.aggressive_compress(&mut ranked);
}
ranked.into_iter().take(self.max_tokens).collect()
}
}
实际测试中,当上下文接近 100 万 Token 时,系统会:
- 保留最近 50% 的对话
- 对早期对话进行摘要压缩
- 始终保持当前文件内容的完整
3.2 RLM(Recursive Language Model)子代理机制
这是 DeepSeek-TUI 的创新设计,通过主模型调度子任务实现并行处理:
┌─────────────────────────────────────────────────────────┐
│ Main Agent │
│ (DeepSeek V4-Pro) │
├─────────────────────────────────────────────────────────┤
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ Sub-Agent │ │ Sub-Agent │ │ Sub-Agent │ ... │
│ │ (Flash-1) │ │ (Flash-2) │ │ (Flash-3) │ │
│ │ 16x 并行 │ │ │ │ │ │
│ └────────────┘ └────────────┘ └────────────┘ │
└─────────────────────────────────────────────────────────┘
工作流程:
- 用户输入复杂任务(如「重构整个项目」)
- 主模型分析任务,拆分为多个独立子任务
- 每个子任务分配给一个 V4-Flash 实例
- 子任务并行执行,结果汇总给主模型
- 主模型整合子结果,生成最终方案
async fn execute_rlm(&self, task: &Task) -> Result<TaskResult> {
let sub_tasks = self.decompose_task(task).await?;
// 使用 tokio 并行执行子任务
let results = futures::future::join_all(
sub_tasks.iter().map(|sub| self.execute_sub_agent(sub))
).await;
// 合并结果
self.merge_results(results)
}
成本优化效果:实测中,这种架构将复杂任务的 token 消耗降低 66%,而结果质量几乎没有下降。
3.3 三种运行模式:适用场景分析
| 模式 | 适用场景 | 风险等级 | 用户参与度 |
|---|---|---|---|
| Plan | 理解新项目、架构分析、学习代码 | 低 | 高(纯阅读) |
| Agent | 日常开发、代码审查、生产修改 | 中 | 中(每步确认) |
| YOLO | 快速原型、实验性功能、自动化脚本 | 高 | 低(放手执行) |
实测发现:
- Plan 模式特别适合接手遗留项目:DeepSeek-TUI 会分析项目结构、依赖关系、关键模块,生成详细的理解报告
- Agent 模式是日常开发的主力:既保证安全性,又能自动处理大量重复性操作
- YOLO 模式需要谨慎使用:实测中,它有时会执行一些「看起来合理但实际有问题」的操作
3.4 MCP 协议与 Skills 系统
DeepSeek-TUI 原生支持 Model Context Protocol(MCP),这意味着可以连接外部工具和服务:
# 安装 MCP 服务器
deepseek mcp install filesystem
deepseek mcp install git
deepseek mcp install github
# 或者使用 skills(类似 Claude Code 的 skills)
deepseek skill install code-review
deepseek skill install deploy
Skills vs MCP 的区别:
| 维度 | Skills | MCP |
|---|---|---|
| 定义位置 | 本地项目 | 独立服务 |
| 复杂度 | 轻量级 prompt 封装 | 完整的协议规范 |
| 适用场景 | 简单任务自动化 | 复杂系统集成 |
| 灵活性 | 易于自定义 | 标准化接口 |
Hunter Bown 在 GitHub 上表示,MCP 支持是用户呼声最高的功能:「很多人已经在用 Claude Code,他们希望把积累的 MCP 服务器迁移过来」。
四、实战演示:从安装到开发应用
4.1 快速安装
DeepSeek-TUI 提供多种安装方式:
# 方式一:Homebrew(macOS/Linux)
brew install deepseek-tui/deepseek-tui/deepseek-tui
# 方式二:npm(跨平台)
npm install -g deepseek-tui
# 方式三:Cargo(Rust 开发者)
cargo install deepseek-tui
# 方式四:直接下载二进制
# Linux/macOS
curl -fsSL https://deepseek-tui.sh | sh
# Windows
iwr https://deepseek-tui.sh -OutFile deepseek-tui.exe
国内用户加速:
# 使用 TUNA 镜像
export DEEPSEEK_TUI_MIRROR="https://mirrors.tuna.tsinghua.edu.cn"
4.2 首次配置
# 启动引导配置
deepseek-tui
# 或者手动配置 API Key
deepseek auth set --provider deepseek
# 输入你的 DeepSeek API Key
# 查看配置
deepseek config show
配置文件位置:
- macOS:
~/.config/deepseek-tui/config.toml - Linux:
~/.config/deepseek-tui/config.toml - Windows:
%APPDATA%\deepseek-tui\config.toml
配置文件示例:
[model]
provider = "deepseek"
model = "deepseek-v4-pro" # 或 "deepseek-v4-flash"
context_window = 1000000
[model.auto]
enabled = true # 自动选择模型
flash_threshold = "low" # 低复杂度任务用 flash
[ui]
theme = "catppuccin-mocha"
font_size = 14
show_cost = true
show_tokens = true
[tools]
shell = { enabled = true, timeout = 300 }
git = { enabled = true }
file = { enabled = true }
web = { enabled = true }
[agent]
default_mode = "agent" # 默认模式
confirm_destructive = true
max_loop = 100
4.3 开发一个 macOS 剪贴板应用
这是实测中最震撼的体验。以下是我让 DeepSeek-TUI 开发一个剪贴板管理工具的完整过程:
需求描述:
帮我开发一个 macOS 剪贴板工具,功能包括:
1. 记录剪贴板历史
2. 支持钉选重要内容
3. 定期清理去重
4. 菜单栏常驻
DeepSeek-TUI 执行过程(Agent 模式):
[DeepSeek-TUI] 检测到任务:开发 macOS 剪贴板应用
├── [Plan] 分析项目结构
│ ├── 创建 ClipMemo 目录
│ ├── 初始化 Swift 项目
│ └── 配置 XcodeGen
├── [Plan] 实现核心功能
│ ├── ClipboardManager(监控 + 存储)
│ ├── PinManager(钉选管理)
│ └── CleanupService(清理去重)
├── [Plan] 实现 UI
│ ├── StatusBarController(菜单栏)
│ └── PreferencesWindow(设置界面)
└── [Execute] 编译构建
└── ✅ 构建成功:ClipMemo.app
关键代码示例(DeepSeek-TUI 生成的代码片段):
// ClipboardManager.swift
import AppKit
import SQLite3
class ClipboardManager {
private var timer: Timer?
private var lastChangeCount: Int = 0
private let db: OpaquePointer?
init() {
self.db = DatabaseManager.shared.connect()
self.startMonitoring()
}
func startMonitoring() {
timer = Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true) { [weak self] _ in
self?.checkClipboard()
}
}
private func checkClipboard() {
let pasteboard = NSPasteboard.general
let currentCount = pasteboard.changeCount
guard currentCount != lastChangeCount else { return }
lastChangeCount = currentCount
guard let content = pasteboard.string(forType: .string) else { return }
// 存储到数据库
saveToHistory(content: content, type: .text)
}
}
开发成果:
- 总耗时:约 45 分钟
- 总花费:4.7 元(DeepSeek V4 Pro)
- 产出:功能完整的 macOS 剪贴板应用,包含所有需求功能,还额外实现了定期清理和去重逻辑
4.4 Bug 修复实战
测试 DeepSeek-TUI 在复杂代码库中的表现:
# 克隆目标项目
deepseek "帮我检查 https://github.com/gkd-kit/gkd 的潜在 bug"
# DeepSeek-TUI 自动执行:
1. 克隆仓库
2. 分析项目结构(Kotlin + Android Framework)
3. 扫描代码模式
4. 生成可疑点列表
5. 尝试修复
实测结果:
- 执行时间:13 分钟
- 发现问题:3 处
- 修复情况:2 处成功修复,1 处边界条件未处理
与 Codex 对比:
将 DeepSeek-TUI 的修复结果交给 GPT-5.5 Codex 审计:
- Codex 额外发现 3 处问题
- 其中 1 处是 DeepSeek-TUI 漏掉的明确逻辑 bug
结论:DeepSeek-TUI 与顶级商业 Agent 存在差距,但差距正在缩小,且成本优势明显。
五、性能与成本分析
5.1 成本对比
这是 DeepSeek-TUI 最具竞争力的维度。
| 任务类型 | Claude Code | DeepSeek-TUI | 节省比例 |
|---|---|---|---|
| 单次 Bug 修复(~10 分钟) | ¥15-30 | ¥2-5 | 70-80% |
| 新项目初始化 | ¥20-40 | ¥5-10 | 75% |
| 大型代码重构(1 小时) | ¥80-150 | ¥15-30 | 80% |
实测案例:一次 13 分钟的 Bug 修复 + 45 分钟的完整应用开发,总花费 9.47 元。
5.2 Auto 模式:智能成本控制
DeepSeek-TUI 的 Auto 模式会根据任务复杂度自动选择模型:
fn select_model(task: &Task) -> ModelChoice {
let complexity = analyze_complexity(task);
match complexity {
Complexity::Low => ModelChoice::Flash,
Complexity::Medium => ModelChoice::Flash,
Complexity::High => ModelChoice::Pro,
Complexity::Critical => ModelChoice::Pro,
}
}
实际效果:
- 简单查询和探索:自动使用 V4-Flash(便宜 10 倍)
- 复杂代码生成和重构:切换到 V4-Pro
- 临界决策:保留 Pro 模型的能力
5.3 响应速度
| 操作 | 响应时间 | 说明 |
|---|---|---|
| 冷启动 | < 500ms | Rust 原生二进制 |
| 流式输出首字 | < 200ms | 依赖网络延迟 |
| 文件操作 | < 50ms | 本地执行 |
| Shell 命令 | < 100ms | 取决于命令复杂度 |
对比 Node.js 封装的 AI 代理,DeepSeek-TUI 的冷启动速度快了 10 倍以上。
六、与 Claude Code、Codex 的横向对比
6.1 功能矩阵
| 功能 | DeepSeek-TUI | Claude Code | Codex |
|---|---|---|---|
| 平台 | 跨平台 TUI | CLI + IDE | Web + CLI |
| 模型 | DeepSeek V4 | Claude 系列 | GPT 系列 |
| 上下文 | 1M Token | 200K Token | 128K Token |
| MCP 支持 | ✅ 原生 | ✅ | ✅ |
| Skills | ✅ | ✅ | ❌ |
| 子代理并行 | ✅ RLM | ❌ | ❌ |
| 成本 | 极低 | 中等 | 高 |
| 生态成熟度 | 早期 | 成熟 | 成熟 |
6.2 各自的适用场景
选择 DeepSeek-TUI 的理由:
- 预算有限但需要高效 Coding Agent
- 喜欢纯键盘操作,不喜欢切换窗口
- 需要处理超大代码库(> 100K 行)
- 对隐私敏感(本地执行,无需上传代码)
选择 Claude Code 的理由:
- 已经是 Anthropic 生态的用户
- 需要最成熟的 Agent 工程体验
- 需要与 IDE 深度集成
- 愿意为稳定性付费
选择 Codex 的理由:
- OpenAI 生态的深度用户
- 需要最强的模型能力
- 需要完整的图形化界面
6.3 DeepSeek-TUI 的独特优势
# 1. 跨会话记忆图谱
deepseek "继续上次的工作,继续重构"
# 2. 移动端远程操控
# 通过手机 SSH 连接,在地铁上继续编码
# 3. 修改自身源码的能力
# DeepSeek-TUI 可以修改自己的代码,实现自我进化
deepseek "优化我的文件缓存逻辑"
# 4. 蜂群协同机制
# 多个子代理协同处理复杂任务
七、开发者背景:跨界奇才 Hunter Bown
DeepSeek-TUI 的故事本身就是一个值得关注的维度。
7.1 非典型开发者
Hunter Bown 的背景相当「非主流」:
- 教育背景:北得克萨斯大学音乐教育硕士 + SMU 法学院专利法专家
- 职业经历:曾担任三年乐队指挥
- 技术栈:自学编程,以 Rust 为主
他在接受采访时提到,音乐教育背景如何影响了他的编程思维:
「指挥乐团时,我需要协调多个声部,理解整体与部分的关系。这种系统思维直接影响了 DeepSeek-TUI 的 RLM 架构——主模型就像指挥家,子模型就像各个声部演奏者。」
7.2 ShannonLabs 工作室
Hunter 创立了 ShannonLabs 工作室,目前已公开 65 个项目:
# GitHub: Hmbown
# 公开项目涵盖:
-辩证推理引擎
-零成本上下文服务器
-AI 编程工具链
-音乐生成系统
有意思的数据:
- 项目代码主要由 Hunter 本人提交
- 但 Claude 模型参与了超过 150 次代码提交
- 形成独特的「AI 辅助开发 AI 工具」闭环
7.3 中文社区的认可
Hunter 对中国开发者社区展现出特别的尊重:
- 主动用 DeepSeek 将文档翻译成中文
- 接受「鲸鱼兄弟」这个昵称
- 积极响应中文用户的 Issue 和 PR
他在一篇推文中写道:
「感谢中国的鲸鱼兄弟们!你们让这个项目变成了一个真正的全球协作项目。我虽然不懂中文,但我知道我们在做正确的事。」
八、未来展望与局限性
8.1 当前局限性
必须承认的差距:
- 稳定性:相比 Claude Code 的成熟度,DeepSeek-TUI 仍有偶发的崩溃和异常
- IDE 集成:目前是纯 TUI,缺少 VS Code/IDE 插件
- 调试体验:Agent 模式下,如果任务失败,调试体验不如图形化工具
- 上下文召回:长上下文的召回精度仍有提升空间
- 文档:相比 Claude Code 的详尽文档,DeepSeek-TUI 仍在完善中
8.2 路线图展望
根据 GitHub Issues 和 Discussions,以下功能正在开发中:
📋 Planned Features
├── v0.9: VS Code 插件
├── v0.10: Web UI 模式
├── v1.0: 完整的 MCP 市场
└── v1.1: 多模型并行对比
8.3 DeepSeek 官方的态度
值得玩味的是,DeepSeek 官方在 awesome-deepseek-agent 项目中已经收录了 DeepSeek-TUI:
DeepSeek-TUI 或许能够证明 DeepSeek V4 真正进入 Coding Agent 工作流后的巨大优势。
这暗示 DeepSeek 官方可能在考虑推出自己的官方 Agent 框架。如果成真,DeepSeek-TUI 的价值将进一步凸显——它证明了市场对 DeepSeek Coding Agent 的强烈需求。
九、生产环境使用建议
9.1 安全最佳实践
# 1. 设置工作目录限制
export DEEPSEEK_TUI_SANDBOX="/path/to/allowed/directory"
# 2. 禁用危险操作
[tools]
shell = { enabled = true, allowed_commands = ["git", "npm", "cargo"] }
file = { enabled = true, readonly_patterns = ["**/.env", "**/secrets/**"] }
# 3. 审计日志
[logging]
level = "info"
audit_file = "/var/log/deepseek-tui/audit.log"
9.2 企业部署
对于企业场景,建议:
# docker-compose.yml
version: '3.8'
services:
deepseek-tui:
image: deepseek-tui:latest
volumes:
- ./workspace:/workspace
- ./config:/config
environment:
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}
- DEEPSEEK_TUI_MODE=agent
restart: unless-stopped
9.3 团队协作
DeepSeek-TUI 支持会话导出和 Git 版本控制:
# 导出会话
deepseek session export --id abc123 --format markdown
# 分享会话给团队成员
git add .deepseek-tui/sessions/
git commit -m "feat: add refactoring plan for auth module"
十、总结
DeepSeek-TUI 的爆火绝非偶然。它精准地填补了 DeepSeek 生态在 Coding Agent 领域的空白,用 Rust 的高性能和 DeepSeek V4 的低成本高能力,打出了差异化竞争。
核心价值:
- 工程创新:RLM 子代理机制、1M Token 上下文管理、Auto 模型选择
- 成本革命:让高质量 Coding Agent 的使用成本从「月费订阅」变成「按需付费」
- 生态补位:证明了 DeepSeek V4 在专业编程场景的竞争力
对开发者的意义:
- 如果你是 DeepSeek 的忠实用户,DeepSeek-TUI 是你目前最好的 Coding Agent 选择
- 如果你预算有限但追求效率,DeepSeek-TUI 的性价比几乎无对手
- 如果你追求极致的稳定性和生态集成,Claude Code 仍是更好的选择
一句话评价:
DeepSeek-TUI 不是 DeepSeek 官方的 Agent,但它证明了 DeepSeek 生态真正需要的是什么——一个围绕模型深度优化的 Coding Agent 框架,而不仅仅是一个更强的模型。
相关资源:
- GitHub:https://github.com/Hmbown/deepseek-tui
- 官方文档:https://deepseek-tui.sh
- MCP 服务器:https://github.com/Hmbown/deepseek-mcp