DeepSeek-TUI - 终端 AI 编码代理
DeepSeek-TUI 是一个专为 DeepSeek V4 设计的终端 AI 编码代理工具,提供高效的 CLI 交互体验。核心特性包括:流式推理输出、本地工作区集成、三种运行模式(Plan/Agent/YOLO)以及 1M Token 超大上下文支持。采用 Rust 语言开发(占比 98.3%),基于 ratatui 框架实现终端界面,支持跨平台运行。
DeepSeek-TUI
面向 DeepSeek V4 的高性能终端用户界面客户端
项目概述
DeepSeek-TUI 是一个功能强大的终端用户界面(TUI)应用,专为与 DeepSeek AI 模型交互而设计。它提供了完整的编码代理功能,支持流式推理输出、本地工作区编辑、以及多种运行模式,让开发者能够在终端环境中高效地使用 DeepSeek AI。
核心定位
- 终端编码代理: 面向 DeepSeek V4 的完整 CLI 工具
- 流式推理: 实时显示 DeepSeek 模型的思考过程
- 工作区集成: 直接在本地工作区执行文件操作和代码编辑
- 多模式运行: 支持 Plan、Agent、YOLO 三种交互模式
主要特性
| 特性 | 描述 |
|---|---|
| Auto 模式 | --model auto 自动选择最优模型和思考级别 |
| 思考流式输出 | 实时显示 DeepSeek 推理块(reasoning blocks) |
| 完整工具套件 | 文件操作、Shell执行、Git、Web搜索、apply-patch、子代理、MCP服务器 |
| 1M Token 上下文 | 支持超大上下文窗口,带上下文跟踪和压缩功能 |
| 三种运行模式 | Plan(只读探索)、Agent(交互审批)、YOLO(自动审批) |
| 推理级别切换 | off → high → max 三级推理深度循环切换 |
| 会话管理 | 检查点保存与恢复,支持断点续聊 |
| MCP 协议 | 完整支持 Model Context Protocol 服务器连接 |
| LSP 诊断 | 内联显示代码错误和警告 |
技术架构
技术栈
主要语言: Rust (Edition 2024) - 占比 ~98.3%
| 层级 | 技术 | 版本 |
|---|---|---|
| 语言 | Rust | 1.88+ (使用 stabilized let_chains) |
| TUI 框架 | ratatui | v0.29 |
| 终端控制 | crossterm | v0.28 |
| 异步运行时 | tokio | v1.49.0 (full features) |
| HTTP 客户端 | reqwest | v0.13.1 (rustls, streaming) |
| HTTP 服务端 | axum | v0.8.5 |
| 序列化 | serde / serde_json | v1.0.228 / v1.0.149 |
| CLI 解析 | clap | v4.5.54 |
| 持久化 | rusqlite | v0.32.1 |
| 行编辑 | rustyline | v15.0.0 |
| 剪贴板 | arboard | v3.4 |
语言分布
| 语言 | 字节数 | 占比 |
|---|---|---|
| Rust | 6,158,641 | ~98.3% |
| JavaScript | 50,474 | ~0.8% |
| HTML | 35,809 | ~0.6% |
| Shell | 10,869 | ~0.2% |
| Dockerfile | 2,664 | ~0.04% |
模块化 Workspace 结构(14 个 Crate)
DeepSeek-TUI/
├── crates/
│ ├── agent/ # 代理编排逻辑
│ ├── app-server/ # HTTP/SSE 运行时 API 服务
│ ├── cli/ # 分发命令入口 (deepseek)
│ ├── config/ # 配置管理
│ ├── core/ # 核心引擎和流式客户端
│ ├── execpolicy/ # 执行策略处理
│ ├── hooks/ # 扩展性钩子系统
│ ├── mcp/ # MCP 协议实现
│ ├── protocol/ # OpenAI 兼容协议
│ ├── secrets/ # API Key 管理
│ ├── state/ # 会话状态管理
│ ├── tools/ # 工具注册 (shell, file, git, web, MCP等)
│ ├── tui/ # TUI 二进制 (deepseek-tui)
│ └── tui-core/ # TUI 核心组件
├── docs/ # 文档
├── website/ # 网站资源
├── npm/ # npm 封装包
├── scripts/ # 构建脚本
└── vendor/ # Vendored 依赖
架构流程
deepseek (分发CLI) → deepseek-tui (伴侣二进制) →
ratatui界面 ↔ 异步引擎 ↔ OpenAI兼容流式客户端
核心组件
| Crate | 功能 |
|---|---|
| cli | 命令行入口点,参数解析 |
| tui | TUI 应用主入口,ratatui 界面 |
| tui-core | UI 组件:聊天显示、输入框、状态栏 |
| core | DeepSeek API 客户端,流式响应处理 |
| tools | 工具注册表:Shell、文件、Git、Web、MCP、子代理 |
| state | 会话状态,持久化队列,检查点恢复 |
| mcp | Model Context Protocol 实现 |
关键依赖详解
TUI 相关依赖:
| 包名 | 版本 | 用途 |
|---|---|---|
ratatui |
0.29 | TUI 框架,即时渲染模型 |
crossterm |
0.28 | 跨平台终端控制 |
schemaui |
0.12.0 | UI schema 系统(TUI/Web) |
rustyline |
15.0.0 | 交互式行编辑/Readline |
unicode-width |
0.2 | Unicode 文本宽度计算 |
unicode-segmentation |
1.12 | Unicode 分词 |
portable-pty |
0.8 | PTY 处理 |
数据处理依赖:
| 包名 | 版本 | 用途 |
|---|---|---|
image |
0.25 | 图像处理(PNG) |
pdf-extract |
0.7 | PDF 提取 |
ignore |
0.4 | Gitignore 风格过滤 |
sha2 |
0.10 | SHA 哈希 |
zeroize |
1.8.2 | 安全内存清零 |
脚本与扩展:
| 包名 | 版本 | 用途 |
|---|---|---|
starlark |
0.13.0 | 内嵌脚本语言 |
tiny_http |
0.12 | 轻量 HTTP 服务 |
架构模式
| 模式 | 说明 |
|---|---|
| Workspace 模块化 | 14 个独立 crate,关注点分离 |
| 异步架构 | 全 tokio 运行时,并发操作 |
| 流式 API | OpenAI 兼容协议,DeepSeek V4 专用 |
| 工具注册表 | Shell/文件/Git/Web/MCP/子代理统一管理 |
| 会话状态 | 持久化队列,检查点恢复 |
| HTTP/SSE API | deepseek serve --http 无头代理模式 |
安装指南
方式一: npm 安装(推荐 - 自动下载预编译二进制)
npm install -g deepseek-tui
方式二: Cargo 安装(Rust 原生编译)
cargo install deepseek-tui-cli --locked # deepseek 入口命令
cargo install deepseek-tui --locked # TUI 二进制
方式三: Homebrew (macOS)
brew tap Hmbown/deepseek-tui
brew install deepseek-tui
方式四: Windows Scoop
scoop install deepseek-tui
方式五: 直接下载二进制
从 GitHub Releases 下载预编译版本:
- Linux x64 / ARM64
- macOS x64 / ARM64
- Windows x64
方式六: 源码编译
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
cargo build --release
注意: 需要 Rust 1.88+ 编译器
配置说明
API Key 配置
获取 API Key: 访问 DeepSeek Platform 注册获取
配置方式:
# 方式一: 环境变量
export DEEPSEEK_API_KEY=your_api_key_here
# 方式二: 命令行设置
deepseek auth set
配置文件位置
| 类型 | 路径 |
|---|---|
| 用户配置 | ~/.deepseek/config.toml |
| 项目覆盖 | <workspace>/.deepseek/config.toml |
关键环境变量
| 变量 | 说明 |
|---|---|
DEEPSEEK_API_KEY |
API 密钥 |
DEEPSEEK_BASE_URL |
API Base URL |
DEEPSEEK_MODEL |
默认模型 |
DEEPSEEK_PROVIDER |
提供商选择: deepseek, nvidia-nim, fireworks, sglang, vllm |
DEEPSEEK_PROFILE |
配置 Profile 名称 |
DEEPSEEK_MEMORY |
启用用户记忆 (on) |
NVIDIA_API_KEY |
NVIDIA NIM 认证 |
FIREWORKS_API_KEY |
Fireworks 认证 |
SGLANG_API_KEY |
SGLang 认证 |
VLLM_API_KEY |
vLLM 认证 |
SGLANG_BASE_URL |
自托管 SGLang 端点 |
VLLM_BASE_URL |
自托管 vLLM 端点 |
NO_ANIMATIONS=1 |
强制无障碍模式 |
SSL_CERT_FILE |
企业代理 CA 证书 |
使用方法
基本命令
deepseek # 启动交互式 TUI
deepseek "explain this function" # 单次提示模式
deepseek --model auto # 自动选择模型+思考级别
deepseek --yolo # 自动审批所有工具操作
deepseek auth set # 保存 API 密钥
deepseek doctor # 检查设置和连接状态
deepseek sessions # 列出已保存会话
deepseek resume --last # 恢复最近会话
运行模式
| 模式 | 说明 | 适用场景 |
|---|---|---|
| Plan | 只读探索模式 | 代码分析、架构研究 |
| Agent | 交互审批模式 | 需要确认的操作 |
| YOLO | 自动审批模式 | 自动化工作流 |
键盘快捷键
| 按键 | 功能 |
|---|---|
Tab |
补全 / 或 @ 条目;运行时排队后续任务 |
Shift+Tab |
循环推理级别: off → high → max |
F1 |
打开可搜索帮助覆盖层 |
Esc |
返回/关闭 |
Ctrl+K |
命令面板 |
Ctrl+R |
恢复早期会话 |
Alt+R |
搜索提示历史 |
Ctrl+S |
暂存当前草稿 |
@path |
在编辑器中附加文件/目录上下文 |
Ctrl+N |
新建对话 |
Ctrl+Q |
退出应用 |
Ctrl+C |
取消当前流式响应 |
Enter |
发送消息 |
Shift+Enter |
输入框插入换行 |
模型与定价
DeepSeek 官方模型
| 模型 | 上下文窗口 | 特点 |
|---|---|---|
deepseek-v4-pro |
1M tokens | 高性能推理模型,适合复杂任务 |
deepseek-v4-flash |
1M tokens | 快速响应模型,适合日常对话 |
deepseek-chat |
1M tokens | Legacy alias → deepseek-v4-flash |
deepseek-reasoner |
1M tokens | Legacy alias → deepseek-v4-flash |
DeepSeek 定价详情
| 模型 | 输入(缓存命中) | 输入(缓存未命中) | 输出 |
|---|---|---|---|
deepseek-v4-pro |
$0.003625/1M | $0.435/1M | $0.87/1M |
deepseek-v4-flash |
$0.0028/1M | $0.14/1M | $0.28/1M |
注意: DeepSeek Pro 价格目前享受 75% 折扣(有效期至 2026-05-31 15:59 UTC),之后将恢复标准价格。
其他 API 提供商
DeepSeek-TUI 支持多种第三方和自托管 API 提供商:
| 提供商 | 命令参数 | 说明 |
|---|---|---|
| DeepSeek | --provider deepseek |
默认官方 API |
| NVIDIA NIM | --provider nvidia-nim |
NVIDIA 云服务 |
| Fireworks | --provider fireworks |
Fireworks AI 平台 |
| SGLang | --provider sglang |
自托管 SGLang 推理服务 |
| vLLM | --provider vllm |
自托管 vLLM 推理服务 |
| Ollama | 自定义 DEEPSEEK_BASE_URL |
本地 Ollama 运行(OpenAI 兼容) |
提供商配置示例
# 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 提供了 OpenAI 兼容 API,可以直接与 DeepSeek-TUI 配合使用。
Ollama 端点说明
| 端点 | Ollama 地址 |
|---|---|
| Base URL | http://localhost:11434/v1 |
| Chat Completions | http://localhost:11434/v1/chat/completions |
| Models | http://localhost:11434/v1/models |
配置步骤
1. 启动 Ollama 并拉取模型
# 启动 Ollama 服务
ollama serve
# 拉取常用模型
ollama pull llama3.2
ollama pull deepseek-r1:7b # Ollama 版 DeepSeek
ollama pull qwen2.5:7b
ollama pull mistral
2. 配置 DeepSeek-TUI 使用 Ollama
# 方式一: 设置 Base URL
export DEEPSEEK_BASE_URL="http://localhost:11434/v1"
deepseek --model llama3.2 "Hello"
# 方式二: 使用 vLLM 提供商参数(兼容 OpenAI 端点)
VLLM_BASE_URL="http://localhost:11434/v1" deepseek --provider vllm --model llama3.2
# 使用 Ollama 的 DeepSeek 模型
export DEEPSEEK_BASE_URL="http://localhost:11434/v1"
deepseek --model deepseek-r1:7b "Write a function"
Ollama 常用模型列表
| 模型 | 大小 | 说明 |
|---|---|---|
llama3.2 |
3B | Meta Llama 3.2 |
deepseek-r1:7b |
7B | DeepSeek R1 推理模型 |
deepseek-coder:6.7b |
6.7B | DeepSeek 代码模型 |
qwen2.5:7b |
7B | 通义千问 2.5 |
mistral |
7B | Mistral 模型 |
codellama |
7B | Code Llama 代码模型 |
Ollama 使用注意事项
- API Key: Ollama 默认不需要 API Key,可忽略或设置任意值
- 模型名称: 使用 Ollama 中的实际模型名(可通过
ollama list查看) - 推理块: Ollama 对 reasoning blocks 的支持可能有限
- 上下文: 本地模型的上下文窗口取决于模型本身,通常小于 1M tokens
- 性能: 推理速度取决于本地硬件(CPU/GPU/内存)
验证 Ollama 连接
# 检查 Ollama 服务状态
curl http://localhost:11434/v1/models
# 使用 DeepSeek-TUI 诊断
export DEEPSEEK_BASE_URL="http://localhost:11434/v1"
deepseek doctor
提供商认证环境变量
| 变量 | 说明 |
|---|---|
DEEPSEEK_API_KEY |
DeepSeek API 密钥 |
DEEPSEEK_BASE_URL |
API 端点 URL(可用于 Ollama 等自定义端点) |
NVIDIA_API_KEY |
NVIDIA NIM 认证 |
FIREWORKS_API_KEY |
Fireworks 认证 |
SGLANG_API_KEY |
SGLang 认证(可选) |
VLLM_API_KEY |
vLLM 认证(可选) |
SGLANG_BASE_URL |
SGLang 自托管端点 URL |
VLLM_BASE_URL |
vLLM 自托管端点 URL(也可用于 Ollama) |
提示: Ollama 使用
DEEPSEEK_BASE_URL="http://localhost:11434/v1"或VLLM_BASE_URL配置
功能详解
流式推理输出
DeepSeek-TUI 支持 DeepSeek 模型的推理块(reasoning blocks)实时流式显示,让用户能够看到 AI 的思考过程。
[Reasoning]
分析代码结构...
检查依赖关系...
生成解决方案...
[Response]
这里是最终的回答...
工具套件
完整的开发工具支持:
- 文件操作: 读取、写入、编辑文件
- Shell执行: 运行命令行指令
- Git: 版本控制操作
- Web搜索: 实时网络查询
- apply-patch: 代码补丁应用
- 子代理: 任务分解执行
- MCP服务器: 扩展工具连接
MCP 协议集成
支持 Model Context Protocol,可连接外部工具和服务:
[mcp.servers]
github = { command = "gh-mcp-server" }
database = { command = "mysql-mcp-server" }
依赖清单
核心依赖(Workspace)
tokio = "1.49.0" # 异步运行时(full features)
reqwest = "0.13.1" # HTTP 客户端(rustls, json, streaming)
serde = "1.0.228" # 序列化框架
serde_json = "1.0.149" # JSON 处理
clap = "4.5.54" # CLI 参数解析
axum = "0.8.5" # HTTP 服务端
rusqlite = "0.32.1" # SQLite 持久化
tracing = "0.1" # 日志/追踪
toml = "0.9.7" # 配置文件解析
anyhow = "1.0.100" # 错误处理
thiserror = "2.0" # 自定义错误类型
chrono = "0.4.43" # 时间处理
uuid = "1.11" # UUID 生成
TUI 专用依赖
ratatui = "0.29" # TUI 框架
crossterm = "0.28" # 终端控制
schemaui = "0.12.0" # UI schema 系统
rustyline = "15.0.0" # 行编辑/Readline
arboard = "3.4" # 剪贴板支持
colored = "3.0.0" # 终端颜色
portable-pty = "0.8" # PTY 处理
unicode-width = "0.2" # Unicode 宽度
unicode-segmentation = "1.12" # Unicode 分词
扩展功能依赖
image = "0.25" # 图像处理(PNG)
pdf-extract = "0.7" # PDF 提取
starlark = "0.13.0" # 内嵌脚本语言
tiny_http = "0.12" # 轻量 HTTP
ignore = "0.4" # Gitignore 过滤
sha2 = "0.10" # SHA 哈希
zeroize = "1.8.2" # 安全内存清零
系统要求
| 要求 | 说明 |
|---|---|
| Rust 编译器 | 1.88+ (编译源码需要) |
| 操作系统 | Linux x64/ARM64, macOS x64/ARM64, Windows x64 |
| 终端 | 支持 ANSI 颜色的现代终端 |
| 网络 | DeepSeek API 访问权限 |
预编译版本: 通过 npm/Homebrew/Scoop 安装无需 Rust 编译器
常见问题
Q: API Key 无效?
确保已正确设置环境变量或通过 deepseek auth set 配置。
Q: 无法连接 API?
检查网络连接和防火墙设置,运行 deepseek doctor 诊断。
Q: 如何恢复之前的会话?
使用 deepseek resume --last 或 Ctrl+R 恢复历史会话。
项目信息
| 项目 | 信息 |
|---|---|
| 仓库地址 | https://github.com/Hmbown/DeepSeek-TUI |
| 作者 | Hmbown |
| 版本 | v0.8.14 |
| 主要语言 | Rust (Edition 2024) - 98.3% |
| 许可证 | MIT License |
| 文档目录 | docs/ |
| Rust 要求 | 1.88+ (stabilized let_chains) |
相关链接
- DeepSeek Platform - API 注册
- GitHub Repository - 源代码
- npm Package - npm 包
- crates.io CLI - Cargo 包
- ratatui 文档 - TUI 框架文档
更多推荐



所有评论(0)