前言
你有没有让 AI 帮你做过 PPT?它一顿操作,扔给你一个 .pptx,你打开一看——标题溢出、图表叠在一起、字体东倒西歪。你跟它说「标题太大了」,它改完又说「现在又太小了」。来回五六轮,你放弃了,自己动手调。
这不怪 AI 笨。问题在于:AI 操作 Office 文件时是个瞎子。它能看到 XML 结构、能改属性,但它看不到渲染后的样子。就像一个设计师蒙着眼睛用代码画图——画完了揭开眼罩才知道画成什么样。
OfficeCLI 就是来解决这个问题的。这玩意给 AI Agent 装了一双眼睛。
OfficeCLI
给 AI Agent 用的 Office 全套——Word、Excel、PPT 都能读、能写、能改。单文件二进制,不依赖 Microsoft Office,一条命令装上就能用。
| 帮我用 python-docx 生成一份 Q4 报告,标题用蓝色加粗,正文加一张图表 |
| 帮我生成一份 Q4 报告,标题蓝色加粗,正文放一张图表 |
核心思路很简单:OfficeCLI 内置了一套 HTML 渲染引擎,能把 .docx、.xlsx、.pptx 原样渲染成网页或截图。Agent 操作完文件,view screenshot 一看——哦标题溢出了,调一下字号;哦两个形状叠了,移开一点。这个「改完→看一眼→再改」的闭环,以前只能人类来做,现在 Agent 自己就能搞定。
而且这玩意不挑环境。渲染引擎是自研的,不依赖 Office 也不依赖 LibreOffice,Docker 里能跑,CI 里能跑,没显示器的服务器上也能跑。
怎么装?
一行搞定,Agent 自己就会装:
curl -fsSL https://officecli.ai/SKILL.md把这个喂给 Claude Code、Cursor、Codex 等任意 Agent,它读完 Skill 文件就知道怎么下载二进制、怎么用所有命令。也支持 brew 和 npm:
brew install officeclinpm install -g @officecli/officecli不止是「能改」,是「能看懂」
大多数 Office 操作库只能改——你告诉它改什么它就改什么,但它不知道改完之后看起来什么样。OfficeCLI 三层架构让 Agent 从「看」到「改」有一条清晰的升级路径:
L1 看 — view 命令给出多种视图:纯文本提取、带注释的结构树、大纲模式、HTML 渲染、PNG 截图。Agent 先看清文档长什么样,再决定怎么改。
L2 改 — get、set、add、remove、move,用路径定位元素。比如 officecli set report.docx /body/p[1]/r[1] --prop bold=true 把第一段第一段文字加粗。不需要理解 XML namespace,路径就是文档结构的自然映射。
L3 裸 XML — 当前两层不够用时(比如改一个 L2 还没支持的属性),直接 raw / raw-set 上 XPath,什么都能改。
Agent 默认从 L1 开始,搞不定了才往下走,节省 token 也减少出错。
Excel 公式引擎——写完就算完了
这是我觉得最骚的部分。OfficeCLI 内置了 350+ 个 Excel 函数的计算引擎。你在单元格里写 =SUM(A1:A10),OfficeCLI 当场给你算出结果。不需要等 Excel 打开重新计算。
支持动态数组函数(FILTER、SORT、UNIQUE、LAMBDA)、金融函数(XIRR、PRICE、YIELD)、统计函数(NORM.DIST、T.TEST、LINEST)……基本上日常会用到的都在。
更绝的是透视表——一条命令从数据源建好,Excel 打开就是现成的:
officecli add sales.xlsx '/Sheet1' --type pivottable \ --prop source='Data!A1:E10000' --prop rows='Region,Category' \ --prop cols=Quarter --prop values='Revenue:sum'模板合并——设计一次,填 N 次
让 Agent 设计布局是贵的(费 token),但填充数据是便宜的。OfficeCLI 的 merge 命令就是干这个的:Agent 做好一个带 {{key}} 占位符的模板,然后你扔一个 JSON 进去,批量生成 100 份报告。每份排版一致,零 token 消耗。
还有个更骚的:dump → batch 往返
你手里有一份人类做的精美文档,想让 Agent 模仿它生成 100 份变体?dump 把整个文档序列化成一份可重放的 JSON 蓝图,Agent 读完这个结构化描述(不是原始 OOXML XML!),改几个参数,batch 回放就出来了。相当于把「我有一个模板」和「帮我批量生成」中间那座桥搭好了。
能派上用场的地方
自动生成报告:从数据库拉数据 → Agent 排版 → OfficeCLI 渲染检查 → 交付。全自动,不用人盯 批量文档处理:100 份合同要把甲方的公司名全换掉,传统做法是雇人手动改两天,现在 Agent + OfficeCLI 跑 10 分钟 CI/CD 文档质检:每次提 PR 自动生成文档预览截图,检查格式有没有崩 非技术人员操作 Office:不会用 Excel 透视表?告诉 Agent「帮我把销售数据按地区汇总,算一下同比增长」,它搞定
最后
OfficeCLI 3 月才新建,到现在 9.4k Star,198pts 上 HN 首页,社区已经在用它做了不少东西。同团队还做了 AionUi——一个桌面端的 AI 办公助手,29k Star,底层就是 OfficeCLI。
说到底,Office 文件是 AI 落地绕不过去的坎。大多数人的工作产出最后都是 .docx、.xlsx、.pptx,但之前的 AI Agent 操作这些文件时是个睁眼瞎。OfficeCLI 给 Agent 装上了眼睛,让「生成→检查→修正」的循环不再是人类的专利。
❝⚠️ 注意事项:OfficeCLI 是 C# 写的单文件二进制,渲染引擎自研所以不需要 Office。但它还不是 100% 覆盖所有 Office 特性——复杂的 VBA 宏、某些冷门图表类型、加密文件暂不支持。模板合并时
{{key}}是纯文本替换,不支持循环和条件逻辑。另外 Windows 上如果杀毒软件报毒,是单文件自解压打包的误报,加白名单即可。
同类工具
python-docx / openpyxl / python-pptx
Python 生态里最常用的 Office 操作三件套,加一块大概 20k ⭐。功能很全,但它们是库不是工具——你得写代码调用,Agent 也得写代码调用。没有渲染能力,Agent 改完不知道自己改成了什么样。OfficeCLI 跟它们的关系不是替代,是升维:把「写代码操作 Office」变成「用自然语言操作 Office」,中间加了一层 Agent 能看懂的视觉反馈。
harness-anything
910 ⭐,MIT。一个 AI Agent 控制中枢,能操作 WPS、MS Office、Zotero、Photoshop 等十几个工具。它的 Office 能力是通过驱动 WPS 或 MS Office 实现的——需要本机装好 Office 软件。OfficeCLI 走的是另一条路:自研渲染引擎,零依赖,纯二进制搞定。前者覆盖面广,后者在 Office 这件事上做得更深。
❝三者的关系:python-docx 是给程序员用的库,harness-anything 是给 Agent 用的遥控器(驱动现有 Office),OfficeCLI 是给 Agent 用的原生 Office 引擎——不用装 Office,自带眼睛,从渲染到底层读写全自己来。
相关资源
📦 iOfficeAI/OfficeCLI:https://github.com/iOfficeAI/OfficeCLI 🌐 官网 + Skill 文件入口:https://officecli.ai 🔌 MCP 集成方式: officecli mcp claude/officecli mcp cursor一键注册☁️ AionUi 桌面端(同团队):https://github.com/iOfficeAI/AionUi
💡 点个关注,带你一起围观最前沿的 Agent 工具生态!
夜雨聆风