Video Production
speechlab0210/video-production-skill
AI educational video production pipeline. An agent skill from speechlab0210/video-production-skill.
Generates a self-contained HTML presentation with article and slides modes, ElevenLabs voiceover narration and optional GPT Image 2 illustrations.
$ npx skills add glebis/claude-skills --skill present -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install glebis/claude-skills present --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/glebis/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/present .claude/skills/present && 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 "present" agent skill from https://github.com/glebis/claude-skills/tree/main/present into .claude/skills/present/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "present", 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/glebis/claude-skills/tree/main/presentType 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 glebis/claude-skills --skill present -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install glebis/claude-skills present --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/glebis/claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/present .agents/skills/present && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "present" agent skill from https://github.com/glebis/claude-skills/tree/main/present into .agents/skills/present/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "present", 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 glebis/claude-skills --skill present -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install glebis/claude-skills present --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/glebis/claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/present .cursor/skills/present && 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 "present" agent skill from https://github.com/glebis/claude-skills/tree/main/present into .cursor/skills/present/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "present", 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/glebis/claude-skills.git --path present--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 glebis/claude-skills --skill present -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install glebis/claude-skills present --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/glebis/claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/present .gemini/skills/present && 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 "present" agent skill from https://github.com/glebis/claude-skills/tree/main/present into .gemini/skills/present/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "present", 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 glebis/claude-skills presentInstalls 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 glebis/claude-skills --skill present -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/glebis/claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/present .github/skills/present && 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 "present" agent skill from https://github.com/glebis/claude-skills/tree/main/present into .github/skills/present/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "present", 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 glebis/claude-skills --skill present -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install glebis/claude-skills present --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/glebis/claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/present .opencode/skills/present && 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 "present" agent skill from https://github.com/glebis/claude-skills/tree/main/present into .opencode/skills/present/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "present", 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.
presentGenerates a self-contained HTML presentation with article and slides modes, ElevenLabs voiceover narration and optional GPT Image 2 illustrations.
Output is a single `index.html` plus audio and optional image assets, which opens locally, deploys to a static host such as Vercel or Netlify, or is shared as a folder. Viewers toggle between article mode, a scrollable report with Tufte-inspired typography, and slides mode, which has keyboard or click navigation and narrated audio playback. Scroll-reveal animations are included, and `assets/template.html` and `references/slide-types.md` support the build.
Parameters set the slide count (5 to 20, default 12), the detail level (executive, standard or detailed), the narrator voice (default daniel), an image style or none, the output folder, a deploy target, the title, and `--no-audio` to skip narration. Executive runs 5 to 7 slides, standard 10 to 14 and detailed 15 to 20. Narration uses the ElevenLabs API with the key read as `ELEVENLABS_API_KEY` from a `.env` file in the elevenlabs-tts skill folder, and a `scripts/generate_audio.py` helper is bundled.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7524dff. 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/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3vercelFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use vercel, 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:
ELEVENLABS_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Narrated HTML Presentations loads about 2.3k tokens when it runs, and up to ~3.8k if it reads all its reference files. Until then it costs about 188 tokens; SKILL.md has 923 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.
lable in `~/claude-skills/elevenlabs-tts/.env` as `ELEVENLABS_API_KEY`.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 glebis/claude-skills at commit 7524dff, republished under its MIT licence (© glebis). 923 words, ~2,279 tokens.
.claude/skills/present/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Generate a self-contained HTML presentation with dual article/slides mode, ElevenLabs narration, optional GPT Image 2 illustrations, and scroll-reveal animations.
A single index.html file (plus audio and optional image assets) that can be:
The output has two modes the viewer can toggle between:
/present "AI adoption research for Arseny" --slides 12 --voice daniel --images risographOr with a file:
/present path/to/research.md --detail detailed --voice alice| Parameter | Values | Default | Description |
|---|---|---|---|
--slides | 5-20 | 12 | Number of slides |
--detail | executive, standard, detailed | standard | Content depth |
--voice | ElevenLabs voice name | daniel | Narrator voice |
--images | style name or none | none | Image generation style |
--image-prompt | custom string | auto | Override image prompt prefix |
--output | path | ./presentation/ | Output directory |
--deploy | vercel project or none | none | Auto-deploy target |
--title | string | auto | Presentation title |
--no-audio | flag | false | Skip audio generation |
executive (5-7 slides): Key findings only. One stat slide, one recommendation slide, sources. Best for busy stakeholders who need the bottom line.standard (10-14 slides): Full narrative arc. Problem, evidence, analysis, recommendations, sources. The default for most presentations.detailed (15-20 slides): Deep dive. Includes methodology, multiple evidence sections, case studies, detailed recommendations with implementation steps.Uses ElevenLabs API. The key must be available in ~/claude-skills/elevenlabs-tts/.env as ELEVENLABS_API_KEY.
Recommended voices for presentations:
When --images is set, the skill generates illustrations for key slides using GPT Image 2 (~/.claude/skills/gpt-image-2/scripts/gpt_image_2.py). Available styles:
risograph — Gerd Arntz isotype style, muted colors, sand textureeditorial — Magazine photography style, dramatic lightingblueprint — Technical drawing aesthetic, white on blueink — Black ink illustration, hand-drawn feelconstellation — Data visualization aesthetic, dots and lines--image-prompt "your style description" to overrideImages are generated in --draft mode first (~$0.006/image). The skill decides which slides benefit from illustration (typically 3-5 out of 12).
Read the input content (a topic description, a markdown file, vault notes, meeting transcript, or research). Identify:
Based on --detail and --slides, create a slide plan. Each slide needs:
Slide N: [Type] — [Title]
Content: [what appears on screen]
Narration: [what the voice says — always more than what's on screen]
Read time: [seconds for an average reader to absorb the visual content]
Image: [yes/no, with prompt if yes]Slide types: title, summary, stat, evidence, comparison, quote, framework, recommendation, case-study, sources
The narration script should be conversational and add context beyond what's displayed. It should NOT just read the slide text aloud — it should explain, connect, and elaborate. Target 15-30 seconds of narration per slide.
For each slide, generate narration using ElevenLabs:
python3 ~/.claude/skills/elevenlabs-tts/scripts/elevenlabs_tts.py \
--voice <voice_name> \
--text "<narration>" \
--output <output_dir>/audio/slide-<N>.mp3Or use the direct API via the script at scripts/generate_audio.py in this skill.
Also generate a transition sound (Rhodes chord) for slide-to-slide transitions.
After generation, get durations with ffprobe to calculate slide timing.
For slides that benefit from illustration, generate images using GPT Image 2:
python3 ~/.claude/skills/gpt-image-2/scripts/gpt_image_2.py --draft --size 1536x1024 \
"<style prefix> <slide-specific prompt>" \
<output_dir>/images/<name>.pngTypically generate 3-5 images for a 12-slide deck. Choose slides where a visual metaphor strengthens the point — stat slides, concept slides, and the title slide are good candidates. Don't illustrate every slide.
Use the template at assets/template.html as the base. The template includes:
:root<audio> element, slide-synced playback with progress bar, transition sounds between slidesprefers-reduced-motion: All animations disabled when user prefers reduced motionPopulate the template by replacing placeholder sections with the actual slide and article content.
Open in browser using /real-browser or open <path>. Verify:
If --deploy is set, copy output to the target project's public/ folder and deploy:
cp -r <output_dir>/* <project_path>/public/<slug>/
cd <project_path> && vercel deploy --prod --yesEach slide has three timing properties:
data-audio="slide-name" — maps to audio filedata-read-time="N" — seconds for reading the visual contentThe audio engine calculates: slide_duration = max(audio_duration, read_time) + 2s. After narration ends, it waits for any remaining read time plus a 2-second buffer, plays a transition sound (1.8s), then advances to the next slide.
The following patterns read as AI-generated and should be avoided:
Instead use:
<dl>) for structured pointsUse absolute paths from the deployment root: /slug/images/name.png, not relative paths. Relative paths break when URLs load without trailing slashes.
SKILL.md — This filescripts/generate_audio.py — ElevenLabs TTS batch generatorassets/template.html — Base HTML template with all CSS/JSreferences/slide-types.md — Detailed slide type specifications and examples© glebis, 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 4 other files (scripts, references, assets) in present of glebis/claude-skills.
Open the folder on GitHubat commit 7524dff
Narrated HTML Presentations 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 |
|---|---|---|---|---|---|---|
| Narrated HTML Presentations this skillglebis/claude-skills | 388 | — | ~2.3k | Automated safety check: Notes | MIT | |
| Video Productionspeechlab0210/video-production-skill | 105 | — | ~4.1k | Automated safety check: Notes | MIT | |
| Academic Presentation MakerOpenLAIR/dr-claw | 1.2k | — | ~1.5k | Automated safety check: Pass | Custom licence | |
| Book Media Generatordmccreary/ibook-skills | 105 | — | ~1.7k | Automated safety check: Pass | CC-BY-NC-4.0 | |
| Web Video PresentationConardLi/garden-skills | 13k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Local AI Useamd/skills | 395 | — | ~5k | Automated safety check: Notes | MIT |
speechlab0210/video-production-skill
AI educational video production pipeline. An agent skill from speechlab0210/video-production-skill.
OpenLAIR/dr-claw
Turns a research paper into a slide deck and, optionally, a narrated demo video, through script, slide generation, text-to-speech and video assembly stages you control.
dmccreary/ibook-skills
Generates media for intelligent textbooks - slide decks and presentations (MARP web decks in docs/slides/ or PowerPoint .pptx lecture downloads), illustrated stories and graphic novels…
ConardLi/garden-skills
Turns an article or spoken script into a click-through, full-screen 16:9 web presentation that looks like a video, with optional synthesized narration.
amd/skills
Makes this agent generate images, transcribe audio, and synthesize speech on the user's own machine through a local Lemonade Server instead of a paid cloud API.
pexoai/pexo-skills
Tired of juggling multiple audio APIs?. An agent skill from pexoai/pexo-skills.
glebis/claude-skills
Runs a human-first workflow for labeling PII spans in a transcript, then scores inter-annotator agreement and drafts an adjudicated gold set.
glebis/claude-skills
Automates a dedicated, logged-in Chrome instance per profile without ever closing the user's own open tabs or browser windows.
glebis/claude-skills
This skill should be used when conducting comprehensive research on any topic using the OpenAI Deep Research API.
glebis/claude-skills
This skill should be used for elimination-style research where the user wants to choose from a shortlist of products, tools, services, vendors, or other options using explicit criteria, numeric…
glebis/claude-skills
Writes fictional but realistic coaching or therapy session transcripts for evals, demos and few-shot examples, in several modalities and export formats.
glebis/claude-skills
Walks through Goldratt's Five Focusing Steps to find the real bottleneck in your work, then recommends one automation aimed at it and a list of what not to automate.
Works with
Categories
Generates a self-contained HTML presentation with article and slides modes, ElevenLabs voiceover narration and optional GPT Image 2 illustrations. html` plus audio and optional image assets, which opens locally, deploys to a static host such as Vercel or Netlify, or is shared as a folder. Viewers toggle between article mode, a scrollable report with Tufte-inspired typography, and slides mode, which has keyboard or click navigation and narrated audio playback.
Narrated HTML Presentations fits situations like: turning research notes into a presentation that doubles as a readable article; producing a narrated briefing for stakeholders who will not attend live; making a shareable deck that can be hosted as a static page.
Run `npx skills add glebis/claude-skills --skill present -a claude-code`. Or copy the skill folder (present in glebis/claude-skills) into .claude/skills/present in your project. Claude Code loads it when a task matches its description.
Run `npx skills add glebis/claude-skills --skill present -a codex`. Or copy the skill folder (present in glebis/claude-skills) into .agents/skills/present 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 glebis/claude-skills --skill present -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/present, .gemini/skills/present, .github/skills/present and .opencode/skills/present in your project.
Going by SKILL.md and its folder, Narrated HTML Presentations needs Python for the scripts in its folder, the command-line tools its instructions call (python3 and vercel) and credentials named ELEVENLABS_API_KEY. Our summary lists: An ElevenLabs API key available as `ELEVENLABS_API_KEY`; Access to GPT Image 2 for the optional illustrations.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Narrated HTML Presentations is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.1k 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 1.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Narrated HTML Presentations: Video Production (speechlab0210/video-production-skill, 105 stars), Academic Presentation Maker (OpenLAIR/dr-claw, 1.2k stars), Book Media Generator (dmccreary/ibook-skills, 105 stars) and Web Video Presentation (ConardLi/garden-skills, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
glebis (a GitHub user) maintains it in glebis/claude-skills, which has 388 GitHub stars. The repository holds 91 skills in this directory. The repository was last updated on September 26, 2026.
Source: glebis/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.