Skip to content

aarshx05/slidekick

v1.1.0MIT

Make, edit and review fully editable, on-brand PowerPoint decks, checked against real PowerPoint and reviewed by fresh eyes.

Slidekick

Your slide sidekick. Brief in, real PowerPoint out: on your brand, every word editable.

Slidekick demo: a brief goes in, a real PowerPoint deck comes out, a click on a chart shows its data, and Morph plays

Everything in the demo is real output. The slides are PowerPoint renders of examples/pitch-deck, the table is the workbook embedded in that chart, and the Morph is PowerPoint's own video export.

Slidekick (/slidekick) is an agent skill that makes fully editable, on-brand PowerPoint decks from a brief, your docs, a spreadsheet, a code project or a website. It also edits the decks you already have without breaking their formatting, and reviews any deck like a design director would.

There are no screenshots pasted onto slides. Every headline is a real text box, every chart has its data in an embedded workbook, and every transition (Morph included) is native. Before you see the deck, /slidekick renders it in real PowerPoint and checks it against the design. Then a fresh pair of eyes reviews it.

CI MIT

Install

Claude Code:

/plugin marketplace add aarshx05/slidekick
/plugin install slidekick@slidekick

Codex:

codex plugin marketplace add aarshx05/slidekick
codex plugin add slidekick@slidekick

Gemini CLI:

gemini extensions install https://github.com/aarshx05/slidekick

Cursor: add it from the plugin marketplace, or point Cursor at this repo. Its manifest is in .cursor-plugin/.

Any other agent: one command with the skills CLI (Cursor, Copilot, Gemini CLI, opencode and more):

npx skills add https://github.com/aarshx05/slidekick --skill slidekick

Add -g to install it globally.

No installer? Copy the skill directly.

git clone https://github.com/aarshx05/slidekick
rsync -a --exclude "__pycache__" slidekick/skills/slidekick/ ~/.claude/skills/slidekick/

On Windows (PowerShell): Copy-Item -Recurse slidekick\skills\slidekick "$env:USERPROFILE\.claude\skills\slidekick". Restart your agent afterwards.

Also works with Antigravity, opencode, and anything that reads skills

The repo exposes the skill at each agent's standard discovery path, so agents find it without extra config.

AgentHow it discovers /slidekick
Claude Codethe plugin above, or .claude/skills/slidekick/
Codex CLIthe plugin above, or .agents/skills/slidekick/
Google Antigravity.agents/skills/slidekick/ in a project, or ~/.gemini/config/skills/slidekick/
opencode.opencode/skills/slidekick/
Anything elsepoint its custom instructions at skills/slidekick/SKILL.md. See docs/other-agents.md

Windows: the discovery paths are symlinks. Clone with git clone -c core.symlinks=true (this needs Developer Mode), or copy skills/slidekick/ into place as shown above.

Use it

Ask your agent in plain words:

/slidekick make a 10-slide seed pitch from this repo and the notes in docs/
/slidekick --brand ./brand-kit a quarterly review from q3.xlsx for the board
/slidekick 8 slides for our members' meeting, in our orange #F26B1D and charcoal, Nunito font
update the Q3 numbers in board-review.pptx to Q4 and keep everything else as it is
review this deck and tell me what to fix before Friday

You get a deck.pptx that opens and edits like one you built by hand. Alongside it are the plan, a contact sheet, a QA report and the design review.

OptionWhat it does
--brand <kit>logos, colours, fonts, a .potx/.pptx template, design tokens, a guidelines PDF: whatever you have
--audience, --tonewho it's for and how it should sound
--mode presented|readslides for a speaker, or a deck that stands on its own
--slides 10 / --minutes 15how long
--transitions, --animationshow much motion (Morph included)

How long does it take?

These numbers come from an ordinary run: Claude Opus 5.5 with PowerPoint 16 for Windows, an 8-slide brief, no brand kit, and every number supplied.

TimeWhat happens
Createabout 13 minplan → canvas → 4 builds of about 20 s each → 2 fresh-eyes review rounds (about a third of the time)
Edit ("those two numbers are wrong")about 2 minupdate → rebuild → re-check
Tokensabout 150kthe agent's own work for both. Each fresh-eyes review runs as a separate subagent pass on top

Bigger decks, a brand kit to ingest, or more review rounds take longer. Without PowerPoint, the checks run on LibreOffice, which renders a few seconds slower per build.

Three modes

ModeYou sayIt does
Create"make a deck about …"brief → story → slides → native .pptx → checked in PowerPoint → design review
Edit"update the numbers", "replace slide 5", "swap the screenshot"reads your deck, then changes only what you asked: text, charts, tables, images, styling, slide order. Masters, fonts and untouched slides stay exactly as they were
Review"critique this pitch", "summarise this deck"outline, real renders, mechanical issues, story analysis and a scored design review, for any .pptx, .ppt, .odp or .pdf

Gallery

Every example is in examples/, with its brief, plan, canvas, QA report and design review. Each one rebuilds from its own folder.

Meet SlidekickFernway seed pitchEdit: Q3 → Q4
Meet SlidekickFernway pitchBefore and after
the launch deck for this skill, on the demo brand kitcharts, a table, Morph and a brand built from scratchan ordinary deck updated in place: same template, new numbers

