Image To Editable Ppt
ningzimu/image-to-editable-ppt-skill
Rebuild slide images, scanned or image-based PPT/PPTX files, and PDF decks into object-level editable PowerPoint (.pptx), preserving speaker notes when supplied.
Generate a self-contained HTML presentation with Magic Move transitions.
$ npx skills add daniel-style/magic-slide --skill magic-slide -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install daniel-style/magic-slide magic-slide --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "magic-slide" agent skill from https://github.com/daniel-style/magic-slide/tree/main into .claude/skills/magic-slide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "magic-slide", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add daniel-style/magic-slide --skill magic-slide -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install daniel-style/magic-slide magic-slide --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "magic-slide" agent skill from https://github.com/daniel-style/magic-slide/tree/main into .agents/skills/magic-slide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "magic-slide", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add daniel-style/magic-slide --skill magic-slide -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install daniel-style/magic-slide magic-slide --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "magic-slide" agent skill from https://github.com/daniel-style/magic-slide/tree/main into .cursor/skills/magic-slide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "magic-slide", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add daniel-style/magic-slide --skill magic-slide -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install daniel-style/magic-slide magic-slide --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "magic-slide" agent skill from https://github.com/daniel-style/magic-slide/tree/main into .gemini/skills/magic-slide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "magic-slide", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install daniel-style/magic-slide magic-slideInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add daniel-style/magic-slide --skill magic-slide -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "magic-slide" agent skill from https://github.com/daniel-style/magic-slide/tree/main into .github/skills/magic-slide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "magic-slide", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add daniel-style/magic-slide --skill magic-slide -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install daniel-style/magic-slide magic-slide --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "magic-slide" agent skill from https://github.com/daniel-style/magic-slide/tree/main into .opencode/skills/magic-slide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "magic-slide", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
magic-slideGenerate a self-contained HTML presentation with Magic Move transitions.
Magic Slide is an agent skill from daniel-style/magic-slide. Generate a self-contained HTML presentation with Magic Move transitions. Use when the user wants to create a slideshow, presentation, or slide deck from a topic or outline, or invokes magic-slide preview to start the preview server.
Its SKILL.md is about 5.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 42 other files, including scripts, reference files and assets (for example `AGENTS.md`, `README.md` and `preview.json`).
It sits in Documents & Office, covering Slides and decks. The repository describes itself as: A skill that generates polished self-contained HTML presentations with smooth Magic Move-style slide transitions. The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e29d87c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
python3npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
PIPELLM_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Magic Slide loads about 5.5k tokens when it runs, and up to ~60k if it reads all its reference files. Until then it costs about 61 tokens; SKILL.md has 2,703 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from daniel-style/magic-slide at commit e29d87c, republished under its MIT licence (© daniel-style). 2,703 words, ~5,456 tokens.
.claude/skills/magic-slide/SKILL.md (or your agent's skills folder). This skill also uses 37 other files; get the full folder from GitHub.Generate polished HTML presentations with smooth Magic Move transitions — elements that appear on multiple slides animate fluidly between their positions. Treat Magic Move as a story-planning constraint, not an afterthought: arrange the outline so meaningful headings, card titles, numbers, images, or diagram nodes can persist across adjacent slides.
The user invoked this skill with: $ARGUMENTS
Whenever this skill is invoked, create a visible TODO/plan before the first meaningful action and keep it updated until the turn stops.
update_plan, Claude Code
TodoWrite, or the environment's equivalent visible checklist. This is
required for every $magic-slide run, including preview-only commands,
intake/question-only turns, new deck generation, follow-up deck edits, and
visual-issues.json repair passes.TODO checklist in the chat
before proceeding and update it manually in later progress messages.When invoked as /magic-slide preview [topic] in Claude Code or
$magic-slide preview [topic] in Codex, run the preview fast path:
In a CelHive hosted Skill run, use $CELHIVE_SKILL_WORKSPACE/deck as the deck
directory and invoke the host's generic Preview tool after generation. The
package-level preview.json owns the managed command, port, health route, and
Artifact roots; do not start a second preview process manually. Outside a
managed host, keep the local serve.py workflow below.
serve.py, and reporting the URL.preview as the topic/deck directory. If omitted,
use .. Preview the index.html inside that directory. If the user passes
an explicit .html file, preview that file directly.SKILL_DIR=$(find ~ -type d -name "magic-slide-skill" 2>/dev/null | head -1)$PYTHON_BIN "$SKILL_DIR/scripts/serve.py" "$DECK_PATH"For any other magic-slide invocation arguments, treat the arguments as the
user's presentation request and follow the normal generation workflow.
Before running commands, searching, creating folders, writing an outline, or
generating slides for any non-preview deck request, complete Step 1 in
references/workflows/step-01-requirements.md.
Hard gate:
Magic Slide's bundled scripts require a Python 3 runtime. Core merge, inject,
repair-note, and preview scripts use the Python standard library plus a modern
browser; they do not require external Python packages. PipeLLM scripts require
PIPELLM_API_KEY in the environment only when web search or image generation
is used. Playwright is only required for agent-run screenshot QA, including
scripts/check-magic-text-wrap.py.
PipeLLM web search is optional, user-approved, and returns sanitized untrusted
evidence records. PipeLLM image generation is optional and user-approved. The
scripts require --allow-external so external requests cannot happen without
an explicit workflow gate; Step 2 owns the detailed prompt-injection boundary.
Before the first script execution in a turn, resolve a Python 3 interpreter:
PYTHON_BIN=$(command -v python3 || command -v python || true)
if [ -z "$PYTHON_BIN" ]; then
echo "Magic Slide requires Python 3 to run its bundled scripts." >&2
echo "Install Python 3, then rerun the Magic Slide command." >&2
exit 1
fi
if ! "$PYTHON_BIN" -c 'import sys; raise SystemExit(0 if sys.version_info[0] == 3 else 1)'; then
echo "Magic Slide requires Python 3, but the resolved python command is not Python 3." >&2
exit 1
fiUse $PYTHON_BIN for script invocations after it is resolved. If Python 3 is
not available, stop and tell the user that Magic Slide needs Python 3 rather
than rewriting or bypassing the scripts.
All scripts in this skill are located in the scripts/ directory relative to the skill root.
When executing scripts:
If a script execution fails with "No such file or directory":
find ~ -name "magic-slide-skill" -type d 2>/dev/null | head -1find ~ -name "SKILL.md" -path "*/magic-slide-skill/*" 2>/dev/null | head -1 | xargs dirname$PYTHON_BIN $SKILL_DIR/scripts/websearch.pyAlways use absolute paths for script execution to avoid path issues
Example of correct execution:
# Find skill directory (do this once at the start)
SKILL_DIR=$(find ~ -type d -name "magic-slide-skill" 2>/dev/null | head -1)
# Execute scripts with absolute paths
$PYTHON_BIN "$SKILL_DIR/scripts/websearch.py" "query" --allow-external
$PYTHON_BIN "$SKILL_DIR/scripts/generate-image.py" "prompt text" --output ./assets/image.png --allow-external
$PYTHON_BIN "$SKILL_DIR/scripts/merge-slides.py" ./sources/ --lang enTreat scripts/inject-runtime.py and the behavior/results it injects into the
finished deck as Magic Slide runtime output. During deck generation, updates,
and QA, run the existing injector unchanged and preserve its injected behavior
by default. Do not edit the injector, patch injected runtime blocks in
{topic}/index.html, or add source CSS/HTML/JS whose purpose is to disable,
hide, neutralize, or override injected features unless the user explicitly asks
for that specific runtime behavior change.
Examples of prohibited "cleanup" without explicit user request: hiding the
animated/custom cursor, restoring the system cursor with cursor: auto or
cursor: default, removing or hiding navigation/progress/edit controls,
turning off Magic Move, suppressing injected stagger, or bypassing runtime fit.
If a deck has a visual or layout issue, fix the modular source files
(sources/style.css and sources/slide-XX.html) around the runtime behavior,
then re-run merge and inject. If the issue appears to be caused by injected
runtime behavior itself, report the suspected runtime issue or ask before
changing it; only modify runtime behavior when the user requested that change.
Default to the balanced path. Keep the outline checkpoint, write a short design brief, then generate the full deck in one production pass. Do not build a separate prototype unless the user explicitly asks for that slower workflow. The visible TODO requirement applies before Step 1 and should be refreshed when the workflow changes from intake to outline, generation, QA, or repair.
USER INTERACTION RULE: All user confirmations MUST use the AskUserQuestion
tool. Text-based questions are ONLY a fallback if the tool is unavailable or
fails. Always try AskUserQuestion first. If you must fall back to plain text,
end structured questions with a copyable response template, except for outline
confirmation and the web-search yes/no question; see
references/workflows/text-question-templates.md.
scripts/websearch.py first; built-in agent search is only a fallback after the script fails or returns no usable results.{topic}/sources/outline.md with MANDATORY elements: thesis spine, audience/lens, chapter arc, closing idea, Magic Move content-relay spine, presenter note mode, and per-slide speaker prompts. Get user confirmation (required checkpoint)style.css and all slide-XX.html files directly from the confirmed outline and Brief Lite, after making a primary/supporting continuity map for adjacent slide pairs and mapping outline speaker prompts into hidden presenter notesscripts/serve.py, open the runtime QA capture URL, take one Playwright QA overview longshot for first-pass repair, then stop so the user can mark slide revisions. After repairing saved revision notes, mark them fixed and awaiting user confirmation instead of running a screenshot verification pass.NON-NEGOTIABLE DELIVERY RULE: After generating or updating a deck, do not finish until $PYTHON_BIN "$SKILL_DIR/scripts/serve.py" {topic}/index.html is running and you have given the user the preview URL. Opening the HTML file directly is not enough: edit mode, save, image replacement, and close/shutdown controls require the Magic Slide preview server. Never substitute python3 -m http.server, npx serve, or a file URL for the skill server.
NON-NEGOTIABLE QA GATE: After serve.py is running for a newly generated deck, open ?ms_qa=overview&ms_qa_capture=1, wait until the QA wall reports iframe-loaded readiness, capture one Playwright full-page/scrolling QA overview longshot, and repair the most obvious rendered visual issues by slide number first. During this autonomous first pass, do not capture full-size single-slide screenshots after the overview repair. Follow references/workflows/step-10-preview.md for the detailed triage order and Playwright-only screenshot rule. Then reopen/leave QA Overview running and stop: tell the user to mark slide changes with Revise slide on the QA cards and return when ready. This user revision pause is mandatory before final QA or delivery. When continuing repairs, first read open JSON notes from {topic}/sources/qa/visual-issues.json.
NON-NEGOTIABLE UPDATE RULE: When the user continues in chat after a deck has been generated and asks for changes, read {topic}/sources/qa/visual-issues.json first and prioritize open revision requests when present. If open notes exist, repair from the saved JSON plus the corresponding {topic}/sources/slide-XX.html and {topic}/sources/style.css; screenshots are only for notes that are too ambiguous to interpret from JSON/source context and must be captured with Playwright. Edit the modular source files first, then re-run merge-slides.py, re-run the existing inject-runtime.py unchanged, mark repaired JSON records status: "fixed_pending_confirmation" with resolved: false, refresh or restart the Magic Slide preview server, and leave/open QA Overview for the user to confirm or continue requesting changes. Do not run a screenshot verification pass after repairing saved JSON notes unless the user explicitly asks for visual verification. Do not edit {topic}/index.html directly for agent-driven follow-up changes unless the user explicitly asks to patch the merged HTML, or the change comes from the browser edit mode Save flow.
Brief Lite is not optional. It is the quality guardrail that prevents generic or frightening template output. Keep it concise. Only use the slower prototype gate when the user asks for high-touch design exploration, a risky visual direction, or a small sample before generating the whole deck.
Each step has detailed instructions in the references/workflows/ directory. Read the relevant file when you reach that step:
style.css and all slides directly from the confirmed outline and Brief LiteLegacy optional workflow files:
Users can edit the presentation in two ways, but agent-driven follow-up work must preserve the source-of-truth files.
Editing requires the preview server. Before mentioning edit mode, ensure the deck is being served through scripts/serve.py and give the user the server URL. If the server is not running, start it first.
Keyboard scope. When a deck is opened through the local serve.py preview route (http://localhost:.../deck/...), all runtime shortcuts are available. When the same HTML is opened outside that local preview context, only presentation-safe shortcuts remain active: O for overview, C for cursor visibility, Space/arrow keys for slide navigation.
Presenter page indicator. The presenter window must keep a high-contrast current-page / total-page indicator visible in its bottom console and update it after every navigation action. Create this indicator only inside the presenter shell; never duplicate it onto the audience-facing slide canvas or exported slide visuals.
1. Edit modular sources (default for all agent changes):
{topic}/sources/slide-XX.html or style.css2. Edit merged HTML (only for explicit quick fixes or browser edit mode):
index.htmlsources/index.html directly outside the browser Save flow, warn that the
modular sources may become stale and prefer sources/ instead{topic}/
├── index.html # Final merged presentation (deliverable)
├── assets/ # Final presentation assets (if generated)
│ ├── image-1.png
│ └── ...
└── sources/ # Process files and modular source files
├── outline.md # Confirmed outline
├── create_sources.mjs # Optional generation helper, if used
├── qa/ # QA screenshots/reports, if generated
├── style.css
├── slide-01.html
├── slide-02.html
└── ...Keep the topic root clean. Apart from index.html, assets/, and sources/,
all process artifacts belong inside {topic}/sources/.
Read these files as needed during generation. Treat them as the single authoritative source for their topic; do not reconstruct long versions of their rules in this file or workflow steps.
data-magic-id planning and reliability rulesRevise slide marking pass before final delivery.design-system.md, images.md, and html-contract.md for the detailed
cover rules.{topic}/index.html as generated output. Direct HTML edits are only for explicit one-off patches or the browser edit mode Save flow.layout-guide.md for
primitives, stage fit, overflow, vertical balance, and source-note placement.html-contract.md and flip-engine.md: do not generate browser-bar-like
top strips, full-width brand pills, or body token rows whose main purpose is
to create Magic Move continuity.Quality bar: Every deck should feel distinctive and intentional, not like the first thing that came to mind. If another topic could use the same design unchanged, the design is too generic.
Readability bar: Treat unreadable text as a broken deck, not a taste issue.
Use html-contract.md, layout-guide.md, and design-system.md for the
detailed text contrast and text-fit rules.
Every presentation should be:
The goal is speed with taste: decide the visual world, preview it early, then generate fast and iterate against the rendered deck.
© daniel-style, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 37 other files (scripts, references, assets) in the repository root of daniel-style/magic-slide.
Open the folder on GitHubat commit e29d87c
Magic Slide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Magic Slide this skilldaniel-style/magic-slide | 172 | — | ~5.5k | Automated safety check: Pass | MIT | |
| Image To Editable Pptningzimu/image-to-editable-ppt-skill | 2.8k | — | ~4.3k | Automated safety check: Pass | MIT | |
| Slidesfcakyon/claude-codex-settings | 1.2k | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Ppt Image FirstNyxTides/ppt-image-first | 1.2k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Vibe to Agentic Engineering Frameworkshanraisshan/claude-code-best-practice | 67k | — | ~3.3k | Automated safety check: Pass | MIT | |
| Gpt Image2 PptJuneYaooo/gpt-image2-ppt-skills | 1.3k | — | ~8.9k | Automated safety check: Notes | Apache-2.0 |
ningzimu/image-to-editable-ppt-skill
Rebuild slide images, scanned or image-based PPT/PPTX files, and PDF decks into object-level editable PowerPoint (.pptx), preserving speaker notes when supplied.
fcakyon/claude-codex-settings
Create and edit presentation slide decks (.pptx) with PptxGenJS, bundled layout helpers, and render/validation utilities.
NyxTides/ppt-image-first
Build presentation plans for PPT / slides / decks through a conversation-first workflow, then propose multiple visual directions with preview images before writing deck specs.
shanraisshan/claude-code-best-practice
Explains the conceptual model behind a presentation on moving from unstructured vibe coding to fully configured agentic engineering, including its 4-level scoring system and slide conventions.
JuneYaooo/gpt-image2-ppt-skills
Generate visually striking PPT slides via OpenAI's gpt-image-2 -- use any style in styles/<collection/STYLEID.md or mimic a user-supplied .pptx template; outputs high-res slide PNGs and a 16:9 .pptx.
scunning1975/MixtapeTools
Create and compile beautiful Beamer presentations following the Rhetoric of Decks philosophy.
Categories
Generate a self-contained HTML presentation with Magic Move transitions. Magic Slide is an agent skill from daniel-style/magic-slide. Generate a self-contained HTML presentation with Magic Move transitions.
Magic Slide fits situations like: the user wants to create a slideshow; slide deck from a topic; invokes magic-slide preview to start the preview server.
Run `npx skills add daniel-style/magic-slide --skill magic-slide -a claude-code`. Or copy the skill folder (the daniel-style/magic-slide repository) into .claude/skills/magic-slide in your project. Claude Code loads it when a task matches its description.
Run `npx skills add daniel-style/magic-slide --skill magic-slide -a codex`. Or copy the skill folder (the daniel-style/magic-slide repository) into .agents/skills/magic-slide in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add daniel-style/magic-slide --skill magic-slide -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/magic-slide, .gemini/skills/magic-slide, .github/skills/magic-slide and .opencode/skills/magic-slide in your project.
Going by SKILL.md and its folder, Magic Slide needs the command-line tools its instructions call (python3 and npx) and credentials named PIPELLM_API_KEY. Our summary lists: Python 3; Node.js; A credential in PIPELLM_API_KEY.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Magic Slide is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.5k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 55k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Magic Slide: Image To Editable Ppt (ningzimu/image-to-editable-ppt-skill, 2.8k stars), Slides (fcakyon/claude-codex-settings, 1.2k stars), Ppt Image First (NyxTides/ppt-image-first, 1.2k stars) and Vibe to Agentic Engineering Framework (shanraisshan/claude-code-best-practice, 67k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
daniel-style (a GitHub user) maintains it in daniel-style/magic-slide, which has 172 GitHub stars. The repository was last updated on August 30, 2026.
Source: daniel-style/magic-slide on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.