cli-anything-wps

agent
Guvenlik Denetimi
Gecti
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 42 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

CLI harness for WPS Office -- let AI agents control Writer, Calc & Impress via COM automation

README.md

cli-anything-wps

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

Platform Python License WPS


这是什么

cli-anything-wps 是一个基于 CLI-Anything 架构的命令行工具,让 AI Agent(如 Claude Code、ChatGPT)能够直接操控 WPS Office 完成文档创建、编辑、格式转换等操作。

WPS Office 虽然是闭源软件,但它在 Windows 上暴露了完整的 COM 自动化接口,与 Microsoft Office VBA 高度兼容。本项目将这套接口封装为 47 个 CLI 命令,覆盖 WPS 文字、WPS 表格、WPS 演示三大应用。

为什么需要它

CLI-Anything 官方只支持开源软件(通过源码分析生成 CLI)。但现实是,大量行业软件是闭源的:

  • WPS Office 是中国最主流的办公套件之一
  • Adobe Photoshop 是图像处理的事实标准
  • 它们的闭环生态让 AI Agent 无法直接操控

本项目的答案是:只要软件有可编程接口(COM/API/SDK),就能接入 AI Agent 的指挥系统。

功能概览

WPS 文字 (Writer) — KWPS.Application

功能 命令
创建/打开/保存文档 document new, open, save
段落、标题、列表 writer add-paragraph, add-heading, add-list
表格、图片、分页 writer add-table, add-image, add-page-break
查找替换 writer find-replace
字体/字号/颜色/样式 style create, modify, apply

WPS 表格 (Calc) — KET.Application

功能 命令
工作表管理 calc add-sheet, remove-sheet, rename-sheet
单元格读写 calc set-cell, get-cell, set-range
公式、合并 calc set-cell --formula, merge-cells

WPS 演示 (Impress) — KWPP.Application

功能 命令
幻灯片管理 impress add-slide, remove-slide, list-slides
内容编辑 impress set-content, add-element
排版布局 文本框任意位置/尺寸/颜色/字体

通用能力

功能 说明
格式导出 DOCX / XLSX / PPTX / PDF / TXT / HTML / RTF / CSV
撤销/重做 session undo, redo,最多 50 步历史
JSON 输出 所有命令支持 --json 标志,AI 可直接解析
交互式 REPL 无参数运行进入对话模式,支持 helpquit
会话持久化 项目状态保存为 .wps-cli.json,支持断点续操作

安装

系统要求

  • Windows 10 或 Windows 11
  • WPS Office 2019 及以上版本(家庭和学生版或专业版均可)
  • Python 3.10 或更高版本
  • 已安装 pywin32

方式一:pip 安装(推荐)

pip install git+https://github.com/yb2460/cli-anything-wps.git

方式二:克隆安装

git clone https://github.com/yb2460/cli-anything-wps.git
cd cli-anything-wps
pip install -e .

方式三:开发模式

git clone https://github.com/yb2460/cli-anything-wps.git
cd cli-anything-wps
pip install -e .[dev]

验证安装

cli-anything-wps --help

快速开始

创建一个文档

# 新建 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 "这是自动生成的报告。"

# 导出 DOCX
cli-anything-wps --project report.json export render report.docx -p docx

# 导出 PDF
cli-anything-wps --project report.json export render report.pdf -p pdf

操作电子表格

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 export render data.xlsx -p xlsx

制作演示文稿

cli-anything-wps document new --type impress --name "演示" -o slides.json
cli-anything-wps --project slides.json impress add-slide -t "标题页"
cli-anything-wps --project slides.json export render slides.pptx -p pptx

AI Agent 使用(JSON 模式)

# 所有命令加 --json 即返回结构化数据
cli-anything-wps --json document new --type writer --name "test"
cli-anything-wps --json --project test.json session status
cli-anything-wps --json --project test.json writer list

交互式 REPL

cli-anything-wps
#> document new --type writer --name demo
#> writer add-paragraph --text "Hello from REPL!"
#> export render demo.pdf --preset pdf
#> quit

全部命令

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 接口 (KWPS / KET / KWPP.Application)
    │
    ▼
WPS Office (执行实际操作)

目录结构

cli_anything/wps/
├── wps_cli.py          # CLI 入口 (Click + REPL)
├── core/
│   ├── document.py     # 文档 CRUD
│   ├── writer.py       # 文字处理
│   ├── calc.py         # 电子表格
│   ├── impress.py      # 演示文稿
│   ├── styles.py       # 样式管理
│   ├── export.py       # 导出管道
│   └── session.py      # 会话管理
├── utils/
│   ├── wps_backend.py  # COM 后端封装
│   └── repl_skin.py    # 终端 UI
├── tests/
│   └── test_core.py    # 58 个单元测试
└── skills/
    └── SKILL.md        # AI Agent 指令文档

运行测试

pip install -e .[dev]
python -m pytest cli_anything/wps/tests/ -v

常见问题

Q: 为什么需要 WPS Office 安装?
A: 本工具通过 COM 接口操控真实的 WPS 程序,所以 WPS 必须安装在本地。它不像 python-docx 那样模拟文件格式,而是使用 WPS 自己的渲染引擎。

Q: 支持 macOS 或 Linux 吗?
A: COM 接口是 Windows 专有技术,不支持 macOS/Linux。WPS 的 Mac 版本没有暴露 COM 接口。

Q: 和 Microsoft Office 兼容吗?
A: WPS 的 COM 接口与 Microsoft Office VBA 高度兼容,但部分细节不同。如果你只有 MS Office,可以修改 wps_backend.py 中的 ProgID(如 Word.Application)。

Q: 如何提交到 CLI-Anything 官方市场?
A: 将 registry_entry.json 提交到 CLI-Anythingpublic_registry.json 文件中即可。

许可证

MIT License — 详见 LICENSE


Built with CLI-Anything Harness Methodology

Yorumlar (0)

Sonuc bulunamadi