Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/vibetasking-presentations
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, presentations, testing, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/presentations
What's inside
- Skill name
presentations- Description
- Slide deck creation (PDF & PowerPoint), editing, and QA
- License
- MIT
- Instructions
- 138 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions call the network
Files (3)
- SKILL.md
- html_to_pptx.py · scripts/
- slides.md
SKILL.md (first lines)
# Presentations
Slides are landscape A4 pages rendered via `pretty_docs html_to_pdf`,
optionally converted to PPTX afterward. The rendering model is shared
with the `documents` skill. Read
`system/skills/documents/reference/html-pdf.md` for the dimensions,
margins, page-fitting rules, and what is `[enforced]` by code.
Most decks are custom. There is no "default template": design what
fits the topic. The validator catches structural breaks (overflow,
unreadable fonts, broken images). Style is your call based on
explicit / implicit user task context. Long decks, dense slides,
text-only pages, repeated layouts, poster-style or infographic-style
designs are all legitimate.
## Workflow
```bash
# 1. Write the deck HTML to slides.html with your file writing tool so you can iterate.
# 2. Preview-validate overflow (landscape).
python system/skills/documents/scripts/validate_html.py slides.html --landscape
# 3. Render to PDF (auto-compressed, returns size + warnings).
pretty_docs html_to_pdf --json '{"html_file_name": "slides.html", "output_file_name": "slides.pdf", "landscape": true}'
# 4. Sample pages for visual review (scales with deck length).
python system/skills/documents/scripts/preview_pdf.py slides.pdf
# 5. Open the sampled images: open each .preview/slides/page-NN.jpg with your file reading tool, as an image.
# 6. (Optional) Convert to PowerPoint.
python system/skills/presentations/scripts/html_to_pptx.py slides.html slides.pptx
```
Iterate steps 1, 3, 4, 5 with your file editing tool until the sampled pages
look right. `preview_pdf.py` samples first/middle/last by default
and scales up for longer decks (3 samples for ≤15 slides, 5 for
≤40, 8 for 40+). Pass `--all` or `--pages 1,7,12` when you need
specific frames.
Each slide is a `.page` div sized exactly to the paper —
`width: 297mm; height: 210mm` for landscape. The renderer puts every
`.page` on its own sheet and rejects overflow, so design content to
fit. Split across slides rather than cramming. Pad each `.page`
(12–18mm typical) so text keeps ≥10mm off the slide edge — full-bleed
backgrounds and images are fine, text touching the paper edge is not.
The render result warns on size mismatches (`[page-size]`) and text
at or past the edge (`[edge-margins]`, `[clipped-text]`). Beyond
that, the layout, density, and style are yours.
For concrete layout patterns to start from (title slides, two-column,
image splits, stats grids, quotes, comparisons, timelines, dark
themes, gradients), see `system/skills/presentations/slides.md`. The
patterns are starting points: adapt, combine, replace as the task
demands.
## Enriching slides with images
```bash
# Custom illustration or background
banana generate_image --json '{"prompt": "Abstract dark blue gradient, subtle geometric patterns", "path": "bg.jpg", "aspect_ratio": "16:9", "resolution": "2K"}'
# Stock photos
image_search image_search --json '{"query": "modern office teamwork", "count": 5}'
# Download a found image locally
curl -L -o "photo.jpg" "https://example.com/image.jpg"
```
Embed in your HTML:
```html
<img src="photo.jpg" style="width: 100%; object-fit: cover;" />
<!-- or as a background -->
<div class="page" style="background-image: url('bg.jpg'); background-size: cover;">
```
Both local paths and remote URLs work. Download remote images
locally if you need reliability across re-renders.
## Animations
HTML slides are rendered as static snapshots: CSS animations and
transitions do not appear in the PDF or PPTX. For animated
presentations, use the **Remotion skill** instead (full motion
graphics, entrance effects, data visualizations as video).
## PPTX conversion
`html_to_pptx.py` screenshots each slide at 2x resolution and embeds
the images in a `.pptx`. Slides become pixel-perfect images, which
means: the PPTX is not editable as text. Always QA the PDF first.
If text editability matters, ship the PDF, or build the deck natively
with PptxGenJS instead of the HTML pipeline.
## Native and edited PowerPoint files
Building a deck natively with PptxGenJS, editing an existing deck or
filling a template follows the guide at
`system/skills/presentations/rules/pptx.md`: its pptxgenjs gotchas, the
unzip, edit and zip workflow, the slide scripts and the validator. Inside
a run:
- Its `scripts/` paths are relative to `system/skills/presentations/rules/`,
so a call reads
`python system/skills/presentations/rules/scripts/thumbnail.py deck.pptx deck-thumbs`.
- `pptxgenjs`, `react-icons`, `react`, `react-dom` and `sharp` are not
preinstalled here, whatever the guide says. Install them in the project
folder, next to the script that requires them (`npm install pptxgenjs`).
The sandbox's system directories are read only, so a global install fails.
The guide lives only inside a run, so a reader outside one does not have it.
## Dependencies (sandbox-provided)
- `pretty_docs` toolkit (Chromium + Playwright)
- `pymupdf`, `pillow`: Python image / PDF handling
- `python-pptx`, Playwright: HTML→PPTX conversionFrom vibetasking/vibetasking-plugin, MIT.
More from vibetasking/vibetasking-plugin
- 0.567score
documents
vibetasking
PDF generation and Word document styling, plus reading, merging and filling existing PDFs and redlining existing Word files
SkillAFreshness: AClaude Code +9 - 0.565score
linkedin-account
vibetasking
Direct messages, connections, invitations both ways, people, company, job and post search, posts, and job postings through the workspace's connected LinkedIn…
SkillAFreshness: AClaude Code +9 - 0.561score
holded
vibetasking
Holded ERP document and contact operations via the `holded` CLI, and app.holded.com browser operation for what the API doesn't cover.
SkillAFreshness: AClaude Code +9 - 0.561score
platform-events
vibetasking
Make an agent react to platform events (a stranger waiting at a gated channel, a failed run, a low balance, a new finding) with an activity trigger, with what…
SkillAFreshness: AClaude Code +9 - 0.561score
provenance
vibetasking
Stamp AI-provenance metadata into media and documents you build yourself when they leave the platform by a path it does not stamp for you, such as an upload…
SkillAFreshness: AClaude Code +9 - 0.561score
googledrive
vibetasking
Working composio googledrive action names and shapes, the four upload actions, upload verification, metadata field selection, and sharing permissions
SkillAFreshness: AClaude Code +9 - 0.561score
gmail
vibetasking
Known composio gmail action parameters, compose actions send to recipient_email and attach via files, and fetch_emails payload rules
SkillAFreshness: AClaude Code +9 - 0.561score
vibetasking
vibetasking
Build, run and operate automations on the user's VibeTasking workspaces (agents, runs, integrations, channels, assets, triggers, data, billing, keys), from an…
SkillAFreshness: AClaude Code +9 - 0.561score
whatsapp
vibetasking
Complete --json argument shapes for every WhatsApp Business Cloud API send (text, template, media, interactive), the 24-hour window rules, and WhatsApp Web…
SkillAFreshness: AClaude Code +9 - 0.558score
spreadsheets
vibetasking
Excel/Google Sheets best practices, data verification, batch workflows
SkillAFreshness: AClaude Code +9 - 0.555score
composio
vibetasking
Composio action discovery and shell usage
SkillAFreshness: AClaude Code +9 - 0.555score
pipedream
vibetasking
Pipedream action discovery and shell usage
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 20, 2026 (8 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Website
- vibetasking.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from vibetasking
- 0.567score
documents
vibetasking
PDF generation and Word document styling, plus reading, merging and filling existing PDFs and redlining existing Word files
SkillAFreshness: AClaude Code +9 - 0.565score
linkedin-account
vibetasking
Direct messages, connections, invitations both ways, people, company, job and post search, posts, and job postings through the workspace's connected LinkedIn…
SkillAFreshness: AClaude Code +9 - 0.561score
platform-events
vibetasking
Make an agent react to platform events (a stranger waiting at a gated channel, a failed run, a low balance, a new finding) with an activity trigger, with what…
SkillAFreshness: AClaude Code +9 - 0.561score
holded
vibetasking
Holded ERP document and contact operations via the `holded` CLI, and app.holded.com browser operation for what the API doesn't cover.
SkillAFreshness: AClaude Code +9 - 0.561score
gmail
vibetasking
Known composio gmail action parameters, compose actions send to recipient_email and attach via files, and fetch_emails payload rules
SkillAFreshness: AClaude Code +9 - 0.561score
googledrive
vibetasking
Working composio googledrive action names and shapes, the four upload actions, upload verification, metadata field selection, and sharing permissions
SkillAFreshness: AClaude Code +9
Cite this page
presentations skill. Agent Mart. https://agentmart.dev/skills/vibetasking-presentations (last updated 2026-10-24)