Book Media Generator
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…
Fills an uploaded PowerPoint into an existing classroom stage with its layout intact, then checks each page, writes narration and actions, and generates speech.
$ npx skills add THU-MAIC/OpenMAIC --skill pptx-import -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install THU-MAIC/OpenMAIC pptx-import --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/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/agent-runtime/pptx-import .claude/skills/pptx-import && 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 "pptx-import" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/pptx-import into .claude/skills/pptx-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx-import", 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/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/pptx-importType 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 THU-MAIC/OpenMAIC --skill pptx-import -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install THU-MAIC/OpenMAIC pptx-import --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/agent-runtime/pptx-import .agents/skills/pptx-import && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pptx-import" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/pptx-import into .agents/skills/pptx-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx-import", 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 THU-MAIC/OpenMAIC --skill pptx-import -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install THU-MAIC/OpenMAIC pptx-import --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/agent-runtime/pptx-import .cursor/skills/pptx-import && 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 "pptx-import" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/pptx-import into .cursor/skills/pptx-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx-import", 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/THU-MAIC/OpenMAIC.git --path skills/agent-runtime/pptx-import--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 THU-MAIC/OpenMAIC --skill pptx-import -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install THU-MAIC/OpenMAIC pptx-import --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/agent-runtime/pptx-import .gemini/skills/pptx-import && 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 "pptx-import" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/pptx-import into .gemini/skills/pptx-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx-import", 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 THU-MAIC/OpenMAIC pptx-importInstalls 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 THU-MAIC/OpenMAIC --skill pptx-import -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/agent-runtime/pptx-import .github/skills/pptx-import && 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 "pptx-import" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/pptx-import into .github/skills/pptx-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx-import", 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 THU-MAIC/OpenMAIC --skill pptx-import -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install THU-MAIC/OpenMAIC pptx-import --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/agent-runtime/pptx-import .opencode/skills/pptx-import && 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 "pptx-import" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/pptx-import into .opencode/skills/pptx-import/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pptx-import", 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.
pptx-importFills an uploaded PowerPoint into an existing classroom stage with its layout intact, then checks each page, writes narration and actions, and generates speech.
The skill takes the slides of an uploaded `.pptx` and adds them to a stage created earlier with `create_stage`, either appended or inserted at a chosen position. The stage keeps its own title and any pages it already has, and the original layout is preserved. The agent finds the file with `list_materials`, asks which one to use if several are attached, and calls `import_pptx`. Repeating the same import reuses the earlier result. With no `.pptx` present, it says so and stops.
The order is fixed: create the stage and import, write the roster, inspect every page and repair visual problems with the `pro-editing` skill, then form a reading of the course before writing page-by-page actions, and only then call `generate_tts`. Quiz or interactive pages are added only when you ask, through a stub and `generate_scene` for that page alone. The agent must not replan the deck or rebuild an imported slide with `generate_scene`.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6a84dbe. 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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
PPTX Import into a Classroom Stage loads about 2.5k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 1,370 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); files beside SKILL.md are not scanned.
The full file from THU-MAIC/OpenMAIC at commit 6a84dbe, republished under its MIT licence (© THU-MAIC). 1,370 words, ~2,469 tokens.
.claude/skills/pptx-import/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Fill an uploaded PowerPoint's slides INTO the stage the user created with
create_stage: the slides become appended pages (or pages inserted at
atOrder), keeping the original layout. The stage keeps its own title and its
existing pages — the PPT is content, not the classroom's identity. Import,
inspect and repair the pages, understand the course, then write
classroom actions. Do not skip from import to TTS.
The learner-facing name is 「PPT 导入成课」. Never say "clone", "style transfer", or "rewrite from the PPT".
Do not replan the imported deck. Do not call generate_scene on an
imported slide — that rebuilds the page and throws the original layout away.
create_stage for the classroom, then import the deck into it.pro-editing to fix visual bad cases. Do not patch /actions yet.generate_tts.create_stage with the classroom's own title and brief. The stage — not the
PPT — is the classroom: import never changes its title.list_materials. Find the source .pptx (mat_ id, mime or filename).import_pptx with that source mat_ id and the stageId from
create_stage. Pages append after the existing ones, numbered
consecutively. Pass atOrder to insert them at a position instead: pages at
that order and beyond shift back. Existing pages are a normal premise — the
PPT is one content source among others, never a reason to refuse.edit_deck delete), then
retry.edit_deck insert, then generate_scene that new page only with its
explicit type and brief — do not
re-import the deck to get more pages.If there is no .pptx, say so and stop. Do not extract a PDF/DOCX and pretend
it was a slide import.
Speaker notes may already have become speech actions. Treat them as drafts. Do not TTS them yet; they are rewritten in Step 4 after you understand the course.
If the import result says no roster exists, settle the cast in conversation and
call set_roster. Voices are needed later for
TTS, not for the inspection pass.
list_scenes is the map. Then inspect before you edit.
read_stage every imported page at path:/scenes/<order|id>. Record, in your own notes:
src);A deck of more than 20 pages: still list_scenes fully; read_stage the
cover, every section-looking page, and every page whose title/excerpt looks
thin, garbled, or like a dump. Do not skip a page that looks empty.
If render_scene_preview is registered, use it. A read_stage detail:"tree" inventory
cannot see overlap, clipping, or a table running off the canvas.
read_stage. Look at the
PNG, then decide whether that page needs a fix.read_stage only. Do not invent a screenshot.Do not call render_scene_preview on pages you have not read, and do not
preview quiz/interactive stubs you have not inserted yet.
Load pro-editing first. read its SKILL.md (the path is in
<available_skills>), then follow that skill's surgical loop for every
visual repair: read_stage, the smallest patch_stage / edit_deck op,
render_scene_preview look → edit → look. Stay in pro-editing until the
bad cases below are done. Do not skip the load and invent a parallel edit
style.
| Problem | Tool |
|---|---|
| Empty or garbage title | edit_deck retitle from the first real heading |
| Overlap or overflow | patch_stage set on that element's /content/canvas/.../left / top / width / height, one number per op |
| Leftover empty boxes | patch_stage delete_element |
| Broken or missing image | patch_stage set on /content/canvas/elements/N/src, only if you have a real replacement URL; otherwise leave it and mention it |
| Garbled text, leftover font-substitution junk | read_stage detail:"source", then patch_stage set on that element's rich-text path |
Rules:
pro-editing into narration.Only after Step 3. You now have a page list, inventories, and (if available) previews. Form a short course reading before touching actions:
Then write playback actions with generate_actions page by page, in order
(it drafts the full action set from the page content and course context, and
synthesizes audio by default — reserve patch_stage on /actions/... + generate_tts for
line-level fixes afterwards):
insert_speech / set_speech: one or a few teacher lines that teach this
page. Do not read the slide aloud verbatim. Speaker notes are a draft to
rewrite, not a script to keep if they are outline-speak or leftover PPT
comments.set_spotlight: bind the line to the element it is about (elementId
from read_stage detail:"source"). Skip spotlight when the page is a title-only cover.delete imported speech that does not teach.Do not call generate_scene to "generate actions". That regenerates the
slide.
After a page's actions are settled, generate_tts that page (default mode
fills missing audioId only). Reworded speech has no audio until this runs.
Before saying the import is ready to teach: every page that has speech must
have audioId. read_stage detail:"source" shows it.
If the user did not ask for quiz, interactive, or extra pages, stop after Step 5. One sentence is enough: they can ask to insert a quiz or an interactive page next.
If they did ask:
edit_deck insert with type=quiz or type=interactive at the chosen
atOrder. This creates an empty stub; it does not copy a PPT slide.generate_scene only that new page, with the explicit page type and
brief plus
materialFacts taken from the surrounding imported slides. Never
regenerate an imported slide in this step.widgetType and a filled
widgetOutline. A quiz must have real questions, answers, and analysis.generate_tts the new page if it has narration.Do not sprinkle quizzes through the deck "for engagement" when nobody asked.
list_scenes — imported slides still in order, plus any pages you inserted.audioId.import_pptx is the source of visual truth. Replanning the imported deck is
the wrong workflow for this skill.generate_scene is allowed only for newly inserted quiz/interactive
stubs, or when the user explicitly asked to rebuild one imported page.extract_material and teach from the text.© THU-MAIC, 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 1 other file in skills/agent-runtime/pptx-import of THU-MAIC/OpenMAIC.
Open the folder on GitHubat commit 6a84dbe
PPTX Import into a Classroom Stage 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 |
|---|---|---|---|---|---|---|
| PPTX Import into a Classroom Stage this skillTHU-MAIC/OpenMAIC | 40k | — | ~2.5k | Automated safety check: Pass | MIT | |
| Book Media Generatordmccreary/ibook-skills | 105 | — | ~1.7k | Automated safety check: Pass | CC-BY-NC-4.0 | |
| Pitch Deckooiyeefei/ccc | 494 | — | ~920 | Automated safety check: Pass | MIT | |
| Ppt Tts Scriptninehills/skills | 280 | — | ~1.5k | Automated safety check: Pass | None | |
| Personwise Create Courseaiskillstore/marketplace | 430 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Academic PresentationsGabberflast/academic-pptx-skill | 1.1k | 1 repos | ~1.9k | Automated safety check: Pass | Proprietary |
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…
ooiyeefei/ccc
Build a pitch deck as one self-contained HTML file (keyboard and click navigation, staggered slide-entry animations, a persistent brand mark, cited numbers with real links), write its timed…
ninehills/skills
将 PPT/PPTX/PDF 演示文档转换为拟人化逐字稿(Markdown + JSON 双格式输出),并将逐字稿回写到 PPTX 演讲者备注中。使用五阶段流水线:素材提取、大纲生成、逐字稿撰写(通过 Gemini CLI)、合并输出、备注回写。当用户需要将演示文档转为演讲稿、朗读稿、解说词时使用此技能。触发短语包括但不限于:「PPT 转语音」「生成逐字稿」「演讲稿生成」「帮我把 PPT…
aiskillstore/marketplace
Create, refine, resume, publish, or query polished PersonWise courses from topics, text, PDF/PPTX/DOCX/Markdown/TXT documents, or reference images with the PersonWise CLI.
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.
Yusuke710/manim-skill
Builds math and concept animations with Manim Community Edition, with optional local text-to-speech voiceover and synced subtitles, delivering script.py and video.mp4.
THU-MAIC/OpenMAIC
Guides setup, classroom generation and secondary development for OpenMAIC, the multi-agent interactive classroom, one confirmed phase at a time.
THU-MAIC/OpenMAIC
Designs a Chinese K-12 classroom for one OpenMAIC stage around the core-literacy model, using authentic tasks, performance assessment and observable evidence.
THU-MAIC/OpenMAIC
Maps the structure of an OpenMAIC stage document so an agent can find the right path, read it and patch quizzes, widgets, actions and project pages without guessing.
THU-MAIC/OpenMAIC
Designs a review-and-practice lesson around an independent first attempt, targeted feedback, supported practice, a fresh independent check and a next step.
THU-MAIC/OpenMAIC
Derives a reusable personal skill for course-making from a representative sample of the user's own past classrooms and chat history, confirmed with them before saving.
THU-MAIC/OpenMAIC
Plans a multi-classroom series such as a seven-day course, clarifies the brief in rounds, gets sign-off on the full lesson list, then builds each stage in a shared folder.
Works with
Categories
Fills an uploaded PowerPoint into an existing classroom stage with its layout intact, then checks each page, writes narration and actions, and generates speech. pptx` and adds them to a stage created earlier with `create_stage`, either appended or inserted at a chosen position. The stage keeps its own title and any pages it already has, and the original layout is preserved.
PPTX Import into a Classroom Stage fits situations like: turning an uploaded PowerPoint into pages of an existing online lesson; keeping a deck's original layout while adding narration and spoken audio; repairing visual problems on imported slides before writing actions.
Run `npx skills add THU-MAIC/OpenMAIC --skill pptx-import -a claude-code`. Or copy the skill folder (skills/agent-runtime/pptx-import in THU-MAIC/OpenMAIC) into .claude/skills/pptx-import in your project. Claude Code loads it when a task matches its description.
Run `npx skills add THU-MAIC/OpenMAIC --skill pptx-import -a codex`. Or copy the skill folder (skills/agent-runtime/pptx-import in THU-MAIC/OpenMAIC) into .agents/skills/pptx-import 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 THU-MAIC/OpenMAIC --skill pptx-import -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pptx-import, .gemini/skills/pptx-import, .github/skills/pptx-import and .opencode/skills/pptx-import in your project.
SKILL.md names no scripts, command-line tools or credentials: PPTX Import into a Classroom Stage is instructions for the agent only. Our summary lists: An uploaded .pptx file in the session; The classroom runtime tools such as `create_stage` and `import_pptx`.
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 no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
PPTX Import into a Classroom Stage 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.5k tokens (SKILL.md is roughly 9.9k 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 PPTX Import into a Classroom Stage: Book Media Generator (dmccreary/ibook-skills, 105 stars), Pitch Deck (ooiyeefei/ccc, 494 stars), Ppt Tts Script (ninehills/skills, 280 stars) and Personwise Create Course (aiskillstore/marketplace, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
THU-MAIC (a GitHub organization) maintains it in THU-MAIC/OpenMAIC, which has 40,213 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 9, 2026.
Source: THU-MAIC/OpenMAIC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.