blade-code
Version:
🗡️ Blade Code - 智能代码助手命令行工具
399 lines (294 loc) • 10.4 kB
Markdown
# 🗡️ Blade Code
专注于 LLM 的智能代码助手工具,提供便捷的命令行代码开发体验和强大的工具生态。
[](https://www.npmjs.com/package/blade-code)
[](https://nodejs.org/)
[](https://opensource.org/licenses/MIT)
## ✨ 核心特性
- 🎯 **智能对话**:统一的聊天界面,自动选择合适工具协助回答
- 🧠 **会话管理**:支持多会话、继续对话、会话恢复功能
- 🔧 **丰富工具**:内置文件、Git、网络、分析等实用工具
- 🤖 **智能助手**:基于 LLM 的自然语言交互和任务处理
- 🔗 **MCP 支持**:支持 Model Context Protocol,可扩展外部资源和工具
- 🛡️ **安全可控**:支持权限管理、工具白名单等安全特性
- 🌟 **多模型支持**:千问(Qwen)、豆包(VolcEngine)、回退机制
- 🚀 **开箱即用**:零配置快速开始,支持环境变量配置
- 🏗️ **现代化架构**:基于 TypeScript 的扁平化设计,使用 Bun 构建
## 🏗️ 架构概览
Blade 采用现代化的 **扁平化单包架构** 设计:
```
src/
├── agent/ # Agent 核心逻辑和控制器
├── cli/ # CLI 配置和中间件
├── commands/ # CLI 命令定义和处理
├── config/ # 统一配置管理
├── context/ # 上下文管理和压缩
├── error/ # 错误处理和恢复
├── ide/ # IDE 集成和扩展
├── logging/ # 日志系统
├── mcp/ # MCP 协议实现
├── prompts/ # 提示模板管理
├── security/ # 安全管理
├── services/ # 共享服务层
├── slash-commands/ # 内置斜杠命令
├── telemetry/ # 遥测和监控
├── tools/ # 工具系统
├── ui/ # UI 组件和界面
├── utils/ # 工具函数
└── blade.tsx # CLI 应用入口
```
**设计特点:**
- **扁平化结构**:减少嵌套层级,简化模块导入
- **领域划分**:按功能领域组织,职责清晰
- **模块化设计**:每个目录独立负责特定功能
- **类型安全**:全面的 TypeScript 覆盖
- **高性能构建**:使用 Bun 原生构建,支持 minification
## 🚀 快速开始
### ⚡ 零安装试用
```bash
# 无需安装,直接试用
npx blade-code "你好,介绍一下自己"
# 启动交互式界面
npx blade-code
# 使用特定选项
npx blade-code --print "解释什么是TypeScript"
```
### 📦 安装
```bash
# 全局安装(推荐)
npm install -g blade-code
# 然后就可以使用了
blade "你好"
# 或者启动交互式界面
blade
```
### 🔐 配置 API 密钥
**选择一种方式配置 API 密钥:**
```bash
# 方式1: 环境变量(推荐)
export QWEN_API_KEY="your-qwen-api-key"
# 方式2: 命令行参数
blade --api-key your-api-key "你好"
# 方式3: .env 文件
cp config.env.example .env
# 编辑 .env 文件填入密钥
```
**获取 API 密钥:**
- 千问: https://dashscope.console.aliyun.com/apiKey
- 火山引擎: https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey
## 💬 基础使用
### 直接问答
```bash
# 基础聊天
blade "什么是人工智能?"
# 代码生成
blade "用Python写一个快速排序"
# 智能工具调用(自动识别需求)
blade "现在几点了?"
blade "查看当前git状态"
blade "帮我审查代码质量"
```
### 交互式聊天
```bash
# 启动交互式界面
blade
# 打印模式(适合管道操作)
blade --print "解释什么是TypeScript"
# 继续最近的对话
blade --continue
# 使用 MCP 配置文件
blade --mcpConfig path/to/config.json "分析项目数据"
```
### 会话管理
```bash
# 指定会话ID创建会话
blade --session-id "work" "我叫张三,是前端工程师"
# 继续指定会话
blade --session-id "work" "你还记得我的职业吗?"
# 继续最近的对话
blade --continue "昨天我们聊了什么?"
# 恢复特定对话
blade --resume conversation-id "继续之前的讨论"
```
## 🔧 工具生态
Blade 内置多种实用工具,通过自然语言即可调用:
### 🤖 智能处理
| 功能 | 使用示例 |
|------|----------|
| 代码分析 | `"审查我的 app.js 代码"` |
| 文档生成 | `"为项目生成 README"` |
| 自动化任务 | `"分析 Git 变更并提交"` |
### 📂 内置工具
| 类别 | 主要功能 |
|------|----------|
| 文件操作 | 读写文件、多文件编辑、文件系统操作 |
| 搜索工具 | 文件搜索、全文检索、模式匹配 |
| Shell 工具 | 命令执行、脚本运行、后台任务 |
| 网络工具 | HTTP 请求、API 调用、Web 抓取 |
| 任务管理 | 任务调度、并发执行、结果处理 |
### 🛡️ 安全确认机制
所有写入操作都提供智能确认:
```bash
blade "删除临时文件"
# 📋 建议执行以下命令:
# rm temp.txt
# 风险级别: 中等
# ✔ 是否执行? Yes
```
**风险级别:**
- 🟢 **安全** - 只读操作,自动执行
- 🟡 **中等** - 普通写入,需要确认
- 🟠 **高风险** - 覆盖文件,重点确认
- 🔴 **极高风险** - 危险操作,严格确认
## 🎭 使用场景
### 智能助手
```bash
# 知识问答
blade "解释微服务架构"
# 代码相关
blade "审查我的代码并优化"
blade "生成项目文档"
blade "帮我重构这个函数"
# 调试模式
blade --debug "分析性能问题"
```
**特点:** 通用问答、代码生成、智能工具调用、上下文理解
## 🌟 高级功能
### 配置管理
```bash
# 配置管理
blade config
# 设置配置项(具体用法需查看帮助)
blade config --help
```
### MCP 服务器
```bash
# 管理 MCP 服务器
blade mcp
# 加载 MCP 配置
blade --mcp-config config.json "使用外部工具"
# 严格模式(仅使用指定配置)
blade --strict-mcp-config --mcp-config config.json "查询"
```
### 模型和会话
```bash
# 指定模型
blade --model qwen-max "复杂问题"
# 设置回退模型
blade --fallback-model qwen-turbo "问题"
# 自定义系统提示
blade --append-system-prompt "你是专家" "请解答"
```
## 📋 命令参考
| 命令 | 功能 | 示例 |
|------|------|------|
| `[message]` | 智能对话 | `blade "你好"` |
| `(无参数)` | 交互式界面 | `blade` |
| `config` | 配置管理 | `blade config set theme dark` |
| `mcp` | MCP服务器管理 | `blade mcp list` |
| `doctor` | 健康检查 | `blade doctor` |
| `update` | 检查更新 | `blade update` |
| `install` | 安装指定版本 | `blade install latest` |
| `setup-token` | 设置认证令牌 | `blade setup-token` |
### 常用参数
- `-p, --print` - 打印模式(适合管道操作)
- `-c, --continue` - 继续最近的对话
- `-r, --resume <id>` - 恢复指定对话
- `-d, --debug` - 启用调试模式
- `--model <name>` - 指定使用的模型
- `--session-id <id>` - 指定会话ID
## 🔧 开发
### 项目结构
```
src/
├── agent/ # Agent 核心逻辑和控制器
├── cli/ # CLI 配置和中间件
├── commands/ # CLI 命令定义和处理
├── config/ # 统一配置管理
├── context/ # 上下文管理和压缩
├── error/ # 错误处理和恢复
├── ide/ # IDE 集成和扩展
├── logging/ # 日志系统
├── mcp/ # MCP 协议实现
├── prompts/ # 提示模板管理
├── security/ # 安全管理
├── services/ # 共享服务层
├── slash-commands/ # 内置斜杠命令
├── telemetry/ # 遥测和监控
├── tools/ # 工具系统
├── ui/ # UI 组件和界面
├── utils/ # 工具函数
└── blade.tsx # CLI 应用入口
```
### 开发命令
```bash
# 开发模式 (Bun watch)
npm run dev
# 构建 (使用 Bun,minified)
npm run build # 完整构建 (CLI + Core)
npm run build:cli # 仅构建 CLI (972KB)
npm run build:core # 仅构建 Core (389KB)
# 运行构建后的 CLI
npm run start
# 类型检查
npm run type-check
# 代码格式化 (Biome)
npm run format
# 代码检查 (Biome lint + format)
npm run check
# 运行测试
npm test
npm run test:coverage
```
### 构建系统
项目使用 **Bun** 作为构建工具,具有以下特点:
- **极速构建**:Bun 原生 TypeScript 支持,构建速度显著提升
- **代码压缩**:生产环境自动 minification
- **分离构建**:CLI 和 Core 可独立构建
- **依赖优化**:智能 external 依赖处理
## 🧪 测试架构
Blade 拥有完整的测试覆盖:
```
tests/
├── unit/ # 单元测试
├── integration/ # 集成测试
├── e2e/ # 端到端测试
└── security/ # 安全测试
```
## 🤝 贡献
我们欢迎各种形式的贡献!请查看 [贡献指南](CONTRIBUTING.md) 了解详细信息。
- 🐛 [报告 Bug](https://github.com/echoVic/blade-code/issues)
- 💡 [功能建议](https://github.com/echoVic/blade-code/issues)
- 🔧 [代码贡献](CONTRIBUTING.md)
## 📄 许可证
MIT License
---
## 💡 使用技巧
### 选择合适的模式
- **快速问答**: `blade "问题"` - 一次性问题
- **持续对话**: `blade -i` - 复杂任务讨论
- **流式输出**: `添加 --stream` - 更好的交互体验
- **记忆对话**: `添加 --context` - AI 记住历史
### 智能工具最佳实践
- 用自然语言描述需求,让 AI 自动选择工具
- 说"请审查代码"而不是记忆具体工具名
- 让 AI 分析 Git 变更,生成更好的提交信息
- 使用场景模式获得专业的回复风格
### 常见问题
**Q: API 密钥错误?**
```bash
# 检查配置
echo $QWEN_API_KEY
# 或直接指定
blade --api-key your-key "测试"
```
**Q: 如何更换模型?**
```bash
blade --provider volcengine "你好"
blade --model qwen-max-latest "复杂问题"
```
**Q: 工具调用失败?**
- 确保在正确的目录(Git 工具需要 Git 仓库)
- 检查文件权限(文件工具需要读写权限)
- 使用 `blade tools list` 查看可用工具
---
**🗡️ Blade - 让 AI 成为你的命令行伙伴!**