Skip to content

MYTPONS/TOO-CLI

Repository files navigation

TOO-CLI

AI 编程助手 - 终端原生,支持多 AI 提供商,智能工具调用

Version License Node TypeScript


📖 目录


简介

TOO-CLI 是一款功能强大的 AI 编程助手,专为终端环境设计。它支持多个主流 AI 提供商,提供智能工具调用、项目分析、Git 集成等丰富功能,帮助开发者提高编程效率。

核心优势

  • 🎯 终端原生:直接在命令行中使用,无需切换应用
  • 🤖 多 AI 支持:支持 Anthropic、OpenAI、Google、OpenRouter、Ollama 等
  • 🛠️ 智能工具:内置文件操作、Git 管理、代码分析等工具
  • 💾 会话管理:支持会话保存、恢复、快照等功能
  • 🔍 代码分析:智能分析项目结构、搜索代码符号和内容
  • 🌐 MCP 协议:支持 Model Context Protocol,可扩展外部工具

功能特性

核心功能

  • AI 对话和代码生成:智能对话,生成高质量代码
  • 文件操作:读取、创建、编辑文件,支持 diff 预览
  • 终端命令执行:安全执行系统命令
  • Git 操作:完整的 Git 工作流支持
  • 多 AI 提供商:灵活切换不同的 AI 模型
  • 项目代码库分析:深度分析项目结构和代码
  • 会话历史和快照:保存和恢复工作状态
  • 纯推理模型兼容:支持纯推理模型

新增功能(v0.0.1)

  • 会话管理系统:创建、保存、恢复、快照
  • 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-cli

首次运行

too

首次运行时,配置向导会自动启动,引导你完成配置。

配置文件位于 ~/.too/config.json

验证安装

too --version
too --help

配置说明

支持 AI 提供商

  • 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 保存会话

MCP 协议支持

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 工具

  • 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 了解版本历史和变更内容。

v0.0.1 (2026-01-13) - 测试版本

  • ✅ 完整的会话管理系统
  • ✅ Git 完整集成
  • ✅ 项目分析和代码搜索
  • ✅ 文件编辑和搜索工具
  • ✅ HTTP 请求支持
  • ✅ 错误处理和日志系统
  • ✅ MCP 协议支持
  • ✅ 配置向导
  • ✅ UI 优化(快捷键、补全、高亮、diff)
  • ✅ 完善的文档体系

联系方式


致谢

感谢所有为本项目做出贡献的开发者!


⭐ 如果这个项目对你有帮助,请给个 Star!

Made with ❤️ by TOO-CLI Team

About

too-cli是一个终端个人编码助理

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors