🚀 AI 驱动的命令行工具,专为零技术背景的办公人员设计,让 Excel/CSV 数据处理像说话一样简单。
当前版本: v1.0.0 🎉
- 零门槛自然语言 - 用人话描述需求,无需学习复杂公式
- VLOOKUP 智能替代 - 彻底告别复杂的 Excel 公式
- 会话式体验 - 交互式对话模式,像聊天一样处理数据
- 启动速度 <50ms - Bun 运行时,比 Python 快 30 倍
- Token 优化 - 按需发送元数据,单次操作 <500 tokens
- 混合执行 - 简单任务 TypeScript 直接处理,复杂任务生成 Python 脚本
- 三档风险控制 - Low/Medium/High 灵活配置执行确认
- 代码审查 - 脚本执行前完整展示
- 超时保护 - 自动终止异常执行
- 元信息优先 - 默认不上传完整数据
# 1. 克隆仓库 git clone https://github.com/atoz03/office-ai-cli.git cd office-ai-cli # 2. 安装依赖 (使用 Bun,超快速!) bun install # 3. 配置 API Key cp .env.example .env # 编辑 .env 文件,填入你的 ANTHROPIC_API_KEY # 4. 运行健康检查 bun run doctor
# 查看帮助 bun run dev --help # 开始使用交互式对话模式 bun run dev chat
最简单的使用方式,像聊天一样处理数据:
bun run dev chat
示例对话:
您> 我有两个文件,订单表.xlsx 和 客户表.xlsx,想要按客户ID关联
AI> 好的,我来帮你关联这两个文件...
✓ 意图识别: 数据匹配
✓ 正在处理...
✓ 完成!已输出到 matched_result.xlsx
您> 再帮我筛选出订单金额大于1000的记录
AI> [正在处理...]
快速执行单个任务:
# 数据匹配 (VLOOKUP 替代) ⭐ 最常用功能 bun run dev exec "把 orders.xlsx 和 customers.xlsx 按客户ID关联" # 数据筛选 bun run dev exec "从销售表.xlsx筛选出金额大于1000的订单" # 数据统计 bun run dev exec "统计各部门的销售总额" # 指定输出文件 bun run dev exec "关联订单和客户数据" -o result.xlsx
检查运行环境和依赖:
bun run doctor # 输出示例: # ✓ Bun Runtime: 1.3.0 # ✓ Python: 3.11.5 # ✓ pandas: 已安装 # ✓ API Key: 已配置
控制脚本执行的确认行为:
# LOW (默认): 每次执行前都确认 bun run dev exec "..." # MEDIUM: 首次确认,之后自动 RISK_LEVEL=medium bun run dev exec "..." # HIGH: 完全自动(推荐熟练用户) RISK_LEVEL=high bun run dev exec "..."
永久配置: 在 .env 文件中设置 RISK_LEVEL=medium
| 级别 | 行为 | 适用场景 |
|---|---|---|
| LOW (默认) | 每次执行前都确认 | 新手用户、不熟悉的任务 |
| MEDIUM | 首次确认,之后自动 | 日常重复任务 |
| HIGH | 完全自动,不确认 | 熟练用户、批量处理 |
- Bun - 超快速 JavaScript 运行时
- TypeScript - 类型安全
- Commander.js - CLI 框架
- Inquirer - 交互式对话
- Claude Haiku 4.5 - 快速意图识别
- Claude Sonnet 4.5 - 强大的脚本生成
- SheetJS (xlsx) - Excel 读写
- Danfo.js - TypeScript 数据分析
- Pandas - Python 复杂任务(按需)
// 简单任务 → TypeScript 原生处理 if (intent === "DATA_MATCH" && isSimple) { const result = matchData(file1, file2, key); // 使用 Danfo.js } // 复杂任务 → AI 生成 Python 脚本 else { const script = await generatePythonScript(query); // Claude Sonnet const result = await executePythonScript(script); // 安全执行 }
| 指标 | Python CLI | Office AI CLI (Bun) | 提升 |
|---|---|---|---|
| 启动时间 | ~1.5s | ~50ms | 30x ⚡ |
| 内存占用 | ~80MB | ~30MB | 2.6x |
| 依赖安装 | ~30s | ~3s | 10x |
office-ai-cli/
├── src/
│ ├── cli/ # CLI 命令
│ │ ├── chat.ts # 交互式对话
│ │ ├── doctor.ts # 环境检查
│ │ └── config.ts # 配置管理
│ ├── core/ # 核心逻辑
│ │ ├── executor.ts # 查询执行器
│ │ ├── intent-router.ts # 意图识别
│ │ ├── script-generator.ts # AI 脚本生成
│ │ ├── script-executor.ts # 安全执行
│ │ └── risk-manager.ts # 风险控制
│ ├── ai/ # AI 客户端
│ │ └── client.ts # Claude API
│ ├── tools/ # 数据工具
│ │ ├── data-matcher.ts # VLOOKUP 替代 ⭐
│ │ ├── data-filter.ts # 数据筛选
│ │ ├── data-stats.ts # 数据统计
│ │ └── metadata.ts # Token 优化
│ └── index.ts # CLI 入口
├── examples/ # 示例数据
│ ├── orders.xlsx
│ ├── customers.xlsx
│ └── sales.xlsx
├── package.json
├── tsconfig.json
└── .env.example # 环境变量模板
- 代码审查 - Python 脚本执行前显示完整代码
- 白名单库 - 只允许安全的 Python 库(pandas, openpyxl 等)
- 超时保护 - 脚本执行超时自动终止(默认 300 秒)
- 三档确认 - 可配置执行确认级别
- 元信息优先 - 默认只发送列名和类型,不上传完整数据
# 编译为单文件可执行程序 bun run build # 生成的文件: dist/office-ai (30-50MB) # 可直接分发,无需 node_modules ./dist/office-ai --help
# 安装依赖 bun install # 开发模式 bun run dev <command> # 运行测试 bun test # 端到端测试 RISK_LEVEL=high bun test ./test-e2e.sh # 构建 bun run build
- 交互式对话模式
- VLOOKUP 智能替代(数据匹配)
- 双层 AI 引擎(Haiku + Sonnet)
- 三档风险级别控制
- Token 优化(按需发送)
- 会话上下文管理
- 数据可视化(图表生成)
- 批量文件处理
- 自定义脚本模板
- 成本监控和预算控制
- Word 文档处理
- PDF 表格提取
- 云端存储集成(S3, OSS)
- Web UI 界面
- 极速启动 - 比 Node.js 快 6 倍,比 Python 快 30 倍
- 内置工具 - TypeScript/测试/打包一体化
- 100% 兼容 - 完全兼容 Node.js API
- 单文件编译 -
bun build --compile生成原生二进制 - 依赖安装快 - npm 包安装速度是 npm 的 10 倍
MIT License - 详见 LICENSE 文件
- Bun - 超快速 JavaScript 运行时
- Claude API - 强大的 AI 能力
- Commander.js - 优秀的 CLI 框架
- SheetJS - Excel 处理库
Q: 需要编程基础吗?
A: 完全不需要!这个工具就是为零技术背景的办公人员设计的,用自然语言描述需求即可。
Q: 数据会上传到云端吗?
A: 默认情况下,只上传列名和数据类型等元信息,不会上传完整数据。复杂任务会在本地执行 Python 脚本。
Q: 支持哪些数据格式?
A: 目前支持 Excel (.xlsx, .xls) 和 CSV (.csv) 格式。
Q: API 调用需要花费多少?
A: 使用 Token 优化策略,单次操作通常 <500 tokens。Haiku 模型成本极低(~0ドル.001/次),Sonnet 模型略贵但更强大。
Q: 可以在公司内网使用吗?
A: 可以!支持自定义 API URL,可以配置企业内部的 Claude API 代理。
使命: 让不会技术的人也能轻松处理复杂的数据任务!🚀
技术亮点: Bun (速度) + TypeScript (安全) + Claude AI (智能) 的完美结合!