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.
Create or revise Reveal.js conference talks and presentations in this repository from manuscripts, outlines, or approved abstracts.
$ npx skills add vfarcic/vfarcic.github.io --skill slides -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vfarcic/vfarcic.github.io slides --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vfarcic/vfarcic.github.io.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/slides .claude/skills/slides && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "slides" agent skill from https://github.com/vfarcic/vfarcic.github.io/tree/master/.claude/skills/slides into .claude/skills/slides/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slides", 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.
$skill-installer install https://github.com/vfarcic/vfarcic.github.io/tree/master/.claude/skills/slidesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vfarcic/vfarcic.github.io --skill slides -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vfarcic/vfarcic.github.io slides --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vfarcic/vfarcic.github.io.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/slides .agents/skills/slides && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "slides" agent skill from https://github.com/vfarcic/vfarcic.github.io/tree/master/.claude/skills/slides into .agents/skills/slides/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slides", 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 vfarcic/vfarcic.github.io --skill slides -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vfarcic/vfarcic.github.io slides --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vfarcic/vfarcic.github.io.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/slides .cursor/skills/slides && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "slides" agent skill from https://github.com/vfarcic/vfarcic.github.io/tree/master/.claude/skills/slides into .cursor/skills/slides/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slides", 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.
$ gemini skills install https://github.com/vfarcic/vfarcic.github.io.git --path .claude/skills/slides--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vfarcic/vfarcic.github.io --skill slides -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vfarcic/vfarcic.github.io slides --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vfarcic/vfarcic.github.io.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/slides .gemini/skills/slides && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "slides" agent skill from https://github.com/vfarcic/vfarcic.github.io/tree/master/.claude/skills/slides into .gemini/skills/slides/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slides", 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 vfarcic/vfarcic.github.io slidesInstalls 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 vfarcic/vfarcic.github.io --skill slides -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vfarcic/vfarcic.github.io.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/slides .github/skills/slides && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "slides" agent skill from https://github.com/vfarcic/vfarcic.github.io/tree/master/.claude/skills/slides into .github/skills/slides/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slides", 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 vfarcic/vfarcic.github.io --skill slides -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vfarcic/vfarcic.github.io slides --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vfarcic/vfarcic.github.io.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/slides .opencode/skills/slides && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "slides" agent skill from https://github.com/vfarcic/vfarcic.github.io/tree/master/.claude/skills/slides into .opencode/skills/slides/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slides", 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.
slidesCreate or revise Reveal.js conference talks and presentations in this repository from manuscripts, outlines, or approved abstracts.
Slides is an agent skill from vfarcic/vfarcic.github.io. Create or revise Reveal.js conference talks and presentations in this repository from manuscripts, outlines, or approved abstracts. Reuse HTML templates and manuscript-based speaker notes; preserve hands-on source material as live demos with executable presenter instructions. Default to slide-by-slide approval, but build a full draft when the user requests review in actual slides. Prefer images for conceptual slides and use the diagram skill for diagrams. Update talks.md using shared rules. Standalone abstracts…
Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts (for example `scripts/composite-monitor.py`, `scripts/generate-branded-qr.py` and `templates/cover.md`).
It sits in Documents & Office, covering Slides and decks. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7e401a6. 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 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
gitdocker-composeFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Slides loads about 5.3k tokens when it runs. Until then it costs about 144 tokens; SKILL.md has 2,962 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 noted patterns worth knowing about, such as sudo or a known installer.
ly `./dot.nu setup`, followed by `source .env` when setup actually creates that file. Do not expose internal setup stageAutomated 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 vfarcic/vfarcic.github.io at commit 7e401a6, republished under its MIT licence (© vfarcic). 2,962 words, ~5,255 tokens.
.claude/skills/slides/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Build a presentation the way this repo already does it. Slides are markdown loaded by a per-talk HTML file (Reveal.js, moon theme). The guiding principle is minimal on-slide text — often none. The slide carries an image or a diagram; the words live in the speaker Note:.
<title> and talks.md).<slug>.html, cover-<slug>.md, img/<slug>/…).ai, kubernetes, crossplane, idp, …). Talks live one level deep, so asset paths are ../….Read the repository root's CLAUDE.md for the shared talks.md rules. Check for an existing deck, abstract, and catalog entry; reuse their topic and slug and preserve user edits. For an existing deck, inspect its loader and content and continue at the requested slide rather than recreating the scaffold.
Support either order: build slides when the user asks for a presentation; use the abstracts skill when the user asks for an abstract first or redirects the current work to an abstract. Pause slide creation during that review and resume when requested. An abstract-only request belongs to abstracts and does not need a deck scaffold.
For full-draft review, create the complete deck and check it renders before asking for feedback. Do not pause at the cover or after each slide in this mode. Give the user the browser URL, navigation keys, and notes shortcut so they can review the actual slides. Keep slide units small and identifiable so feedback can target an individual slide.
Conventions drift; do not build from memory. Read 2–3 recent decks in the same topic (their .html loader + a couple of content .md files) and ../docs/the-end.md. Confirm: current separators, image-slide directive, how Note: is attached, cover style, image path convention. For a hands-on talk, also read their setup sections and check their position in the loaders; useful examples include ai/infra-ai-dummies-setup.md, ai/idp-setup.md, and kubernetes/dbaas-setup.md. Only then start.
Templates live in this skill's templates/ directory. Copy, don't regenerate.
templates/talk.html → <topic>/<slug>.html. Replace {{TITLE}} with the title and {{SLUG}} with the slug. The cover section and the-end section are pre-wired; content sections get inserted at the <!-- CONTENT-SECTIONS --> marker as you add them.templates/cover.md → <topic>/cover-<slug>.md and fill in the title lines (headings only — no body text).mkdir -p <topic>/img/<slug>.CLAUDE.md. Link the new loader; include an abstract link only if its file already exists. If an abstract-only entry exists, add the slide link to it in place.By default, create a single slide, show it to the user, and wait for explicit confirmation before creating the next one. When the user requests a complete draft to review in actual slides, build the whole draft without intermediate approval pauses. The user's chosen review sequence takes precedence over the default.
For each slide, pick the leanest type that works. See templates/section.md for copy-paste examples of every type.
<!-- .slide: data-background="img/<slug>/NN-NN.png" data-background-size="contain" data-background-color="black" -->
Note:
Everything you'd say out loud goes here.diagram skill, then shown as consecutive image slides so advancing = animation. See "Diagrams" below.##/###, no body.```sh blocks and agent prompts in ```text blocks. Keep prose presenter actions (open, pause, approve, switch, inspect) in the speaker notes, not visible blockquotes. A demo beat without a command or prompt can use a short conceptual heading; do not leave an empty slide. Split long demos into short, executable beats.Note:. Display the commands or prompts to execute on the slide, with only essential conceptual headings.devbox.json when the user requests it. Check availability first; do not add packages merely because they were considered and not used.Use the repository's compact, executable setup format, even when the presenter runs it before the talk. Setup is a way to reproduce the environment, not a separate presentation of its provisioning stages. See templates/setup.md and the existing setup decks above.
../img/background/hands-on.jpg divider, headed ## Hands-on Time and # Setup. Follow with a few ## Setup pages for repository access, prerequisites, and execution. Split only when the commands or prerequisites would not fit.git clone URL, cd command, and git pull after entering the directory rather than assuming a sibling checkout or an absolute presenter path. Explain in notes that an existing checkout skips cloning and runs the update from its own directory. During local review of unpublished changes, use the current local checkout; do not imply a fresh remote clone contains those changes../dot.nu setup, followed by source .env when setup actually creates that file. Do not expose internal setup stages as a list of user-facing commands. Use devbox shell and chmod +x dot.nu where appropriate.dot.nu is user-facing and sources topic helpers from scripts/. Treat ../nu-scripts (https://github.com/vfarcic/nu-scripts) as the master repo: clone it if absent, otherwise check its working tree and pull updates without overwriting local work. Inspect its helpers before writing replacements. Update reusable logic there and copy the updated scripts into the demo's scripts/; keep project-specific orchestration and manifests in the demo repo. Check current versions and APIs, and add required NuShell tooling to Devbox with a compatible, specific version. The consumer must work without the master checkout at runtime.## Destroy section after the shared closing section, using one user-facing NuShell command such as ./dot.nu destroy. Keep dependency-safe teardown and waiting inside the script so the local control plane stays running until cloud resources are removed. Explain any preparation-only actions in notes.data-charset="iso-8859-15", so em-dashes (—), curly quotes (" '), ellipses (…), and other non-ASCII characters render as mojibake (e.g. â). Use plain hyphens, straight quotes, and .... This applies to slide text AND speaker notes..md files by section (<slug>-<section>.md). When you start a new section file, add its <section data-markdown="<slug>-<section>.md" …> block at the <!-- CONTENT-SECTIONS --> marker in the HTML (copy the attribute set from the cover section). Register the section file the first time you write to it..md: two blank lines (\n\n\n) between horizontal slides; one blank line for vertical; Note: begins the notes for the current slide.diagram skill)When a slide needs a diagram, invoke the diagram skill with:
stills (pass explicitly so it doesn't ask).(1),(2),… — this is internal notation only; Mermaid never appears on a slide.<topic>/img/<slug>/ — name the stills NN-01.png, NN-02.png, … for section NN.Then add one image-only slide per still, in order, each with a Note: describing what that beat adds. Follow the selected review mode. Describe nodes by their visible labels; the Mermaid numbers indicate reveal order and are not rendered on the stills.
For non-diagram images:
image skill, preferring ElevenLabs to use the user's subscription credits. Honor an explicit provider choice and do not silently switch billing providers. First discuss and agree on the depiction and style before generating. Then write a detailed prompt (16:9, projection-quality, consistent with the deck) and generate into <topic>/img/<slug>/. Place it as a full-bleed background slide and review according to the selected mode. In full-draft mode, use lean headings or demo cues where needed rather than blocking the entire draft on an unagreed illustration.image skill as references so their likeness is preserved.scripts/composite-monitor.py perspective-maps the screenshot to four screen corners and can preserve foreground occlusion, using ImageMagick through Devbox. Keep screenshots as live-demo replacements out of hands-on sections; this technique is for explicitly requested conceptual illustrations. Preserve the source screenshot's aspect ratio and record its origin.Once the slides are confirmed done, check that the deck delivers the approved abstract's promise, if there is one. Flag any mismatch for review rather than silently changing the proposal. Synchronize approved title changes across the cover, HTML title, abstract heading, and catalog entry while preserving their layout.
If the user requested both a deck and an abstract and no abstract exists yet, use the abstracts skill now and pause for its review. For a deck-only request, offer an abstract as a next step rather than automatically writing one.
When requested, add a project QR alongside the existing channel QR, with a small destination label and clickable link. Use the project's official logo rather than generating one. scripts/generate-branded-qr.py embeds an SVG logo in a QR using qrencode, high error correction, a four-module quiet zone, and a small white-backed center mark. Run it through Devbox if qrencode is not on PATH. Preserve the QR's module-coordinate viewBox rather than deriving geometry from physical cm dimensions. Decode both the branded QR and any existing QR before labeling them, and verify the branded code at its displayed size as well as a larger size. Check that the footer does not cover slide content or navigation.
Check that referenced content files and assets exist, slide text and notes use ASCII punctuation, and the matching catalog entry follows CLAUDE.md. Run git diff --check for file edits.
For full-draft review, serve and open the actual deck. Check navigation, notes, code-block fit, slide overflow, and console/network errors. For hands-on talks, check every cue has the context and preparation needed to execute it; browser checks do not mean the real agent/cloud demo was run.
For setup sections, verify the divider image, public repository link, working-directory assumptions, setup command, and environment exports against the actual demo repository. Check direct setup and cover URLs in the browser. Give a multi-slide setup container a different id from its first slide to avoid duplicate ids and incorrect hash navigation.
Respect the user's execution boundary. When they will validate cloud provisioning themselves, finish the scripts and slides using schema checks, local tooling, and mocked external commands; do not run the cloud setup as a side effect of verification. State clearly which behaviors still need a real cloud rehearsal, and leave timing-dependent narration provisional until those execution times are known.
Optionally serve locally (docker-compose up, http://localhost:8080) and open <topic>/<slug>.html to confirm slides render, images load, and notes (press s) show. Diagram stills should advance like an animation.
© vfarcic, 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 6 other files (scripts) in .claude/skills/slides of vfarcic/vfarcic.github.io.
Open the folder on GitHubat commit 7e401a6
Slides 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 |
|---|---|---|---|---|---|---|
| Slides this skillvfarcic/vfarcic.github.io | 154 | — | ~5.3k | Automated safety check: Notes | MIT | |
| Image To Editable Pptningzimu/image-to-editable-ppt-skill | 2.8k | — | ~4.3k | Automated safety check: Pass | MIT | |
| Codex Slidesnexu-io/codex-slides | 924 | 1 repos | ~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 |
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.
nexu-io/codex-slides
Create, research, revise, restyle, present, inspect, and export Codex Slides slide decks from Codex, including scenario workflows, project Design Files, and always-on brand design systems.
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.
vfarcic/vfarcic.github.io
Write or revise conference talk titles, abstracts, short abstracts, and submission takeaways in this repository.
Categories
Create or revise Reveal.js conference talks and presentations in this repository from manuscripts, outlines, or approved abstracts. io.js conference talks and presentations in this repository from manuscripts, outlines, or approved abstracts.
Slides fits situations like: requests review in actual slides; tasks that involve Slides and decks.
Run `npx skills add vfarcic/vfarcic.github.io --skill slides -a claude-code`. Or copy the skill folder (.claude/skills/slides in vfarcic/vfarcic.github.io) into .claude/skills/slides in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vfarcic/vfarcic.github.io --skill slides -a codex`. Or copy the skill folder (.claude/skills/slides in vfarcic/vfarcic.github.io) into .agents/skills/slides 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 vfarcic/vfarcic.github.io --skill slides -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/slides, .gemini/skills/slides, .github/skills/slides and .opencode/skills/slides in your project.
Going by SKILL.md and its folder, Slides needs Python for the scripts in its folder and the command-line tools its instructions call (git and docker-compose). Our summary lists: Python 3; Docker.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. 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.
Slides is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.3k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Slides: Image To Editable Ppt (ningzimu/image-to-editable-ppt-skill, 2.8k stars), Codex Slides (nexu-io/codex-slides, 924 stars), Slides (fcakyon/claude-codex-settings, 1.2k stars) and Ppt Image First (NyxTides/ppt-image-first, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vfarcic (a GitHub user) maintains it in vfarcic/vfarcic.github.io, which has 154 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 5, 2026.
Source: vfarcic/vfarcic.github.io on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.