English | 简体中文
AI 驱动的命令行助手,支持流式输出、Markdown 渲染和多厂商模型。
Tai 是一个基于 Rust 的 CLI 工具,将对话式 AI 带到你的终端,具有:
- 精美的流式输出和推理过程可视化
- 原生 Markdown 渲染和语法高亮
- 自动对话历史记录管理
- 多厂商支持(OpenAI、DeepSeek 等)
- 快速高效,零活动循环
自然语言转命令行:
tai go "列出所有 rust 文件"
# 生成并复制到剪贴板: ls **/*.rs在终端直接与 AI 模型对话,实时显示推理过程:
tai ask "解释 Rust 的所有权系统"特性:
- 流式输出:实时查看 AI 的回答生成过程
- 推理可视化:灰色文本展示思考过程
- Markdown 渲染:表格、代码块等格式精美呈现
- 可滚动查看:使用方向键浏览长回答
- 文件附加:使用
-f将文件作为上下文
自动保存每次对话,随时回顾:
# 查看上一次对话
tai ask -c
# 浏览最近 10 条对话
tai ask -c 10特性:
- 自动保存(最多 50 条最近记录)
- 方向键交互式选择
- 完整 Markdown 渲染
- 智能清理旧记录
轻松在不同 AI 模型和厂商间切换:
# 交互式模型选择器
tai model
# 直接切换
tai model gpt-4o-mini支持的厂商:
- OpenAI:GPT-4o, GPT-4o-mini
- DeepSeek:DeepSeek-Chat, DeepSeek-Reasoner
- 自定义厂商(通过 API 兼容性)
收集系统信息供 AI 参考:
tai init收集操作系统信息、环境详情,并保存到 ~/.tai/sysinfo.txt。
git clone https://github.com/yourusername/tai.git
cd tai
cargo build --release可执行文件位于 target/release/tai。
- Rust 1.93 或更高版本
- Windows 10+ / macOS / Linux
- 支持 ANSI 颜色的终端
在 ~/.tai/providers.json 中配置 API 凭证:
[
{
"provider": "openai",
"base_url": "https://api.openai.com/v1",
"api_key": "sk-your-api-key-here",
"model_names": ["gpt-4o-mini", "gpt-4o"]
},
{
"provider": "deepseek",
"base_url": "https://api.deepseek.com",
"api_key": "sk-your-api-key-here",
"model_names": ["deepseek-chat", "deepseek-reasoner"]
}
]当前模型存储在 ~/.tai/active_model.txt,格式为 provider/model_name。
~/.tai/
├── providers.json # API 配置
├── active_model.txt # 当前活跃模型
├── sysinfo.txt # 系统信息
├── cache/
│ └── history/ # 对话历史
│ ├── 20260220_091234.md
│ └── ...
└── tai-*.log # 滚动日志文件
tai ask "Rust 的优势是什么?"响应会实时流式输出,推理过程显示为灰色,回答显示为白色。
tai ask -f Cargo.toml "分析这个项目的依赖"将 Cargo.toml 作为上下文附加给 AI。
# 上一次对话
tai ask -c
# 浏览最近的对话
tai ask -c 10使用方向键导航,Enter 选择,q 退出。
流式输出完成后,按任意键进入可滚动查看器:
控制键:
↑/k- 向上滚动↓/j- 向下滚动PageUp- 上一页PageDown- 下一页q- 退出查看器
Tai 使用两阶段渲染策略以获得最佳性能:
- 流式阶段:原始 markdown 输出,提供实时反馈
- 完成阶段:使用
termimad在备用屏幕中美化渲染
| 功能 | 支持 | 示例 |
|---|---|---|
| 标题 (H1-H6) | ✅ | # 标题 |
| 代码块 | ✅ | ```rust\nfn main() {}\n``` |
| 行内代码 | ✅ | `代码` |
| 表格 | ✅ | | 列1 | 列2 | |
| 列表 | ✅ | - 项目 / 1. 项目 |
| 粗体/斜体 | ✅ | **粗体** / *斜体* |
| 删除线 | ✅ | ~~文本~~ |
| 引用 | ✅ | > 引用 |
| 水平线 | ✅ | --- |
Tai 采用模块化的 Rust workspace 结构:
tai/
├── tai/ # 主二进制程序
├── crates/
│ ├── tai-command/ # CLI 解析和处理器
│ ├── tai-ai/ # AI 客户端核心
│ ├── tai-tui/ # 终端 UI 组件
│ ├── tai-core/ # 共享工具
│ └── tai-pty/ # PTY 支持(开发中)
- rig-core - AI 客户端框架
- clap - 命令行解析
- tokio - 异步运行时
- crossterm - 终端控制
- termimad - Markdown 渲染
- tracing - 日志系统
- 零活动循环:事件驱动架构,无轮询
- 流式处理:响应实时生成,无需等待
- 智能缓冲:高效的增量渲染
- 单例客户端:AI 客户端初始化一次,重复使用
- 最小化分配:谨慎的字符串处理和缓冲区重用
# 开发构建
cargo build
# 优化的 release 构建
cargo build --release
# 运行测试
cargo test# 测试模式(使用本地测试文件)
tai ask test
# 可滚动视图演示
cargo run --example scrollable- 每个文件最多 500 行(超过时提取到子模块)
- 使用
tracing记录日志(文件为 debug,终端为 info) - 优先代码复用而非重复(参见
viewer.rs) - 错误处理:核心函数传播错误,辅助函数记录日志
- 详见
.cursor/skills/tai-rust-best-practices/SKILL.md
日志写入 ~/.tai/tai-{timestamp}.log,具有:
- 按小时滚动
- 最多保留 10 个文件
- 文件中为 debug 级别,终端为 info 级别
查看日志:
# Windows PowerShell
Get-Content ~\.tai\tai-*.log -Tail 50
# Unix
tail -f ~/.tai/tai-*.log创建 ~/.tai/providers.json 并添加 API 凭证(参见配置部分)。
运行 tai model 查看可用模型并选择一个。
检查网络连接。AI 提供商的响应时间因模型和负载而异。
确保终端支持 ANSI 颜色。Windows 用户应使用 Windows Terminal 或 PowerShell 7+。
- 更多 AI 提供商(Anthropic、Google、Ollama)
- 历史记录搜索和过滤
- 导出对话为 markdown
- 通过 CLI 命令配置
- 自定义命令插件系统
- PTY 支持命令执行
- 跨平台路径处理
欢迎贡献!请随时提交 issue 或 pull request。
- 遵循项目的编码风格(参见 skills 文档)
- 为新功能添加测试
- 根据需要更新文档
- 保持文件不超过 500 行
- 使用有意义的提交消息
由 V1hZ 用 ❤️ 创建
注意:这是 Tai 的早期版本。API 和功能可能会随着项目的发展而变化。非常欢迎反馈和贡献!



