5.6 KiB
5.6 KiB
AI Terminal Assistant
🌟 项目概述
AI Terminal Assistant 是一个综合性的 AI 驱动开发工具包,帮助开发者更高效地编写代码、调试问题和管理项目。作为模块化的 monorepo 架构,它提供多种界面(CLI、Web、Desktop)与 Claude AI 交互,完成各种编程任务。
✨ 特性
核心功能
- 🧠 高级 AI 代理 - 基于 Claude API 的流式响应
- 🔧 丰富的工具系统 - 文件操作、bash 命令、代码搜索等
- 📝 智能代码编辑 - 多种编辑模式(整体、差异、搜索替换)
- 🔍 语言服务协议 - 类 IDE 的代码智能提示
- 💾 检查点系统 - Shadow Git 安全实验
- 🔌 模型上下文协议 - 可扩展的工具集成
- 🎣 钩子系统 - 执行前后的自定义处理
用户界面
- 🖥️ CLI - 原生终端体验,支持 serve/attach 模式
- 🌐 Web UI - 现代化 React 界面,实时更新
- 🖱️ 桌面应用 - 基于 Tauri 的原生应用(即将推出)
开发体验
- 📦 Monorepo 架构 - 清晰的关注点分离
- 🚀 基于 Bun 构建 - 快速运行时和打包
- 🔥 热重载 - 即时反馈的开发体验
- 🧪 全面的测试 - 单元测试和集成测试
- 📊 类型安全 - 完整的 TypeScript 支持
🚀 快速开始
前置要求
- Node.js 18+ 或 Bun 1.0+
- pnpm 8.0+
- Anthropic API Key
安装
# 克隆仓库
git clone <repository-url>
cd ai-terminal-assistant
# 安装依赖
pnpm install
# 设置环境变量
cp .env.example .env
# 编辑 .env 文件,添加你的 ANTHROPIC_API_KEY
# 构建所有包
pnpm build
运行应用
选项 1:Web 界面
# 启动服务器
pnpm server:dev
# 在另一个终端,启动 Web UI
pnpm web:dev
# 在浏览器中打开 http://localhost:5173
选项 2:CLI 模式
# 启动服务器
cd packages/cli && bun run src/index.ts serve --port 3000
# 在另一个终端,连接到服务器
cd packages/cli && bun run src/index.ts attach http://localhost:3000
📦 包结构
这个 monorepo 包含四个主要包:
| 包名 | 描述 | 状态 |
|---|---|---|
| @ai-assistant/core | 核心代理引擎、工具和集成 | ✅ 稳定 |
| @ai-assistant/server | HTTP/WebSocket 服务器,提供 REST API | ✅ 稳定 |
| @ai-assistant/cli | 命令行界面 | ✅ 稳定 |
| @ai-assistant/web | 基于 React 的 Web 界面 | ✅ 稳定 |
| @ai-assistant/desktop | 基于 Tauri 的桌面应用 | 🚧 开发中 |
🏗️ 架构
graph TD
Web[Web UI] --> Server
CLI[CLI] --> Server
Desktop[桌面应用] --> Server
Server --> Core[核心引擎]
Core --> Tools[工具系统]
Core --> LSP[语言服务器]
Core --> MCP[模型上下文协议]
Core --> Checkpoint[检查点系统]
技术栈
- 运行时: Bun / Node.js
- 语言: TypeScript
- 服务器: Hono + Bun WebSocket
- 前端: React + Vite + Tailwind CSS
- 桌面: Tauri (Rust + WebView)
- 测试: Vitest
- 包管理: pnpm (monorepo)
📖 文档
详细文档位于 docs 目录:
🛠️ 开发
常用命令
# 安装依赖
pnpm install
# 构建所有包
pnpm build
# 运行测试
pnpm test
pnpm test:coverage
# 代码检查
pnpm lint
# 类型检查
pnpm typecheck
# 清理构建产物
pnpm clean
特定包开发
# 开发特定包
pnpm --filter @ai-assistant/core dev
pnpm --filter @ai-assistant/server test
pnpm --filter @ai-assistant/web build
🔧 配置
环境变量
在根目录创建 .env 文件:
# 必需
ANTHROPIC_API_KEY=sk-ant-xxxxx
# 可选
AI_MODEL=claude-sonnet-4-20250514
AI_MAX_TOKENS=4096
SERVER_PORT=3000
SERVER_HOST=localhost
支持的模型
claude-sonnet-4-20250514(默认)claude-haiku-3-20251120- 其他 Claude 模型
🤝 贡献
欢迎贡献!请查看我们的贡献指南了解详情。
- Fork 仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 开启 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🙏 致谢
- 基于 Anthropic 的 Claude API 构建
- 由 Bun 提供快速 JavaScript 运行时
- UI 组件来自 Tailwind CSS
- 桌面应用基于 Tauri 构建
📞 支持
- 📧 邮箱:support@example.com
- 💬 Discord:加入我们的社区
- 🐛 问题反馈:GitHub Issues
由 AI Terminal Assistant 团队用 ❤️ 制作