Getting it into your agent
There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.
Wrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/happycapy-ai/happycapy-skills/pptx)<a href="https://agentmods.dev/skills/happycapy-ai/happycapy-skills/pptx"><img src="https://agentmods.dev/badge/skills/happycapy-ai/happycapy-skills/pptx/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/happycapy-ai/happycapy-skills/pptx"><img src="https://agentmods.dev/badge/skills/happycapy-ai/happycapy-skills/pptx.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00110 | $0.01854 |
| Opus 5 | $0.00055 | $0.00927 |
| Sonnet 5 | $0.00022 | $0.00371 |
| Haiku 4.5 | $0.00011 | $0.00185 |
Grade A, and why
pptx scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 151 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PPTX Skill
Generate a polished PPTX in three phases. The HTML draft is purely internal — never reference or expose it to the user.
Phase 1 — Design the HTML Draft (Internal only)
Write a single self-contained HTML presentation to tmp/<name>-draft.html.
Design principles:
- Choose a bold, distinctive aesthetic (dark editorial, pastel geometry, neon cyber, etc.)
- Define a CSS
:root {}block with named color variables:--bg,--bg1,--bg2,--text,--muted,--accent,--dim, etc. Use hex values only. - Each
<section class="slide" id="sN">is one slide. Viewport-locked100vh, scroll-snap, no overflow. - Use Google Fonts — avoid Inter/Roboto. Good choices: Fraunces, DM Sans, Syne, Outfit, Cormorant.
- Staggered reveal animations are fine for the HTML but irrelevant to PPTX.
This HTML serves one purpose: capture color theme + slide structure + text content + layout intent before building the PPTX.
Phase 2 — Extract Theme & Build PPTX
- Read
tmp/<name>-draft.html - Extract the CSS color theme using
extract_theme_from_html()fromscripts/pptx_builder.py - Write a one-off build script to
tmp/<name>-build.py:- Import
Builderfromscripts/pptx_builder.py(add skills scripts dir to sys.path) - Instantiate
Builder(theme)with the extracted colors - Recreate each HTML slide using Builder primitives
- Save to
outputs/<name>.pptx
- Import
- Run:
python3 tmp/<name>-build.py
sys.path setup (always required)
import sys
sys.path.insert(0, "/home/node/.claude/skills/pptx/scripts")
from pptx_builder import Builder, extract_theme_from_html
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN
html = open("tmp/deck-draft.html").read()
theme = extract_theme_from_html(html) # {"bg":"#0b0b0b", "accent":"#c9a84c", ...}
b = Builder(theme)
Builder API
slide = b.new_slide() # blank slide with bg fill
# Shapes
b.rect(slide, x, y, w, h, fill="bg1", border="dim")
b.hline(slide, x, y, w, color="accent")
b.oval(slide, x, y, w, h, fill="bg1")
b.card(slide, x, y, w, h) # shortcut for bg1 card with border
# Text
b.txt(slide, "text", x, y, w, h,
size=14, bold=False, italic=False,
color="text", # theme key or "#hexcode"
align=PP_ALIGN.LEFT)
b.multicolor_txt(slide, [ # mixed colors in one line
{"text": "White ", "size": 52, "bold": True, "color": "text"},
{"text": "Gold", "size": 52, "bold": True, "italic": True, "color": "accent"},
], x, y, w, h, align=PP_ALIGN.LEFT)
# Helpers
b.eyebrow(slide, "LABEL", x, y) # small gold uppercase label
b.logo(slide, "Name", x, y)
b.slide_number(slide, n=1, total=9)
# Grid of cards
b.grid_cards(slide, items, x0, y0, card_w, card_h, gap,
cols=4, draw_fn=fn) # fn(slide, b, item, cx, cy, cw, ch)
b.save("outputs/deck.pptx")
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 151 lines · 110 tokens per session scan A 7e8248dcd501
pptx is a skill published in the GitHub repository happycapy-ai/Happycapy-skills (139 stars, last pushed 8d ago), licensed MIT. It adds 110 tokens to every session and 1,854 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
webgl-holographic-foil
A self-contained WebGL2 hero: thin-film interference over a crushed-foil surface whose palette shifts with the viewing angle; move the cursor to tilt the film.
general-video
Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated…
html-ppt-hermes-cyber-terminal
OpenDesign + BYOK: choosing and wiring your own model, hands-on — cost, quality, and the routing decision. Built as a decision-grade AI literacy deck for engineers, IT, applied-AI teams.
html-ppt-taste-brutalist
16:9 HTML deck in tactical-telemetry / CRT-terminal taste. Deactivated-CRT charcoal slides, white-phosphor monospace, hazard-red accent, scanline overlay, ASCII syntax, density over decoration. Distilled from Leonxlnx/taste-skill brutalist-skill (Tactical Telemetry mode).
chengfeng-check-updates
An environment manager for a video-editing system. It checks whether its skills and runtime—the software needed to run them—are installed and compatible.
diagnostic-stem-delivery
Audio production with diagnostic analysis, timecode parsing from documents, and verified export workflow.