Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

aippt-skill

v3.0.6

A skill to automatically generate and download PPT presentations using AIPPT APIs based on a provided topic.

0· 326·0 current·0 all-time
bybooyakasha@huiyuan1234

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for huiyuan1234/aipptskill.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "aippt-skill" (huiyuan1234/aipptskill) from ClawHub.
Skill page: https://clawhub.ai/huiyuan1234/aipptskill
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install aipptskill

ClawHub CLI

Package manager switcher

npx clawhub@latest install aipptskill
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name, description, SKILL.md and scripts all describe an AiPPT integration and the required tools (curl, python3, openssl) and API keys — this is coherent. However the registry metadata supplied with the skill (top-level 'Requirements' in the prompt) said no required env vars, while skill.json and SKILL.md both declare AIPPT_APP_KEY / AIPPT_SECRET_KEY (and optional AIPPT_UID). That metadata mismatch is confusing and should be resolved before install.
!
Instruction Scope
SKILL.md instructs the agent to call scripts/aippt.sh with absolute file paths and to upload/process user files. The included script will read any file path provided and upload it to the remote service. The script uses eval in api_get/api_post and other places, and directly interpolates user-supplied arguments into curl commands — this pattern raises command-injection risk if untrusted input reaches those calls. The script also sources a local .env and writes .token_cache.json in the skill directory, so credentials/cached tokens may be stored on disk. Although SKILL.md instructs to ask users before processing uploads, the code will perform uploads if given paths, so accidental exfiltration is possible if flows are not enforced.
Install Mechanism
This is an instruction-only skill with an included shell script; there is no installer that downloads arbitrary code from external URLs or writes unexpected system-wide binaries. No install-time downloads or extracts were specified.
Credentials
The required environment variables (AIPPT_APP_KEY, AIPPT_SECRET_KEY, optional AIPPT_UID) are appropriate for calling the AiPPT API. Caveats: the runtime script will also source a local .env (if present) and will write a .token_cache.json file in the skill directory, so secrets or tokens may be persisted to disk. Also the registry metadata presented earlier contradicted the actual declared env requirements — confirm which is authoritative before providing keys.
Persistence & Privilege
The skill does not request always:true or other elevated platform privileges. It creates a token cache file (.token_cache.json) and may read an .env in its own skill directory, but it does not modify other skills or global agent configuration.
What to consider before installing
Before installing: 1) Confirm the env-var mismatch — skill.json and SKILL.md require AIPPT_APP_KEY and AIPPT_SECRET_KEY; the registry header in the prompt incorrectly showed none. Provide keys only if you trust the AiPPT provider and this skill. 2) Review the script (scripts/aippt.sh) yourself: it uses eval with curl and interpolates arguments, which can allow command injection if untrusted inputs are passed. Ensure the agent/user never supplies unvalidated shell-unsafe strings. 3) The skill accepts absolute file paths and will upload any file you point it to — do not allow it to read sensitive system files (e.g., /etc/*, SSH keys, etc.). Confirm the skill asks the user before processing uploads (SKILL.md requires that), and do not grant it autonomous access to files. 4) Note the script will source .env (if present) and write .token_cache.json in the skill folder — remove or protect those files if you are concerned about stored secrets/tokens. 5) If you decide to proceed, run this skill in a restricted/sandboxed environment (or with least-privilege credentials), monitor network activity to co.aippt.cn, and consider rotating the API keys after testing. If you are not comfortable with these risks (eval usage, file-path uploads, persisted token file), avoid installing or request the publisher to remove eval usage and add explicit input sanitization and safer subprocess invocation.

Like a lobster shell, security has layers — review code before you run it.

latestvk97d8krr1dgpxh1zsy9bzab7g983gegypptvk97d8krr1dgpxh1zsy9bzab7g983gegy
326downloads
0stars
11versions
Updated 22h ago
v3.0.6
MIT-0

AiPPT Skill

通过 AiPPT.cn 开放平台 API,用自然语言对话生成专业 PPT 演示文稿。

概述

本 Skill 集成了 AiPPT.cn 的智能 PPT 生成服务,支持:

  • 智能生成 — 输入标题,AI 自动生成大纲、内容、排版
  • 文档转PPT — Word、PDF、Markdown、TXT、PPTX、XMind 一键转换
  • 参考文档生成 — 以上传文件为素材,围绕指定主题重新生成
  • 网页导入 — 从 URL 抓取内容生成 PPT
  • 高级配置 — 页数、语言、场景、语气、受众、文本量全部可控
  • 模型选择 — 智谱 / DeepSeek / 豆包可切换(部分类型支持)
  • 企业模板 — B端专属模板优先推荐
  • 自动下载 — 生成完成后默认下载 PPTX 到本地;对话明确要求图片时导出 PNG

前置条件

环境依赖curlpython3openssl

API 密钥:通过 OpenClaw 安装后在技能设置中填入,无需手动创建文件。

变量名必填说明
AIPPT_APP_KEYAiPPT 开放平台 App Key
AIPPT_SECRET_KEYAiPPT 开放平台 Secret Key
AIPPT_UID用户标识,多用户隔离用,默认 openclaw_default

获取密钥:前往 AiPPT 开放平台 注册开发者账号。


AI 决策入口(每次必走)

每次响应用户 PPT 请求,必须先走以下判断树。

用户发来消息
    ├── 有文件附件? → 场景二(⚠️ 先询问意图,禁止直接执行)
    ├── 有 URL?     → 场景三(URL 导入)
    └── 只有文字?   → 场景一(标题生成)

场景一:标题/主题生成

触发条件:用户只描述了话题或标题,没有上传文件。

示例

  • "帮我做一个关于人工智能的PPT"
  • "生成一份年终总结演示文稿"
  • "做个产品发布会的幻灯片"

完整流程(共 7 步)

1. 创建任务
2. 生成大纲(约 10 秒)
3. ⬇ 清晰展示大纲文本给用户(必须完整输出,格式化为 Markdown 标题层级)
4. 自动继续生成内容(不等用户确认,约 25 秒)
5. 合成 PPT(约 10 秒)
6. 导出
7. 下载 → 返回 PPTX 文件路径

第一次工具调用 — 生成大纲

bash scripts/aippt.sh generate "标题" --outline-only

命令结束后,从输出中找到 outline_ready 那行 JSON,提取 task_idtitleoutline 字段。

第一次工具调用结束后:先输出文字,再发起第二次工具调用

🚨 必须按以下顺序执行,不可合并:

  1. 结束第一次工具调用
  2. 向用户输出文字回复(将大纲格式化为 Markdown 标题层级写入回复,同时说明"正在合成 PPT...")
  3. 再发起第二次工具调用(执行 generate_continue)

✅ 正确:[工具调用1: --outline-only] → [文字输出: 大纲内容] → [工具调用2: generate_continue] ❌ 错误:[工具调用1: --outline-only] → [工具调用2: generate_continue] → [文字输出: 大纲内容]

输出格式示例:

📋 **大纲已生成,正在合成 PPT,请稍候...**

# 标题
## 第一章
### 1.1 小节
### 1.2 小节
## 第二章
...

第二次工具调用 — 合成 PPT(约 60 秒)

bash scripts/aippt.sh generate_continue "<task_id>" "<title>"

场景二:文档上传生成(⚠️ 必须先询问)

触发条件:用户上传了 Word、PDF、TXT、Markdown、PPTX 等文件。

禁止直接执行,必须先问用户:

您上传了一份文件,请问想怎么用它生成 PPT?

  1. 文档转PPT — 直接提取这份文件的内容生成 PPT (适合:文档本身就是要呈现的内容,例如报告、总结、方案)

  2. 参考文档生成 — 以这份文件为背景资料,由您指定主题,AI 重新组织生成 (适合:文档是参考材料,需要 AI 重新理解和表达)

根据用户回答执行

选择 1 — 文档转PPT(完整流程)

文件类型影响流程:

  • 有大纲.doc/.docx/.pdf/.txt/.pptx/.wps):先生成大纲展示,再自动合成
  • 无大纲.md/.xmind/.mm):直接合成,无大纲展示步骤

对于 .doc/.docx/.pdf/.txt/.pptx/.wps

1. 解析文档并生成大纲+内容(约 30 秒)
2. 获取 PPT 树形结构(generate/data)
3. ⬇ 清晰展示大纲文本给用户(必须完整输出,格式化为 Markdown 标题层级)
4. 自动继续合成 PPT(不等用户确认)
5. 导出
6. 下载 → 返回 PPTX 文件路径

第一次工具调用 — 生成大纲(约 30 秒)

bash scripts/aippt.sh generate_from_file "文件绝对路径" --outline-only

命令结束后,从输出中找到 outline_ready 那行 JSON,提取 task_idtitleoutline 字段。

第一次工具调用结束后:先输出文字,再发起第二次工具调用

🚨 必须按以下顺序执行,不可合并:

  1. 结束第一次工具调用
  2. 向用户输出文字回复(将大纲格式化为 Markdown 标题层级写入回复,同时说明"正在合成 PPT...")
  3. 再发起第二次工具调用(执行 generate_save)

✅ 正确:[工具调用1: --outline-only] → [文字输出: 大纲内容] → [工具调用2: generate_save] ❌ 错误:[工具调用1: --outline-only] → [工具调用2: generate_save] → [文字输出: 大纲内容]

步骤 4+5+6 — 自动继续合成 PPT(不等用户确认,约 40 秒)

bash scripts/aippt.sh generate_save "<task_id>" "<title>"

对于 .md/.xmind/.mm 类文件,直接执行(单步完成,无大纲展示):

bash scripts/aippt.sh generate_from_file "文件绝对路径"

选择 2 — 参考文档生成

追问用户 PPT 主题,再执行:

bash scripts/aippt.sh generate_with_refer "PPT主题" "文件绝对路径"

⚠️ 参考文档模式 B 端限制(执行前必须检查)

限制项规则违规处理
单文件大小≤ 10MB脚本自动报错,提示用户压缩或改用「文档转PPT」
最多文件数≤ 5 个(同一次 PPT 生成)超出时告知用户只取前5个,或分批生成

说明:参考文档模式调用的是 B 端专属接口(/api/ai/chat/refer),以上限制来自平台 API 规范,不可绕过。


场景三:网页 URL 导入

触发条件:用户提供了一个网页 URL。

示例

  • "把这篇文章做成PPT:https://..."
  • "根据这个页面生成演示文稿"

执行(两步走)

步骤 1 — 创建任务并生成大纲

# 1a. 创建任务,获取 task_id
task_id=$(bash scripts/aippt.sh create_from_url "https://..." \
  | python3 -c "import sys,json;print(json.load(sys.stdin)['data']['id'])")

# 1b. 抓取页面内容 + 生成大纲(SSE,约 30 秒)
#     脚本输出 outline_ready 步骤(stderr),将大纲格式化展示给用户
bash scripts/aippt.sh link "$task_id" 2>&1 | grep -E '^{' | python3 -c "
import sys,json
for line in sys.stdin:
    try:
        obj=json.loads(line)
        if obj.get('step')=='outline_ready':
            print(obj.get('outline',''))
    except: pass
"

收到 outline_ready 后,将大纲格式化展示给用户,立即执行步骤 2,不等待用户确认。

步骤 2 — 合成 PPT

bash scripts/aippt.sh generate_save "$task_id" "<页面标题>" [template_id] [output_dir] [formats]

企业模板检查(B端客户适用)

在执行生成命令前,先检查是否有企业专属模板:

bash scripts/aippt.sh enterprise_templates
返回结果处理方式
code≠0data.list 为空跳过,使用普通模板自动生成
data.list 非空询问用户:"是否使用企业专属模板?"

用户选择企业模板时,将模板 ID 和 enterprise 类型传入:

bash scripts/aippt.sh generate "年终总结" <enterprise_tpl_id> ~/Desktop ppt enterprise
bash scripts/aippt.sh generate_from_file report.docx <enterprise_tpl_id> ~/Desktop ppt enterprise

高级配置(可选,提升生成质量)

查询可用选项 ID

bash scripts/aippt.sh senior_options

返回所有配置项和 ID,★ 表示默认值:

配置项key常用选项(ID:名称)
页数page53:5-10页 / 3:20-30页★ / 56:尽情发挥
受众group6:大众★ / 9:学生 / 8:商业 / 11:老板
场景scene18:通用★ / 27:项目汇报 / 34:年度总结 / 29:商业计划书
语气tone40:专业★ / 42:幽默 / 43:亲切
语言language47:简体中文★ / 49:英语 / 50:日语
文本量text58:简洁 / 60:详细★

使用方式

--options 传 ID 数组,--model 切换 AI 模型:

# 年度总结 + 英语 + 详细文本
bash scripts/aippt.sh generate "Annual Review 2025" --options "[49,34,60]" --model doubao-1.5-pro-32k

# 文件转PPT + 指定场景和语言
bash scripts/aippt.sh generate_from_file report.pdf --options "[49,27,40]"

模型选择

模型 ID描述支持的 type
glm4.5-air智谱 GLM1 / 9 / 10 / 18
deepSeek-v3DeepSeek V31 / 9 / 10 / 18
doubao-1.5-pro-32k字节豆包1 / 9 / 10 / 18

不传 model 时服务端自动选择默认模型。


执行进度反馈

命令运行时,从 stderr 读取进度 JSON 并实时告知用户:

step适用场景向用户说明
create所有正在创建任务...
outline标题生成正在生成大纲,约 6 秒...
outline_ready所有 type立即展示大纲:解析 JSON 中 outline 字段,格式化展示给用户;保存 task_idtitle;随后无需确认立即执行步骤 2(generate_continuegenerate_save
content_triggered标题生成正在生成内容,约 25 秒...
ppt_data所有 type(步骤2)获取 PPT 树形结构...
outline_save所有 type(步骤2)提交大纲中...
outline_saved所有 type(步骤2)大纲提交完成,继续合成
wordWord/PDF/TXT/PPTX/WPS正在解析文档并生成大纲+内容,约 30 秒...
file_parsedMD/XMind/FreeMind文件已上传,准备生成...
composing所有告知用户:合成中,请稍候...
pick_template所有正在选择模板...
save所有正在生成 PPT 作品,约 10 秒...
export所有正在触发导出...
wait_export所有正在渲染导出,约 30 秒...
downloaded所有某格式已下载(format + size)
done所有完成,返回文件路径

命令参考

一键生成(推荐)

# 从标题生成
bash scripts/aippt.sh generate <标题> [template_id] [output_dir] [formats] [template_type]

# 从文件生成(文档转PPT)
bash scripts/aippt.sh generate_from_file <文件路径> [template_id] [output_dir] [formats] [template_type]

# 参考文档生成(type=17,最多5个文件,每个 ≤ 10MB)
bash scripts/aippt.sh generate_with_refer <PPT主题> <文件1> [文件2..文件5] \
  [--output_dir <dir>] [--formats <fmts>] [--template_id <id>] [--template_type <type>]

参数说明:

参数必需默认值说明
标题 / 文件路径PPT 主题文字 或 本地文件绝对路径
PPT主题(refer)参考文档模式 PPT 标题,作为 type=17 任务的 title
文件1..5(refer)✅(至少1个)参考文档路径,支持 Word/PDF/TXT/WPS
template_id随机选20个之一模板 ID
output_dirskill 目录输出目录
formatsppt导出格式,逗号分隔:ppt,pdf,word,png
template_type空(普通模板)enterprise = 企业模板

文件类型与 API 流程对照

扩展名type流程
.doc / .docx3Word SSE → save
.xmind4direct save
.mm (FreeMind)5direct save
.md7direct save(content 字段)
.pdf9Word SSE → save
.txt10Word SSE → save
.ppt / .pptx12Word SSE → save
.wps18Word SSE → save
参考文档(refer)17refer SSE → save

模板

命令说明
templates [page] [size] [color] [style]搜索普通模板列表
enterprise_templates获取企业专属模板(B端配置,未开启返回 code≠0)
options获取模板颜色/风格筛选项

分步操作(type=1 标题生成专用)

命令说明
create <标题> [type]创建任务,返回 task_id
outline <task_id>生成大纲(SSE 流式)⚠️ 仅 type=1
content <task_id>触发内容生成,返回 ticket ⚠️ 仅 type=1
check <ticket>轮询生成状态(参数是 ticket,不是 task_id!)
wait <ticket> [timeout]阻塞等待内容生成完成

分步操作(文件 / URL 导入专用)

命令说明
create_with_file <文件> [type]从文件创建任务
create_from_url <URL>从网页 URL 创建任务(type=16)
word <task_id>Word 文档解析+生成大纲+内容(SSE,type=3 专用)
link <task_id>URL 链接抓取+生成(SSE,type=16 专用)
refer <task_id>参考文档模式生成(SSE)
conver_file <task_id> <type>解析 MD/XMind/FreeMind → 返回 Markdown 文本

两步续跑(大纲确认后使用)

命令说明
generate_continue <task_id> <title>续跑 type=1 标题任务(content → composing → save → export)
generate_save <task_id> <title>续跑文件任务(composing → save → export,跳过 content 步骤)

生成 / 导出(所有流程通用)

命令说明
save <task_id> <template_id> [name] [template_type]生成 PPT 作品,返回 design_id
export <design_id> [format] [edit]触发导出,返回 task_key
export_result <task_key>查询导出结果
wait_export <task_key> [timeout]阻塞等待导出完成,返回下载 URL
auth获取 / 刷新 Token

API 流程详解

⚠️ 关键:不同任务类型走完全不同的后端接口,不可混用。 outlinecontent 接口只对 type=1 有效,文件导入任务调用这两个接口会返回"任务不存在"。

流程 A — type=1 标题智能生成

创建任务
  → outline(SSE,约 6s,生成大纲)
  → content(获取 ticket)
  → check 轮询(约 25s,等待内容就绪)
  → save(约 10s)
  → export + 轮询下载
总耗时:约 60–90 秒

流程 B — type=3 Word 文件导入

创建任务(上传 .doc/.docx)
  → word SSE(约 30s,服务端解析 Word + 生成大纲+内容)
  → save(约 10s)
  → export + 轮询下载
总耗时:约 60 秒

流程 C — type=7/4/5 Markdown / XMind / FreeMind

创建任务(传 content 字段,文本内容)
  → save 直接(约 10s,服务端自动从内容生成)
  → export + 轮询下载
总耗时:约 50 秒

流程 D — type=8/9/10 PDF / TXT / PPTX

创建任务(上传文件)
  → save 直接(约 10s)
  → export + 轮询下载
总耗时:约 50 秒

流程 E — type=16 URL 链接导入

创建任务(传 link 字段)
  → link SSE(约 30s,抓取页面 + 生成大纲+内容)
  → save(约 10s)
  → export + 轮询下载
总耗时:约 60 秒

关键接口说明

接口方法路径适用类型
鉴权GET/api/grant/token/所有
创建任务POST/api/ai/chat/v2/task所有
生成大纲GET (SSE)/api/ai/chat/outlinetype=1 only
触发内容生成GET/api/ai/chat/v2/contenttype=1 only
轮询内容状态GET/api/ai/chat/v2/content/checktype=1 only
Word 解析+生成GET (SSE)/api/ai/chat/v2/wordtype=3 only
URL 抓取+生成GET (SSE)/api/ai/chat/linktype=16 only
参考文档生成GET (SSE)/api/ai/chat/refer参考文档模式
文件内容解析GET/api/ai/conver/filetype=4/5/7
生成作品POST/api/design/v2/save所有
触发导出POST/api/download/export/file所有
查询导出结果POST/api/download/export/file/result所有
普通模板列表GET/api/template_component/suit/search所有
企业模板列表GET/api/template_component/enterprise/suit/listB端

任务类型对照表

type说明输入方式后续流程
1智能生成title 字段outline → content → save
3Word 导入文件上传word SSE → save
4XMind 导入文件上传save 直接
5FreeMind 导入文件上传save 直接
7Markdown 导入content 文本字段save 直接
8PDF 导入文件上传save 直接
9TXT 导入文件上传save 直接
10PPTX 导入文件上传save 直接
16URL 导入link 字段link SSE → save

导出格式

format输出文件
ppt.pptx(默认)
pdf.pdf
word.docx
png.png(每页一图)

错误码

脚本内置 check_resp() 统一处理,所有非0 code 自动映射为中文提示。

code含义脚本处理方式
40007余额不足报错:账户余额不足,请充值后重试
40008功能未开通报错:该功能未开通,请联系管理员
10307企业模板未开启报错提示(AI 层面跳过,用普通模板)
43101Token 过期报错:删除 .token_cache.json 后重试
43102签名错误报错:检查 AIPPT_SECRET_KEY 是否正确
12100AI 内容生成失败报错:换个标题或稍后重试
12101内容审核未通过报错:修改标题/内容后重试
12102任务不存在报错:检查是否对文件任务误调用了 outline/content
20003导出队列已满自动等待重试(最多5次,每次间隔10秒)
20001导出任务不存在报错:重新触发导出
30001模板无权限报错:模板不存在或无权使用该模板
50000服务器内部错误报错:稍后重试

文件结构

aippt-skill/
├── SKILL.md              ← 本文件
├── skill.json            ← Skill 元数据 & 触发词
├── scripts/
│   └── aippt.sh          ← API 集成脚本 (v2.9)
├── .env                  ← API 密钥(不要提交到版本库!)
└── .token_cache.json     ← Token 缓存(自动生成)

版本历史

版本日期说明
3.0.52026-03-20补全官方流程(generate/data + outline/save);修复大纲展示时序问题(两次工具调用之间必须先输出大纲文字);统一所有文件类型(含 MD/XMind)使用 generate/data 树形大纲;修复默认 model/senior_options 导致部分账号鉴权失败
2.9.12026-03-20修复大纲无法展示的根本问题:恢复两步命令(--outline-only → generate_continue/generate_save),但去掉中间的确认等待,展示大纲后立即执行合成
2.9.02026-03-19去掉大纲确认等待逻辑:展示大纲后脚本自动继续合成,中途不停;修正 outline_ready 进度表描述;Scene 3 URL 导入去掉"询问是否继续"语言
2.8.02026-03-19全 type 大纲展示(两步流程:outline_ready → 用户确认 → composing → 合成);generate_save / generate_continue 续跑命令;task_id 语义模板匹配;type=1 默认 doubao-1-5-pro-32k-250115 + 20-30页;去掉自动更新和流式输出逻辑
2.7.02026-03-18新增高级配置(senior_options);模型切换(--model);参考文档模式(type=17);随机模板选取;文件名去重
2.4.02026-03-18修复文件导入流程(按类型走正确接口);新增 enterprise_templates / word / link / refer / conver_file 命令;修正 API 流程文档
2.3.02026-03-18新增使用场景章节(文件上传询问逻辑);generate_from_file 一键文档转PPT
2.2.02026-03-10修复文件 hidden flag、多格式导出顺序执行、文件格式验证
2.1.02026-03-10修复多格式导出队列满(20003)、增加文件验证
2.0.02026-03-10重写:修复 ticket/task_id 混淆,补全 save+export 流程,支持一键 generate
1.0.02026-03-04初版:基础 API 调用

Comments

Loading comments...