Why it's different

  • Editable or it doesn't ship. Slides are designed in HTML/CSS. Chromium solves the layout, and each element compiles to a native PowerPoint object: text boxes with real runs and bullets, shapes, vector SVG, tables, charts with embedded data, groups, transitions and animations.
  • Proof, not hope. PowerPoint renders the finished file and /slidekick pixel-diffs it against the design. It reads back what PowerPoint parsed (transitions, animations, overflowing text) and fixes problems before you ever open the file.
  • On brand from your kit. Give it a .potx and it builds on your masters, theme colours and fonts. Give it a website and it uses that site's identity.
  • Reviewed by fresh eyes. A lint measures what a design director catches: near-miss alignment, jumping headlines, runts, type-scale sprawl, off-palette colour, the tells of an AI-made deck. A separate reviewer that never saw the code then scores 8 dimensions. Nothing ships with a blocker or a score below 4/5.

How it works

Source (brief, docs, data, project, URL)
  → Semantic analysis   content · brand kit · audience          plan/brief.md
  → Story               beats                                    plan/narrative.json
  → Slides              one idea per slide                       plan/slides.json
  → Canvas              HTML/CSS → Chromium geometry             canvas/deck.html → build/layout.json
  → Compile             python-pptx + OOXML patches              deck.pptx
  → Render              PowerPoint (LibreOffice fallback)        build/render/
  → QA                  pixel diff vs design + checks            qa/report.md, qa/contact-sheet.png
  → Fix                 rebuild (≤ 3 rounds)
  → Review              taste lint + fresh-eyes design review    qa/taste.md, qa/review.json (≤ 2 rounds)
PieceRole
Chromium (your Edge/Chrome, via Playwright)the layout engine. It reads exact boxes, computed styles, text runs, baselines and the font that actually rendered each run
python-pptx + an OOXML patchernative shapes, text, pictures, tables and charts, plus hand-written XML for what python-pptx lacks: transitions (p14/p15/p159 with fallbacks), animation timing, SVG, theme colours and fonts, gradients, shadows, letter-spacing
PowerPointthe ground-truth renderer: COM on Windows, AppleScript on Mac
Baseline calibrationPowerPoint places text non-linearly, so each text style is measured once in real PowerPoint and cached

Fidelity, measured on PowerPoint 16 for Windows:

  • 0 px residual baseline error across 175 calibrated text styles (before calibration it was up to 8 px)
  • 25 transitions (Morph by object, word and character included) and 14 entrance animations, every one parsed by PowerPoint with click/with/after triggers
  • line breaks match Chromium's exactly
  • QA forgives ±2 px of renderer jitter but fails a missing or rewrapped headline, a shifted block, or a wrong colour

Requirements

  • An agent that supports skills: Claude Code, Codex, opencode, Antigravity, Cursor or others
  • Python 3.10+. The first run creates a private environment and installs everything else
  • Edge or Chrome (or python -m playwright install chromium)
  • PowerPoint for ground-truth QA (optional: without it, LibreOffice gives an approximate check)
WindowsmacOSLinux
Create, Edit, Review✅✅✅
QA rendererPowerPointPowerPoint for Mac (beta)LibreOffice (approximate)
Transition/animation readback✅XML check onlyXML check only
Text-overflow check after an editmeasured by PowerPointvisualvisual

To check your machine: python <skill-dir>/scripts/deck.py doctor. On a Mac, the first render asks to let your terminal control PowerPoint. Allow it.

Privacy

Everything runs on your machine. /slidekick only goes online to install its Python packages on first run, to fetch a Google Font you ask for, or to capture a URL you give it. Your documents and decks are never uploaded anywhere.

Limitations

  • Slides are 16:9. A template with a different aspect ratio is scaled to its width.
  • Some CSS isn't exported: filters, blend modes, scale()/skew, stacked background gradients, per-corner radii, and ::before/::after. The tool warns when it meets one.
  • Edit mode can't change SmartArt, OLE objects, video, or masters in place, and it can't add table rows or columns. Rebuild those slides instead.
  • --embed-fonts is experimental. Recipients should have the brand fonts installed.
  • PDF decks can be reviewed but not edited.

Uninstall

python <skill-dir>/scripts/deck.py uninstall           # removes the private environment and caches
python <skill-dir>/scripts/deck.py uninstall --fonts   # …and the fonts /slidekick installed

Then remove the plugin with /plugin uninstall slidekick@slidekick.

What's in this repo

  • skills/slidekick/: the skill. SKILL.md (Create / Edit / Review), references/ (step guides, design guide, review rubric), scripts/ (the pipeline) and assets/ (the starter canvas)
  • examples/: the gallery decks, each rebuildable from its own folder
  • docs/: the launch site (GitHub Pages)
  • tests/: pytest suite, run in CI on Windows, macOS and Linux
  • .claude-plugin/, .codex-plugin/, plugin.json: plugin manifests for Claude Code, Codex and Agent Plugins
  • .claude/skills/slidekick, .agents/skills/slidekick, .opencode/skills/slidekick: symlinks to skills/slidekick/ for auto-discovery

Credits

Contributing

Questions, ideas and decks you've made go in Discussions. Bugs go in Issues (please include deck.py doctor output), and PRs are welcome: see CONTRIBUTING.md. For anything private, email 12345.aarsh@gmail.com.

License

MIT