Install
openclaw skills install @kahn520/chatppt-agent使用 ChatPPT CLI 命令行工具通过 AI 自动生成 PPT 演示文稿。适用场景:用户需要根据主题文字或现有文件(Word/PDF/Markdown)生成 PPT 时触发本 skill。支持登录认证、PPT 生成、文件导入生成、结果查询等完整流程。
openclaw skills install @kahn520/chatppt-agent运行npm命令进行安装,安装前先检查是否已存在chatppt命令。
npm install -g @yooai/cli
安装后可运行chatppt命令进行调用,比如:
chatppt --help
| Flag | 说明 |
|---|---|
--config string | 配置文件路径(默认 $HOME/.chatppt/config.yaml) |
-d, --debug | 启用调试模式 |
-f, --format string | 输出格式:json(默认)/ table / pretty |
-h, --help | 帮助 |
-v, --version | 版本 |
1. 检查登录状态(auth status
2. 未登录 → 执行登录(auth login)
3. 生成 PPT(ppt generate 或 ppt import_file)
4. 自动轮询等待结果(直到 `2` 或 `3`)
5. 询问用户要直接下载pptx文件还是跳转到线上编辑器
images.urls,可直接把图片链接展示给用户。2或3 后,仅返回成功结果与关键信息,不执行任何后续操作(后续接口未就绪)。--web-search 涉及额外收费,启用前必须先告知用户并获得明确确认;未确认则按关闭处理(传 --web-search=false)。主题 或导入时的 文件路径)。font-name、theme-color、ai-picture、image-style、template-id、custom-template-id、custom-page-countbanana-style-id、banana-doc-type、banana-reference-imageweb-search 为额外收费项,不能并入“默认就行”;必须单独征得用户同意后才启用。template-idbanana-style-id| 目标 | 命令 |
|---|---|
| 查看登录状态 | auth status |
| 登录 | auth login |
| 登出 | auth logout |
| 刷新令牌 | auth refresh |
| 生成 PPT(主题文字) | ppt generate "主题" |
| 生成绘图PPT(主题文字) | ppt generate_banana "主题" |
| 生成 PPT(文件导入) | ppt import_file "/path/to/file" |
| 生成绘图PPT(文件导入) | ppt import_file_banana "/path/to/file" |
| 查询 PPT 结果 | ppt result <ppt_id> |
| 查看配置 | config show |
| 重载配置 | config reload |
| 查看版本 | version |
所有 PPT 生成命令都需要先登录。
# 查看当前登录状态
chatppt auth status
# 登录(默认自动打开浏览器)
chatppt auth login
# 登录但不自动打开浏览器
chatppt auth login --no-browser
# 刷新令牌(令牌即将过期时使用)
chatppt auth refresh
# 登出
chatppt auth logout
典型返回(status)
{
"success": true,
"code": 200,
"data": {
"is_logged_in": true,
"user": { "id": "string", "nickname": "string", "mobile": "string" }
}
}
普通生成
chatppt ppt generate "主题描述" [options]
绘图生成
chatppt ppt generate_banana "主题描述" [options]
| 参数 | 说明 |
|---|---|
主题描述 | PPT 主题,1–200 字符 |
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
--complex | int | 0 | 内容复杂度 1=简单,2=中等,3=复杂 |
--language | string | — | 语言:zh-CN / en-US / zh-TW |
--web-search | bool | false | 联网补充内容(额外收费,启用前需用户明确确认) |
--poll | bool | true | 是否自动轮询等待结果 |
--interval | int | 5 | 轮询间隔(秒) |
--max-retries | int | 60 | 最大轮询次数(约 5 分钟) |
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
--font-name | string | — | 字体名,如 微软雅黑 |
--theme-color | string | — | 主题色:蓝色 红色 绿色 橙色 紫色 黄色 粉色 |
--ai-picture | bool | true | 是否启用 AI 配图 |
--image-style | string | — | 配图风格描述,如 商务风 |
--template-id | string | — | 预制矢量模板 ID |
--custom-template-id | string | — | 自定义模板 ID |
--custom-page-count | int | 0 | 页数,0 = 自动 |
约束说明:
- 在生成之前询问用户是否需要浏览并指定模板,需要的话调用chatppt ppt template获取--template-id参数数据,调用之后的数据,一定要将每一项的至少一张图片展示给用户挑选。
chatppt ppt picture_style
获取PPT模板风格列表,支持分页查询
支持查看模板的详细信息,包括:
示例: chatppt ppt template # 获取第1页,每页10个 chatppt ppt template --page 2 # 获取第2页 chatppt ppt template --limit 20 # 每页显示20个 chatppt ppt template --page 2 --limit 5 # 获取第2页,每页5个
chatppt ppt template
| 参数 | 类型 | 说明 |
|---|---|---|
--banana-style-id | string | 绘图风格ID |
--banana-doc-type | string | 绘图排版样式 |
--banana-reference-image | string | 参考图片 URL 或路径 |
约束说明:
- 绘图生成路径参数允许全部为空。
- 普通路径与绘图生成路径是两条平级路线,不存在“更高级”关系。
- Agent 必须先确认用户走哪条路径,再组装对应参数。
- 生成任务默认开启轮询(
--poll=true),接口内自动调用轮询接口持续查询直到SUCCESS或FAILED。- 在生成之前询问用户是否需要浏览并指定风格,需要的话调用chatppt ppt banana-template获取--banana-style-id参数数据。
获取绘图生成PPT模板风格列表,支持分页查询
支持查看模板的详细信息,包括:
示例: chatppt ppt banana-template # 获取第1页,每页10个 chatppt ppt banana-template --page 2 # 获取第2页 chatppt ppt banana-template --limit 20 # 每页显示20个 chatppt ppt banana-template --page 2 --limit 5 # 获取第2页,每页5个
chatppt ppt banana-template
chatppt ppt template_banana_style
# 基础生成
chatppt ppt generate "人工智能发展趋势" --language zh
# 普通生成路径(带样式)
chatppt ppt generate "2024年度工作总结" \
--language zh \
--font-name "微软雅黑" \
--theme-color blue \
--custom-page-count 15 \
--image-style "商务风"
# 绘图生成风格路径(参数可部分或全部为空)
chatppt ppt generate_banana "产品介绍" \
--banana-style-id style_001 \
--banana-doc-type business
# 异步模式(不等待结果,手动查询)
chatppt ppt generate "主题" --poll=false
{
"success": true,
"code": 200,
"data": {
"ppt_id": "ppt_1234567890",
"request_id": "string",
"title": "string",
"task_status": "2",
"images": {
"urls": [{ "url": "https://example.com/ppt/slide1.jpg" }]
}
}
}
task_status 说明
| 值 | 含义 |
|---|---|
1 | 生成中 |
2 | 已完成 |
3 | 失败 |
上传本地文件后基于其内容生成 PPT,适合将现有 Word / PDF / Markdown 转为演示文稿。
导入生成普通PPT
chatppt ppt import_file --file-path "/绝对路径/文档.docx"
导入生成绘图PPT
chatppt ppt import_file_banana --file-path "/绝对路径/文档.docx"
| 参数 | 说明 |
|---|---|
--file-path | 本地文件绝对路径 |
| 格式 | 扩展名 | 大小上限 |
|---|---|---|
| Word | .doc .docx | 100 MB |
.pdf | 100 MB | |
| Markdown | .md | 100 MB |
| 纯文本 | .txt | 100 MB |
文本文件须为 UTF-8 编码。
其余可选参数与 ppt generate 完全相同,包括普通路径参数与 Banana 路径参数。
# Word 文档导入
chatppt ppt import_file \
--file-path "/Users/me/docs/product.docx" \
--theme-color 蓝色
# PDF 导入,绘图生成风格
chatppt ppt import_file_banana \
--file "/Users/me/docs/annual.pdf" \
--banana-style-id style_002 \
--banana-doc-type business
返回格式与 ppt generate 相同。
在异步模式(--poll=false)下使用,主动查询任务状态。
chatppt ppt result <ppt_id> [-f pretty]
| 参数 | 说明 |
|---|---|
ppt_id | ppt generate / ppt import_file 返回的 ppt_id |
-f | 输出格式(继承全局 flag) |
# 查看当前配置
chatppt config show
# 重新加载配置文件
chatppt config reload
典型返回(show)
{
"success": true,
"code": 200,
"data": {
"app": { "name": "ChatPPT CLI", "version": "1.0.0" },
"api": { "url": "http://localhost:9157", "timeout": 30000 },
"auth": { "type": "Bearer", "access_key_id": "csVyGKphwM..." },
"ppt": { "default_ai_picture": true }
}
}
chatppt ppt downloadppt [ppt-id]
chatppt ppt editor [ppt-id]
| 错误码 | 原因 | 处理 |
|---|---|---|
| 400 | 参数错误(topic 超长、路径无效等) | 修正参数后重试 |
| 401 | 未登录或令牌失效 | 执行 auth login |
| 403 | 文件上传权限不足 | 检查 BCE AK/SK 配置 |
| 413 | 文件超过 100 MB | 压缩或拆分文件 |
| 429 | 请求频率过高 | 等待 5 秒后重试,最多 3 次 |
| 500 | 服务端错误 | 等待 10 秒后重试,最多 3 次 |
{
"success": false,
"code": 400,
"message": "错误描述",
"error_type": "VALIDATION_ERROR",
"error_details": { "field": "topic", "reason": "主题长度必须在 1-200 字符之间" },
"suggestion": "请检查输入参数并重试"
}
auth login。