TOO-CLI 是一款功能强大的 AI 编程助手,专为终端环境设计。它支持多个主流 AI 提供商,提供智能工具调用、项目分析、Git 集成等丰富功能,帮助开发者提高编程效率。
- 🎯 终端原生:直接在命令行中使用,无需切换应用
- 🤖 多 AI 支持:支持 Anthropic、OpenAI、Google、OpenRouter、Ollama 等
- 🛠️ 智能工具:内置文件操作、Git 管理、代码分析等工具
- 💾 会话管理:支持会话保存、恢复、快照等功能
- 🔍 代码分析:智能分析项目结构、搜索代码符号和内容
- 🌐 MCP 协议:支持 Model Context Protocol,可扩展外部工具
- ✅ AI 对话和代码生成:智能对话,生成高质量代码
- ✅ 文件操作:读取、创建、编辑文件,支持 diff 预览
- ✅ 终端命令执行:安全执行系统命令
- ✅ Git 操作:完整的 Git 工作流支持
- ✅ 多 AI 提供商:灵活切换不同的 AI 模型
- ✅ 项目代码库分析:深度分析项目结构和代码
- ✅ 会话历史和快照:保存和恢复工作状态
- ✅ 纯推理模型兼容:支持纯推理模型
- ✅ 会话管理系统:创建、保存、恢复、快照
- ✅ Git 完整集成:status、add、commit、branch、log、diff、pull、push
- ✅ 项目分析工具:结构分析、代码统计、依赖分析
- ✅ 代码搜索:文件、符号、内容搜索
- ✅ 文件编辑工具:支持 diff 预览
- ✅ 文件内容搜索:ripgrep/grep 支持
- ✅ HTTP 请求工具:发送 HTTP 请求
- ✅ 错误处理和日志系统:完善的错误处理机制
- ✅ 快捷键系统:高效的快捷键操作
- ✅ 命令补全:智能命令自动补全
- ✅ 语法高亮:代码语法高亮显示
- ✅ Diff 可视化:直观的代码差异展示
- ✅ MCP 协议支持:可扩展的工具系统
- ✅ 配置向导:友好的初始配置引导
- Node.js: >= 18.0.0
- 操作系统: Linux, macOS, Windows (WSL)
# 使用 npm 安装
npm install -g too-cli
# 或使用 yarn
yarn global add too-cli
# 或使用 pnpm
pnpm add -g too-clitoo首次运行时,配置向导会自动启动,引导你完成配置。
配置文件位于 ~/.too/config.json
too --version
too --help- Anthropic (Claude) - 推荐
- OpenAI (GPT)
- Google (Gemini)
- OpenRouter - 多模型聚合
- Ollama - 本地模型
{
"provider": "anthropic",
"anthropic": {
"apiKey": "your-api-key",
"model": "claude-3-5-sonnet-20241022"
},
"theme": {
"primaryColor": "#FF6B00",
"secondaryColor": "#2D2D2D",
"textColor": "#FFFFFF",
"accentColor": "#FF8C42"
},
"enableBrowser": false,
"autoSaveSessions": true,
"maxContextRounds": 10
}查看 CONFIG.md 获取完整的配置选项和说明。
| 命令 | 说明 |
|---|---|
/help |
显示帮助信息 |
/clear |
清空消息历史 |
/exit |
退出程序 |
/model |
显示当前模型信息 |
| 命令 | 说明 |
|---|---|
/new |
创建新会话 |
/history |
查看会话历史 |
/save |
保存当前会话 |
/snapshot |
创建会话快照 |
| 快捷键 | 功能 |
|---|---|
Ctrl+C |
退出程序 |
Ctrl+L |
清空屏幕 |
Ctrl+S |
保存会话 |
TOO-CLI 支持 Model Context Protocol (MCP),可以动态加载外部工具。
在 ~/.too/config.json 中配置 MCP 服务器:
{
"mcpServers": [
{
"name": "filesystem",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/directory"]
}
]
}git_status- 查看仓库状态git_add- 添加文件到暂存区git_commit- 提交更改git_diff- 查看差异git_branch- 分支管理git_log- 查看提交历史
analyze_project- 分析项目结构和代码统计search_code- 搜索代码(文件、符号、内容)
read_file- 读取文件write_file- 写入文件list_files- 列出目录文件edit_file- 编辑文件(支持 diff 预览)search_files- 在文件中搜索内容
http_request- 发送 HTTP 请求visit_page- 访问网页
execute_command- 执行终端命令
- 语言: TypeScript 5.4.5
- 运行时: Node.js 18+
- 终端 UI: Ink + React 18.3.1
- AI SDK:
- @anthropic-ai/sdk
- openai
- @google/generative-ai
- @modelcontextprotocol/sdk
- 工具库:
- better-sqlite3(数据存储)
- simple-git(Git 操作)
- web-tree-sitter(代码解析)
- execa(命令执行)
- diff(差异对比)
too-cli/
├── src/
│ ├── cli/ # CLI 入口和命令处理
│ │ ├── index.ts # 主入口
│ │ └── wizard.ts # 配置向导
│ ├── config/ # 配置管理
│ │ ├── index.ts
│ │ ├── manager.ts # 配置管理器
│ │ └── types.ts
│ ├── core/
│ │ ├── ai/ # AI 接口和提供商
│ │ │ ├── index.ts
│ │ │ ├── interface.ts
│ │ │ ├── factory.ts
│ │ │ └── providers/
│ │ │ ├── anthropic.ts
│ │ │ ├── openai.ts
│ │ │ ├── google.ts
│ │ │ ├── openrouter.ts
│ │ │ └── ollama.ts
│ │ ├── analysis/ # 项目分析
│ │ │ ├── index.ts
│ │ │ ├── analyzer.ts
│ │ │ ├── types.ts
│ │ │ ├── schema.ts
│ │ │ ├── indexer.ts
│ │ │ └── search.ts
│ │ ├── errors/ # 错误处理
│ │ │ ├── index.ts
│ │ │ ├── handler.ts
│ │ │ └── types.ts
│ │ ├── git/ # Git 操作
│ │ │ ├── index.ts
│ │ │ ├── operations.ts
│ │ │ ├── diff.ts
│ │ │ └── types.ts
│ │ ├── logger/ # 日志系统
│ │ │ └── index.ts
│ │ ├── mcp/ # MCP 协议
│ │ │ ├── index.ts
│ │ │ ├── client.ts
│ │ │ └── registry.ts
│ │ ├── session/ # 会话管理
│ │ │ ├── index.ts
│ │ │ ├── manager.ts
│ │ │ ├── types.ts
│ │ │ ├── schema.ts
│ │ │ └── storage.ts
│ │ └── tools/ # 工具系统
│ │ ├── index.ts
│ │ ├── registry.ts
│ │ ├── file.ts
│ │ ├── command.ts
│ │ ├── editor.ts
│ │ ├── search.ts
│ │ ├── browser.ts
│ │ └── network.ts
│ ├── ui/ # 终端 UI
│ │ ├── index.ts
│ │ ├── components/
│ │ ├── themes/
│ │ └── shortcuts/
│ │ └── manager.ts
│ └── index.ts # 主入口
├── dist/ # 编译输出
├── package.json
├── tsconfig.json
├── README.md
├── ARCHITECTURE.md
├── CONTRIBUTING.md
├── CHANGELOG.md
├── CONFIG.md
└── LICENSE
查看 ARCHITECTURE.md 获取更详细的架构说明。
# 克隆仓库
git clone https://github.com/MYTPONS/TOO-CLI.git
cd TOO-CLI
# 安装依赖
npm install
# 开发模式
npm run dev
# 构建
npm run build
# 类型检查
npm run typecheck
# 代码检查
npm run lint
# 格式化代码
npm run format| 命令 | 说明 |
|---|---|
npm run dev |
开发模式运行 |
npm run build |
构建项目 |
npm run watch |
监听模式编译 |
npm run typecheck |
TypeScript 类型检查 |
npm run lint |
ESLint 代码检查 |
npm run format |
Prettier 代码格式化 |
- 使用 TypeScript 进行类型检查
- 遵循 ESLint 规则
- 使用 Prettier 格式化代码
- 编写单元测试
- 添加注释和文档
我们欢迎任何形式的贡献!请查看 CONTRIBUTING.md 了解如何参与项目开发。
- 🐛 报告 Bug
- 💡 提出新功能建议
- 📝 改进文档
- 🔧 提交代码修复
- 🌍 帮助翻译
本项目采用 Apache-2.0 许可证。查看 LICENSE 文件了解详情。
查看 CHANGELOG.md 了解版本历史和变更内容。
- ✅ 完整的会话管理系统
- ✅ Git 完整集成
- ✅ 项目分析和代码搜索
- ✅ 文件编辑和搜索工具
- ✅ HTTP 请求支持
- ✅ 错误处理和日志系统
- ✅ MCP 协议支持
- ✅ 配置向导
- ✅ UI 优化(快捷键、补全、高亮、diff)
- ✅ 完善的文档体系
- 作者: MYTPONS
- 邮箱: 1453294616@qq.com
- GitHub: https://github.com/MYTPONS/TOO-CLI
- Issues: https://github.com/MYTPONS/TOO-CLI/issues
感谢所有为本项目做出贡献的开发者!
⭐ 如果这个项目对你有帮助,请给个 Star!
Made with ❤️ by TOO-CLI Team