# Skywork Ppt

> |

- **Type:** Skill
- **Install:** `agentstack add skill-skyworkai-skywork-skills-skywork-ppt`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [SkyworkAI](https://agentstack.voostack.com/s/skyworkai)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [SkyworkAI](https://github.com/SkyworkAI)
- **Source:** https://github.com/SkyworkAI/Skywork-Skills/tree/main/skywork-ppt
- **Website:** https://skywork.ai/skill-landing

## Install

```sh
agentstack add skill-skyworkai-skywork-skills-skywork-ppt
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# PPT Write Skill

Four capabilities: **generate**, **template imitation**, **edit existing PPT**, and **local file operations**.

---

## Prerequisites

### API Key Configuration (Required First)
This skill requires a **SKYWORK_API_KEY** to be configured in OpenClaw.

If you don't have an API key yet, please visit:
**https://skywork.ai**

For detailed setup instructions, see:
[references/apikey-fetch.md](references/apikey-fetch.md)

---

## Privacy & Remote Calls (Read Before Use)

- **Remote upload & processing**: Layers 1/2/4 upload local files and send the full, verbatim user query to the Skywork service. Avoid sensitive or confidential content unless you trust the remote service and its data handling policies.
- **Local-only operations**: Layer 3 (local ops) runs entirely on-device and does **not** call the remote gateway. Use Layer 3 if you need strict local processing.
- **Polling behavior**: The generation/edit workflows include periodic status polling (about every 5 seconds) while waiting for backend jobs. This is expected.

---

## Routing — Identify the user's intent first

| User intent | Which path |
|-------------|------------|
| Generate a new PPT from a topic, set of requirements or reference files | **Layer 1** — Generate |
| Use an existing .pptx as a layout/style template to create a new presentation | **Layer 2** — Imitate |
| Edit an existing PPT: modify slides, add slides, change style, split/merge | **Layer 4** — Edit |
| Delete / reorder / extract / merge slides in a local file (no backend) | **Layer 3** — Local ops |

---

## Environment check (always run this first)

**This skill requires Python 3 (>=3.8). Run the following before any script to locate a valid Python binary and install dependencies.**

```bash
PYTHON_CMD=""
for cmd in python3 python python3.13 python3.12 python3.11 python3.10 python3.9 python3.8; do
  if command -v "$cmd" &>/dev/null && "$cmd" -c "import sys; exit(0 if sys.version_info >= (3,8) else 1)" 2>/dev/null; then
    PYTHON_CMD="$cmd"
    break
  fi
done

if [ -z "$PYTHON_CMD" ]; then
  echo "ERROR: Python 3.8+ not found."
  echo "Install on macOS: brew install python3  or visit https://www.python.org/downloads/"
  exit 1
fi

echo "Found Python: $PYTHON_CMD ($($PYTHON_CMD --version))"

$PYTHON_CMD -m pip install -q --break-system-packages python-pptx
echo "Dependencies ready."
```

> After this check, replace `python` with the discovered `$PYTHON_CMD` (e.g. `python3`) in all subsequent commands.

---

## Layer 1 — Generate PPT

### Steps
0. **REQUIRED FIRST STEP** — Read [workflow_generate.md](workflow_generate.md) NOW, before taking any other action. After reading, output exactly: `✅ workflow_generate.md loaded.` — then proceed.
1. **Environment check** — run the check above to get `$PYTHON_CMD`.
2. **Upload reference files** (if the user provides local files as content source) — parse the file using tool in script/parse_file.py and pass the result to `--files`. See the `--files` note below.
3. **Web search** (required if no relevant content is already in the conversation) — call web_search tool in script to search the topic and distill results into a `reference-file` file of ≤ 2000 words.
4. **Run the script**:
   > **Important**: set exec tool `yieldMs` to `600000` (10 minutes).
5. **Deliver** — provide the absolute `.pptx` path and the download URL.

---

## Layer 2 — Imitate PPT (template-based generation)

### Steps
0. **REQUIRED FIRST STEP** - Read [workflow_imitate.md](workflow_imitate.md) immidiately before any action you do!!!
1. **Environment check** — run the check above to get `$PYTHON_CMD`.
2. **Locate the template** — extract the absolute path of the local `.pptx` from the user's message; ask the user if it's unclear.
3. **Upload the template** — upload it and extract `TEMPLATE_URL` from the output.
4. **Upload reference files** (if the user provides additional local files as content source) — parse the file using tool in script/parse_file.py and pass the result to `--files`. See the `--files` 
5. **Web search** (required if no relevant content is already in the conversation) — call web_search tool in script to search the new topic and distill results into a `reference-file` file of ≤ 2000 words.
6. **Run the script**:
   > **Important**: set exec tool `yieldMs` to `600000` (10 minutes).
7. **Deliver** — provide the absolute `.pptx` path, the download URL, and the template filename used.

---

## Layer 4 — Edit PPT (AI-powered modification)

Use this layer when the user wants to modify an existing PPT using natural language. Requires an OSS/CDN URL of the PPTX (from a previous generation or upload).

### Steps
0. **Detailed workflow** - Read [workflow_edit.md](workflow_edit.md) immediately before any action you do!!!
1. **Environment check** — run the check above to get `$PYTHON_CMD`.
2. **Get PPTX URL** — from the user's message or upload a local file first.
3. **Run the script** with `--pptx-url`:
   ```bash
   $PYTHON_CMD scripts/run_ppt_write.py "edit instruction" \
     --language Chinese \
     --pptx-url "https://cdn.example.com/file.pptx" \
     -o /absolute/path/output.pptx
   ```
   > **Important**: set exec tool `yieldMs` to `600000` (10 minutes).
4. **Deliver** — provide download link, local path, and summary of changes.

---

## Layer 3 — Local file operations

```bash
# Inspect slide count and titles
$PYTHON_CMD scripts/local_pptx_ops.py info --file my.pptx

# Delete slides (1-based index; supports ranges like 3,5,7-9; omit -o to overwrite in place)
$PYTHON_CMD scripts/local_pptx_ops.py delete --file my.pptx --slides 3,5,7-9 -o trimmed.pptx

# Reorder slides (must list every slide, no omissions)
$PYTHON_CMD scripts/local_pptx_ops.py reorder --file my.pptx --order 2,1,4,3,5

# Extract a subset of slides into a new file
$PYTHON_CMD scripts/local_pptx_ops.py extract --file my.pptx --slides 1-3 -o subset.pptx

# Merge multiple files
$PYTHON_CMD scripts/local_pptx_ops.py merge --files a.pptx b.pptx -o merged.pptx
```

Read [workflow_local.md](workflow_local.md) immidiately before any action you do!!!

---

## Error Handling

- **Insufficient benefit**: When calling scripts (generate, imitate, or edit), the script or log may show a message like `Insufficient benefit. Please upgrade your account at {url}`, meaning the user's benefit level does not meet the requirement for this skill.

### How to reply when benefit is insufficient

When you detect the above, **reply in the user's current language** — do not echo the English message. Use this pattern:

- Convey: "Sorry, PPT generation failed. This skill requires upgrading your Skywork membership to use." then a single call-to-action link.
- **Format**: One short sentence in the user's language + a link like `[Upgrade now →](url)` or the equivalent in their language .
- **URL**: Extract the upgrade URL from the log/script output (e.g. the `at https://...` part).

> Note: Only suggest upgrading when the error is **Insufficient benefit**. For auth errors like `NO_TOKEN` / `INVALID_TOKEN` / `401` / “invalid API key”, keep the error code / raw message and guide users to update `SKYWORK_API_KEY`. **Do not** suggest upgrading membership.

---

## Dependencies

- **Python 3.8+** (required) — `python3` / `python` must be on PATH
- Layer 3 local ops: `pip install python-pptx --break-system-packages`

(The environment check step installs all required dependencies automatically.)

---

## Which layer to trigger?

| Scenario | Use |
|----------|-----|
| Generate a PPT from a topic or existing reference files | Layer 1 |
| Imitate the layout/style of an existing .pptx | Layer 2 |
| Edit/modify an existing PPT via natural language | Layer 4 |
| Delete / reorder / extract / merge local .pptx files (no backend) | Layer 3 |

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [SkyworkAI](https://github.com/SkyworkAI)
- **Source:** [SkyworkAI/Skywork-Skills](https://github.com/SkyworkAI/Skywork-Skills)
- **License:** MIT
- **Homepage:** https://skywork.ai/skill-landing

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-skyworkai-skywork-skills-skywork-ppt
- Seller: https://agentstack.voostack.com/s/skyworkai
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
