keynot
kill powerpoint with html.
What •
Install •
How •
Inside •
Caveats
Someone asks you to "put together a few slides" and your hand drifts to the PowerPoint icon out of pure muscle memory. Then come the next twenty minutes of fighting a template you didn't pick, nudging a text box three pixels to the left, and discovering that your brand colors aren't in the theme. None of that is the presentation. None of that is the idea. That's tax you pay for using a tool built in 1987.
keynot is a Claude Code skill that stops paying it. Ask Claude for "slides" or "a deck" and it ships you a single .html file — keyboard nav, swipe, fullscreen, staggered reveals, editorial typography, all wired up. It opens in any browser, runs offline, and weighs less than the email you were going to attach a 40MB .pptx to. Hand Claude a brand guide — a PDF, a URL, even a paragraph describing the vibe — and it extracts the palette and type system into CSS variables so the whole deck inherits it. "Match this brand" stops being a half-day in Figma and starts being a sentence.
Read the writeup: Stop Reaching for PowerPoint.
Live demo
→ Open the live deck
Arrow keys or swipe to navigate · press f for fullscreen
Generated from a single prompt: "keynot, but if the audience was zombies, and lean into it." Everything — nav, fullscreen, animations, typography, all five slides — is one HTML file. Source.
What it does
Ask Claude for "slides", "a deck", or "something to present" and keynot activates. You get one HTML file with:
- Navigation — arrow keys, space, swipe on touch, clickable dot indicators, auto-hiding nav bar
- Fullscreen —
f key or click the fullscreen button
- Staggered reveals — content fades up in sequence on each slide
- Brand theming — CSS variables for primary/accent/typography swap in seconds
- Layout library — split panels, stat columns, value cards, approach rows, photo panels
- Embedded assets — fonts via CDN, images via base64 — one file, no broken links
- PDF export —
Cmd+P → Save as PDF gives one slide per page, backgrounds intact, no extra tooling
- PPTX export — ask for PowerPoint and keynot generates a
python-pptx script you run with uv run --with python-pptx
Install
Claude Code
keynot is published in the official Claude Code plugin marketplace. Install it with one command:
/plugin install keynot@claude-plugins-official
The official marketplace is pre-registered — no marketplace add step needed. You can also browse it at claude.com/plugins or run /plugin and pick keynot from the Discover tab.
Self-hosted (pre-marketplace) install
If you're pinned to an older Claude Code build without the official marketplace, the self-hosted route still works:
/plugin marketplace add shawnzam/keynot
/plugin install keynot@keynot-marketplace
Codex (project-scoped)
Codex reads AGENTS.md from the current working directory — there's no global plugin registry. Drop the skill into whatever project you're presenting from:
mkdir -p your-project/skills/keynot
curl -fsSL https://raw.githubusercontent.com/shawnzam/keynot/main/skills/keynot/SKILL.md \
-o your-project/skills/keynot/SKILL.md
curl -fsSL https://raw.githubusercontent.com/shawnzam/keynot/main/AGENTS.md \
-o your-project/AGENTS.md
Restart Codex in that directory. The AGENTS.md tells it to read the skill when you ask for slides. Repeat for each project where you want keynot available.
Gemini CLI