Academic Presentation Maker
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.
Create academic presentation slide decks and optionally demo videos from research papers.
$ npx skills add LigphiDonk/Oh-my--paper --skill making-academic-presentations -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LigphiDonk/Oh-my--paper making-academic-presentations --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/LigphiDonk/Oh-my--paper.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/making-academic-presentations .claude/skills/making-academic-presentations && 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 "making-academic-presentations" agent skill from https://github.com/LigphiDonk/Oh-my--paper/tree/main/skills/making-academic-presentations into .claude/skills/making-academic-presentations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "making-academic-presentations", 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/LigphiDonk/Oh-my--paper/tree/main/skills/making-academic-presentationsType 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 LigphiDonk/Oh-my--paper --skill making-academic-presentations -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LigphiDonk/Oh-my--paper making-academic-presentations --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LigphiDonk/Oh-my--paper.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/making-academic-presentations .agents/skills/making-academic-presentations && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "making-academic-presentations" agent skill from https://github.com/LigphiDonk/Oh-my--paper/tree/main/skills/making-academic-presentations into .agents/skills/making-academic-presentations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "making-academic-presentations", 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 LigphiDonk/Oh-my--paper --skill making-academic-presentations -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LigphiDonk/Oh-my--paper making-academic-presentations --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LigphiDonk/Oh-my--paper.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/making-academic-presentations .cursor/skills/making-academic-presentations && 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 "making-academic-presentations" agent skill from https://github.com/LigphiDonk/Oh-my--paper/tree/main/skills/making-academic-presentations into .cursor/skills/making-academic-presentations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "making-academic-presentations", 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/LigphiDonk/Oh-my--paper.git --path skills/making-academic-presentations--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 LigphiDonk/Oh-my--paper --skill making-academic-presentations -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LigphiDonk/Oh-my--paper making-academic-presentations --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LigphiDonk/Oh-my--paper.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/making-academic-presentations .gemini/skills/making-academic-presentations && 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 "making-academic-presentations" agent skill from https://github.com/LigphiDonk/Oh-my--paper/tree/main/skills/making-academic-presentations into .gemini/skills/making-academic-presentations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "making-academic-presentations", 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 LigphiDonk/Oh-my--paper making-academic-presentationsInstalls 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 LigphiDonk/Oh-my--paper --skill making-academic-presentations -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LigphiDonk/Oh-my--paper.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/making-academic-presentations .github/skills/making-academic-presentations && 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 "making-academic-presentations" agent skill from https://github.com/LigphiDonk/Oh-my--paper/tree/main/skills/making-academic-presentations into .github/skills/making-academic-presentations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "making-academic-presentations", 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 LigphiDonk/Oh-my--paper --skill making-academic-presentations -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LigphiDonk/Oh-my--paper making-academic-presentations --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LigphiDonk/Oh-my--paper.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/making-academic-presentations .opencode/skills/making-academic-presentations && 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 "making-academic-presentations" agent skill from https://github.com/LigphiDonk/Oh-my--paper/tree/main/skills/making-academic-presentations into .opencode/skills/making-academic-presentations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "making-academic-presentations", 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.
making-academic-presentationsCreate academic presentation slide decks and optionally demo videos from research papers.
Making Academic Presentations is an agent skill from LigphiDonk/Oh-my--paper. Create academic presentation slide decks and optionally demo videos from research papers.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `references/pptx-conversion.md`, `references/slide-generation.md` and `references/tts-engines.md`).
It sits in Documents & Office, covering Slides and decks and Video production. The repository describes itself as: A Claude Code plugin that turns your terminal into an autonomous research lab — literature survey, experiment execution, paper writing, all in one pipeline. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6baece9. 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:
ffmpegbrewpipclaudesofficepdftoppmgeminiFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom 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.
Making Academic Presentations loads about 2k tokens when it runs, and up to ~4.9k if it reads all its reference files. Until then it costs about 30 tokens; SKILL.md has 686 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 LigphiDonk/Oh-my--paper at commit 6baece9, republished under its MIT licence (© LigphiDonk). 686 words, ~2,040 tokens.
.claude/skills/making-academic-presentations/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Create academic presentation slide decks and optionally demo videos from research papers. Use when the user asks to "make slides", "create a deck", "make a presentation", "demo video", "paper slides", "conference talk slides", or wants to...
Use this skill when the user request matches its research workflow scope. Prefer the bundled resources instead of recreating templates or reference material. Keep outputs traceable to project files, citations, scripts, or upstream evidence.
references/ only when the current task needs the extra detail.scripts/ as optional helpers. Run them only when their dependencies are available, keep outputs in the project workspace, and explain a manual fallback if execution is blocked.Produce slide decks (and optionally narrated demo videos) from research papers. The human drives all outline and visual decisions — the agent executes.
[1] Script Draft ──→ [2] Slide Generation ──→ [3] TTS Audio (optional) ──→ [4] Video Assembly (optional)
Claude Code nanobanana /edit edge-tts / Kokoro / ElevenLabs ffmpegSkip stages 3–4 for slide-only output. User can enter at any stage.
Input: paper + user-provided outline or slide plan
Output: video-scripts.md or slide-outline.md — per-slide content with talking points
The agent drafts scripts based on the user's outline. The user owns the structure — agent does not decide slide count, order, or what to emphasize.
Full reference: references/slide-generation.md
Tool: nanobanana (Gemini CLI extension)
Priority order (edit-first):
/edit to wrap into slide frame/edit to adapt/edit to refineKey principle: prefer /edit on existing HQ paper figures over generating from scratch.
Deck style: create deck-style.md once per deck, prepend to all generate-from-scratch prompts. For /edit, style is inherited from the base image.
Example deck-style.md:
- Canvas: 1920x1080, white background
- Accent: #2563EB blue, text: #1e293b dark slate
- Clean sans-serif, flat design, no gradients/shadows
- Bottom bar: blue accent with white affiliation textFull reference: references/tts-engines.md Batch scripts: scripts/batch_tts_edge.py, scripts/batch_tts_kokoro.py
Output: one audio file per narrated slide
| Engine | Quality | Cost | Latency | Best For |
|---|---|---|---|---|
| edge-tts (default) | Very good | Free, unlimited | ~6s/slide (cloud) | Quick generation, good male voices |
| Kokoro | Very good | Free, unlimited | ~1.5s/slide (local) | Offline use, fast batch, good female voices |
| ElevenLabs | Premium | 10k chars free/mo | ~3s/slide (cloud) | Highest quality, voice cloning |
Default: Use edge-tts unless user requests offline or premium quality.
import edge_tts, asyncio
async def tts_slide(text, output, voice="en-US-AndrewNeural"):
await edge_tts.Communicate(text, voice).save(output)
asyncio.run(tts_slide("Your slide text here", "slide_01.mp3"))Voices: AndrewNeural (male, presenter), AriaNeural (female), GuyNeural (male, warm), JennyNeural (female, pro)
Tool: ffmpeg Input: slide PNGs + audio files + optional demo recording
# Use symlink to avoid iCloud path spaces: ln -sfn "long path" /tmp/workdir
# Slide with audio:
ffmpeg -y -loop 1 -i slide.png -i audio.mp3 \
-c:v libx264 -tune stillimage -pix_fmt yuv420p \
-c:a aac -ar 44100 -ac 2 -shortest seg.mp4
# Silent slide (N seconds):
ffmpeg -y -loop 1 -i slide.png -f lavfi -i anullsrc=r=44100:cl=stereo \
-c:v libx264 -tune stillimage -pix_fmt yuv420p \
-c:a aac -ar 44100 -ac 2 -t N seg.mp4
# Concat (always re-encode, never -c copy):
printf "file 'seg1.mp4'\nfile 'seg2.mp4'\n..." > concat.txt
ffmpeg -y -f concat -safe 0 -i concat.txt \
-c:v libx264 -pix_fmt yuv420p -c:a aac -ar 44100 -ac 2 final.mp4All segments MUST share: 44100Hz sample rate, stereo, AAC codec.
Full reference: references/pptx-conversion.md
If starting from an existing PPTX, convert slides to PNG images first:
soffice --headless --convert-to pdf --outdir output/ presentation.pptx
pdftoppm -png -r 300 output/presentation.pdf output/slideThe agent must NOT auto-invoke NotebookLM or use its outputs to drive slide/script decisions. The human owns the outline, visual arrangement, and deck direction.
When to recommend: only when the user says they're unsure what to put on slides or need inspiration.
/tmp/-ar 44100 -ac 2mp3_22050_32 only, 10k chars/month/edit distorts figure — be more explicit: "Keep the original figure exactly as-is, only add framing"/edit from base slide or prepend shared deck-style.md| Tool | Stage | Install |
|---|---|---|
| Gemini CLI + nanobanana | 2 | gemini extensions install https://github.com/gemini-cli-extensions/nanobanana |
| LibreOffice + poppler | 2 (PPTX) | brew install --cask libreoffice && brew install poppler |
| edge-tts | 3 | pip install edge-tts |
| Kokoro | 3 (offline) | pip install kokoro soundfile |
| ElevenLabs | 3 (premium) | pip install elevenlabs + ELEVENLABS_API_KEY |
| ffmpeg | 4 | brew install ffmpeg |
© LigphiDonk, 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 5 other files (scripts, references) in skills/making-academic-presentations of LigphiDonk/Oh-my--paper.
Open the folder on GitHubat commit 6baece9
Making Academic 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 |
|---|---|---|---|---|---|---|
| Making Academic Presentations this skillLigphiDonk/Oh-my--paper | 738 | — | ~2k | Automated safety check: Pass | MIT | |
| Academic Presentation MakerOpenLAIR/dr-claw | 1.2k | — | ~1.5k | Automated safety check: Pass | Custom licence | |
| Kortix Presentationkortix-ai/suna | 20k | — | ~3k | Automated safety check: Pass | Custom licence | |
| Roadshow Video Generatoranbeime/skill | 7.7k | — | ~1.4k | Automated safety check: Notes | None | |
| Tiktok SlideshowLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.4k | Automated safety check: Pass | MIT | |
| Academic PresentationsGabberflast/academic-pptx-skill | 1.1k | 1 repos | ~1.9k | Automated safety check: Pass | Proprietary |
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.
kortix-ai/suna
Recipe: build, edit, present or record a Kortix deck or film (a Next.js route under /presentations in apps/web, never a file).
anbeime/skill
Turns a document into a narrated roadshow video through ten staged roles, from document analysis and slide planning to audio, subtitles and final composition.
LeoYeAI/openclaw-master-skills
Creates TikTok image carousels (slideshows with text overlays on photos) via the ViralBaby API.
Gabberflast/academic-pptx-skill
Plans and structures academic decks for conference talks, seminars, thesis defenses and grant briefings, with argument-first slides, and leaves file creation to the PPTX skill.
luwill/research-skills
A skill your agent uses when the user wants a research paper, arXiv/DOI link, or research topic turned into academic slides — journal club / lab meeting (组会汇报), thesis defense (答辩幻灯片), or conference…
LigphiDonk/Oh-my--paper
Searches bioRxiv life sciences preprints by keyword, author, date range or category with a Python script, returning JSON metadata and optional PDF downloads.
LigphiDonk/Oh-my--paper
Searches and downloads legally accessible academic PDFs, OCRs them to Markdown, and organizes the results into a traceable, AI-readable literature library.
LigphiDonk/Oh-my--paper
Finds and clones missing code repositories for a chosen research idea, then writes a survey that maps academic concepts to their implementations.
LigphiDonk/Oh-my--paper
Turns experimental data such as CSV, JSON or TensorBoard logs into statistical significance tests, visualizations and a drafted Results section.
LigphiDonk/Oh-my--paper
Lays out principles for catching fake, mismatched, or inconsistently formatted citations in academic writing, checked through live web search.
LigphiDonk/Oh-my--paper
Runs a seven-step quality-control and exploration pipeline on scRNA-seq, CyTOF or flow cytometry data and writes a plain-language report of what it found.
Categories
Create academic presentation slide decks and optionally demo videos from research papers. Making Academic Presentations is an agent skill from LigphiDonk/Oh-my--paper. Create academic presentation slide decks and optionally demo videos from research papers.
Making Academic Presentations fits situations like: tasks that involve Slides and decks; tasks that involve Video production.
Run `npx skills add LigphiDonk/Oh-my--paper --skill making-academic-presentations -a claude-code`. Or copy the skill folder (skills/making-academic-presentations in LigphiDonk/Oh-my--paper) into .claude/skills/making-academic-presentations in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LigphiDonk/Oh-my--paper --skill making-academic-presentations -a codex`. Or copy the skill folder (skills/making-academic-presentations in LigphiDonk/Oh-my--paper) into .agents/skills/making-academic-presentations 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 LigphiDonk/Oh-my--paper --skill making-academic-presentations -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/making-academic-presentations, .gemini/skills/making-academic-presentations, .github/skills/making-academic-presentations and .opencode/skills/making-academic-presentations in your project.
Going by SKILL.md and its folder, Making Academic Presentations needs Python for the scripts in its folder, the command-line tools its instructions call (ffmpeg, brew, pip, claude, soffice and pdftoppm) and credentials named ELEVENLABS_API_KEY. Our summary lists: Python 3; A credential in ELEVENLABS_API_KEY.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. 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.
Making Academic 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 2k tokens (SKILL.md is roughly 8.2k 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 2.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Making Academic Presentations: Academic Presentation Maker (OpenLAIR/dr-claw, 1.2k stars), Kortix Presentation (kortix-ai/suna, 20k stars), Roadshow Video Generator (anbeime/skill, 7.7k stars) and Tiktok Slideshow (LeoYeAI/openclaw-master-skills, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LigphiDonk (a GitHub user) maintains it in LigphiDonk/Oh-my--paper, which has 738 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on April 15, 2026.
Source: LigphiDonk/Oh-my--paper on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.