# harness-anything **Repository Path**: dfgfdff/harness-anything ## Basic Information - **Project Name**: harness-anything - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-29 - **Last Updated**: 2026-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cli-anything-wps

让 AI Agent 操控 WPS Office 的命令行工具

Platform Python License WPS

--- ## 项目简介 **cli-anything-wps** 是一个基于 [CLI-Anything](https://github.com/HKUDS/CLI-Anything) 架构构建的命令行工具。它将 WPS Office 的 COM 自动化接口封装为 47 个 CLI 命令,让 AI Agent 能够像操控开源软件一样操控闭源的 WPS Office。 你可以用它在终端里创建文档、编辑内容、设置格式、导出 PDF——全程不需要打开 WPS 界面,或者让 WPS 在前台可见地执行每一步操作。 ## 为什么做这个项目 CLI-Anything 是一个很棒的项目:一行命令就能让 AI 操控 GIMP、Blender、LibreOffice 等开源软件。但它有一个硬伤——只支持开源软件。 可是现实中,大量行业软件是闭源的: - **WPS Office**——国内最主流的办公套件 - **Adobe 全家桶**——设计行业的事实标准 - 它们的闭源生态让 AI Agent 无法直接接入 我们的答案是:**只要软件有可编程接口,就能接入 AI 的指挥系统。** WPS 在 Windows 上暴露了完整的 COM 自动化接口(与 Microsoft Office VBA 兼容)。我们按照 CLI-Anything 的 7 阶段 Harness 方法论,手搓了一个 WPS 控制器。 ## 功能概览 ### WPS 文字(Writer) - 创建/打开/保存文档 - 添加段落、标题、列表、表格、图片、分页符 - 字体/字号/颜色/粗体/斜体/对齐 - 查找替换、页面设置、页眉页脚 - 导出:DOCX / PDF / TXT / HTML / RTF / ODT ### WPS 表格(Calc) - 工作表管理(添加/删除/重命名) - 单元格读写(单个 + 批量区域) - 公式设置、单元格合并 - 排序、筛选、条件格式 - 导出:XLSX / PDF / CSV / HTML ### WPS 演示(Impress) - 幻灯片管理(添加/删除/排序/复制) - 内容编辑(标题、正文、元素) - 形状绘制(矩形、圆角、圆形、箭头) - 文本框任意位置/尺寸/颜色/字体 - 导出:PPTX / PDF ### 通用能力 - 所有命令支持 `--json` 输出,AI Agent 可直接解析 - 交互式 REPL 模式(无参数运行时进入) - 会话持久化 + 撤销/重做(最多 50 步历史) - 后台模式(`Visible=False`)用于批量自动化 ## 系统要求 | 组件 | 要求 | |------|------| | 操作系统 | Windows 10 / 11 | | WPS Office | 2019 及以上(家庭和学生版/专业版均可) | | Python | 3.10 及以上 | | pywin32 | `pip install pywin32` | > COM 接口是 Windows 专有技术,不支持 macOS 或 Linux。 ## 安装 ### 方式一:pip 安装(推荐) ```bash pip install git+https://github.com/yb2460/cli-anything-wps.git ``` ### 方式二:克隆安装 ```bash git clone https://github.com/yb2460/cli-anything-wps.git cd cli-anything-wps pip install -e . ``` ### 验证 ```bash cli-anything-wps --help ``` ## 快速开始 ### 创建并编辑文档 ```bash # 新建 Writer 文档 cli-anything-wps document new --type writer --name "年度报告" -o report.json # 添加内容 cli-anything-wps --project report.json writer add-heading -t "前言" -l 1 cli-anything-wps --project report.json writer add-paragraph -t "这是AI自动生成的报告。" cli-anything-wps --project report.json writer add-table -r 3 -c 3 # 导出 cli-anything-wps --project report.json export render report.docx -p docx cli-anything-wps --project report.json export render report.pdf -p pdf ``` ### 操作电子表格 ```bash cli-anything-wps document new --type calc --name "数据" -o data.json cli-anything-wps --project data.json calc set-cell A1 "产品名" cli-anything-wps --project data.json calc set-cell A2 "WPS CLI" cli-anything-wps --project data.json calc set-range A3 -d '[["张三",28],["李四",35]]' cli-anything-wps --project data.json export render data.xlsx -p xlsx ``` ### 制作演示文稿 ```bash cli-anything-wps document new --type impress --name "演示" -o slides.json cli-anything-wps --project slides.json impress add-slide -t "标题页" -c "正文内容" cli-anything-wps --project slides.json impress add-element 0 --type text_box --text "Hello!" cli-anything-wps --project slides.json export render slides.pptx -p pptx ``` ### AI Agent 模式 ```bash # 所有命令加 --json 返回结构化数据 cli-anything-wps --json document new --type writer --name "test" cli-anything-wps --json --project test.json session status ``` ## 全部命令 ``` cli-anything-wps ├── document new|open|save|info|profiles|json 文档管理 ├── writer 文字处理 │ ├── add-paragraph|add-heading|add-list │ ├── add-table|add-image|add-page-break │ ├── remove|list|set-text|find-replace ├── calc 电子表格 │ ├── add-sheet|remove-sheet|rename-sheet │ ├── set-cell|get-cell|set-range|merge-cells │ └── list-sheets ├── impress 演示文稿 │ ├── add-slide|remove-slide|set-content │ └── list-slides|add-element ├── style create|modify|list|apply|remove 样式管理 ├── export presets|preset-info|render 导出渲染 ├── session status|undo|redo|history 会话管理 └── repl 交互模式 ``` ## 工作原理 ``` CLI 命令 (Click) │ ▼ Session 层 —— 撤销/重做/持久化 │ ▼ Core 模块 —— writer.py / calc.py / impress.py / export.py │ ▼ WPS Backend (wps_backend.py) —— COM 接口封装 │ ▼ COM 接口 —— KWPS / KET / KWPP.Application │ ▼ WPS Office —— 执行实际操作 ``` ### 三个 COM 入口 | ProgID | 对应应用 | |--------|---------| | `KWPS.Application` | WPS 文字(类 Word) | | `KET.Application` | WPS 表格(类 Excel) | | `KWPP.Application` | WPS 演示(类 PPT) | ## 常见问题 **Q: 为什么需要安装 WPS 才能用?** 本工具通过 COM 接口操控真实的 WPS 程序,不是模拟文件格式。它的渲染效果和手动操作完全一致。 **Q: 支持 Microsoft Office 吗?** WPS COM 接口与 MS Office VBA 高度兼容。如果你只有 Office,把 `wps_backend.py` 中的 ProgID 换成 `Word.Application`、`Excel.Application`、`PowerPoint.Application` 即可。 **Q: 能做批量自动化吗?** 可以。设置 `app.Visible = False` 即可后台静默运行,适合批量报告生成、格式互转等场景。 **Q: 如何贡献?** Fork 本仓库,提交 PR。或把 `registry_entry.json` 提交到 CLI-Anything 官方市场。 ## WPS PPT 自动化生成 [JSON 数据驱动 + 元素类型路由 + WPS COM 即时生成],详见 [WPS/](WPS/)。 | 项目 | 页数 | 元素 | |------|------|------| | 华中科技大学 | 9页 | 4图表+5校园图 | | 南方科技大学 | 10页 | 4图表+5表格 | | 北京大学 | 14页 | 3图表+5表格 | | 清华大学 | 13页 | 3图表+4表格 | | 浙大城市学院 | 10页 | 3图表+4表格 | > 📖 完整文档见 [WPS/README.md](WPS/README.md) ## 许可证 MIT License ---

基于 CLI-Anything Harness 方法论构建