Package Exports
- blade-code
- blade-code/dist/blade.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (blade-code) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
🗡️ Blade Code
专注于 LLM 的智能代码助手工具,提供便捷的命令行代码开发体验和强大的工具生态。
✨ 核心特性
- 🎯 智能对话:统一的聊天界面,自动选择合适工具协助回答
- 🧠 会话管理:支持多会话、继续对话、会话恢复功能
- 🔧 丰富工具:内置文件、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
🚀 快速开始
⚡ 零安装试用
# 无需安装,直接试用
npx blade-code "你好,介绍一下自己"
# 启动交互式界面
npx blade-code
# 使用特定选项
npx blade-code --print "解释什么是TypeScript"
📦 安装
# 全局安装(推荐)
npm install -g blade-code
# 然后就可以使用了
blade "你好"
# 或者启动交互式界面
blade
🔐 配置 API 密钥
选择一种方式配置 API 密钥:
# 方式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
💬 基础使用
直接问答
# 基础聊天
blade "什么是人工智能?"
# 代码生成
blade "用Python写一个快速排序"
# 智能工具调用(自动识别需求)
blade "现在几点了?"
blade "查看当前git状态"
blade "帮我审查代码质量"
交互式聊天
# 启动交互式界面
blade
# 打印模式(适合管道操作)
blade --print "解释什么是TypeScript"
# 继续最近的对话
blade --continue
# 使用 MCP 配置文件
blade --mcpConfig path/to/config.json "分析项目数据"
会话管理
# 指定会话ID创建会话
blade --session-id "work" "我叫张三,是前端工程师"
# 继续指定会话
blade --session-id "work" "你还记得我的职业吗?"
# 继续最近的对话
blade --continue "昨天我们聊了什么?"
# 恢复特定对话
blade --resume conversation-id "继续之前的讨论"
🔧 工具生态
Blade 内置多种实用工具,通过自然语言即可调用:
🤖 智能处理
功能 | 使用示例 |
---|---|
代码分析 | "审查我的 app.js 代码" |
文档生成 | "为项目生成 README" |
自动化任务 | "分析 Git 变更并提交" |
📂 内置工具
类别 | 主要功能 |
---|---|
文件操作 | 读写文件、多文件编辑、文件系统操作 |
搜索工具 | 文件搜索、全文检索、模式匹配 |
Shell 工具 | 命令执行、脚本运行、后台任务 |
网络工具 | HTTP 请求、API 调用、Web 抓取 |
任务管理 | 任务调度、并发执行、结果处理 |
🛡️ 安全确认机制
所有写入操作都提供智能确认:
blade "删除临时文件"
# 📋 建议执行以下命令:
# rm temp.txt
# 风险级别: 中等
# ✔ 是否执行? Yes
风险级别:
- 🟢 安全 - 只读操作,自动执行
- 🟡 中等 - 普通写入,需要确认
- 🟠 高风险 - 覆盖文件,重点确认
- 🔴 极高风险 - 危险操作,严格确认
🎭 使用场景
智能助手
# 知识问答
blade "解释微服务架构"
# 代码相关
blade "审查我的代码并优化"
blade "生成项目文档"
blade "帮我重构这个函数"
# 调试模式
blade --debug "分析性能问题"
特点: 通用问答、代码生成、智能工具调用、上下文理解
🌟 高级功能
配置管理
# 配置管理
blade config
# 设置配置项(具体用法需查看帮助)
blade config --help
MCP 服务器
# 管理 MCP 服务器
blade mcp
# 加载 MCP 配置
blade --mcp-config config.json "使用外部工具"
# 严格模式(仅使用指定配置)
blade --strict-mcp-config --mcp-config config.json "查询"
模型和会话
# 指定模型
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 应用入口
开发命令
# 开发模式 (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/ # 安全测试
🤝 贡献
我们欢迎各种形式的贡献!请查看 贡献指南 了解详细信息。
📄 许可证
MIT License
💡 使用技巧
选择合适的模式
- 快速问答:
blade "问题"
- 一次性问题 - 持续对话:
blade -i
- 复杂任务讨论 - 流式输出:
添加 --stream
- 更好的交互体验 - 记忆对话:
添加 --context
- AI 记住历史
智能工具最佳实践
- 用自然语言描述需求,让 AI 自动选择工具
- 说"请审查代码"而不是记忆具体工具名
- 让 AI 分析 Git 变更,生成更好的提交信息
- 使用场景模式获得专业的回复风格
常见问题
Q: API 密钥错误?
# 检查配置
echo $QWEN_API_KEY
# 或直接指定
blade --api-key your-key "测试"
Q: 如何更换模型?
blade --provider volcengine "你好"
blade --model qwen-max-latest "复杂问题"
Q: 工具调用失败?
- 确保在正确的目录(Git 工具需要 Git 仓库)
- 检查文件权限(文件工具需要读写权限)
- 使用
blade tools list
查看可用工具
🗡️ Blade - 让 AI 成为你的命令行伙伴!