
如果你让 AI Agent 写过 PPT,就一定经历过那种"写了但看不见"的尴尬。
文档自动化这个领域,很长一段时间里开发者和 Agent 都在用同一批 Python 库(python-pptx、python-docx、openpyxl)。
这些库能读写结构,但渲染是另一个世界的事。你要预览?那就得装 LibreOffice,或者让它去调微软的 Graph API。Agent 在服务器里跑得好好的,一到渲染环节就卡壳。
这就导致一个很尴尬的现象:Agent 能"写"文档,但不能"看"文档。 它写出来的东西自己没法质检,交付质量完全靠运气。
直到 OfficeCLI 出现,这件事才真正有了转机。

OfficeCLI 是一个面向 AI Agent 的 Office 文档命令行工具,支持 .docx、.xlsx、.pptx 的创建、读取、分析和修改。
它是单二进制分发,不需要本机装 Microsoft Office,也不需要 Python 环境。

它的核心价值其实分成两层,而第二层才是真正关键的:
第一层:把 Office 文档变成 Agent 能操作的结构化对象。
不管是 PPT 里的 slide、shape、table、chart、动画、3D 模型,还是 Word 里的段落、样式、表格、公式、脚注、修订追踪,还是 Excel 里的单元格、公式、数据透视表、条件格式——OfficeCLI 都能用命令行路径的方式直接定位和操作。
比如你想在第一张幻灯片上加一个文本框,只需要:
officecli add deck.pptx '/slide[1]' --type shape \
--prop text="Revenue grew 25%" --prop x=2cm --prop y=5cm \
--prop font=Arial --prop size=24 --prop color=FFFFFF对比一下 Python 的写法(import、Inches、Pt、slide_layouts……至少 10 行起步),差距一目了然。
第二层(更关键):自带渲染能力,能把 Word / Excel / PPT 渲染成 HTML 或 PNG。
这意味着 Agent 写完文档后可以立刻"看"到结果——它可以把渲染出的 PNG 喂给多模态模型,或者直接读 HTML 结构来判断排版是否合理。
OfficeCLI 提供的是一个完整的 生成 → 预览 → 修改 反馈循环。
它的渲染引擎是从零开始写的,覆盖了形状、图表(趋势线、误差线、瀑布图、K 线图、迷你图)、公式(OMML → MathJax)、3D .glb 模型(用 Three.js)、平滑切换(morph)、幻灯片缩放、各种形状效果……单二进制里塞了这么多东西,说实话有点夸张。
OfficeCLI 给 Agent 设计了三层操作模式,推荐永远从高层开始,遇到复杂需求再往下钻:
create / view / get / query / validate —— 读大纲、读统计、查问题、取结构化 JSON。Agent 用这一层就能搞定 80% 的日常需求。add / set / remove / move / copy —— 按元素路径增删改查,相当于对文档的 DOM 直接动手。raw —— 真有特殊需求,可以直接读写 OOXML。这一层是逃生舱,99% 的场景用不到。这个分层设计特别聪明。Agent 不需要一上来就啃 XML,大多数时候一条命令就够了;但真遇到复杂场景,它也有能力一路钻到最底层。
而且它的元素定位用的是 稳定 ID 寻址,不是单纯的索引。比如 /slide[1]/shape[@id=550950021],这种路径在插入/删除操作后依然有效,对多步骤工作流特别友好。
OfficeCLI 把用户分成了三类,每一类都有对应的入门路径:
给 AI Agent 的:一行搞定
curl -fsSL https://officecli.ai/SKILL.md把这一行贴进 Agent 的对话,它会读取 SKILL 文件(239 行、8K tokens,涵盖命令语法、架构设计、常见坑),自动安装二进制,然后就能直接用了。安装后还会自动把 officecli skill 注入到它检测到的所有 AI 编码 Agent 里——Claude Code、Cursor、Windsurf、GitHub Copilot 这些都支持。
给人类用户的:两条路
officecli install,就完事了。给开发者的:30 秒上手
# 安装 (macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash
# 创建空 PPT
officecli create deck.pptx
# 启动实时预览 (浏览器打开 http://localhost:26315)
officecli watch deck.pptx
# 另开一个终端加幻灯片,浏览器会即时更新
officecli add deck.pptx / --type slide --prop title="Hello, World!"每一条 add / set / remove 都会让浏览器实时刷新。而且如果是 3 步以上的连续操作,推荐用 open / close 的常驻模式减少文件 I/O 开销:
officecli open report.docx # 加载到内存
officecli set report.docx ... # 零文件 I/O
officecli close report.docx # 保存并释放我觉得 OfficeCLI 最有意思的一点,不是它功能有多全——而是它从第一天就明确了一个核心设计原则:为 Agent 而不是为人类设计。
几乎所有同类工具的默认假设都是"人来写代码调 API",而 OfficeCLI 的默认假设是"Agent 来发命令、看结果"。
以后做 PPT,真的不该只剩 python-pptx 苦修了。
GitHub: https://github.com/iOfficeAI/OfficeCLI
官网: https://officecli.ai
如果本文对您有帮助,也请帮忙点个 赞👍 哈!❤️