pamelafox presentation-skills
Sixteen skills for presentations: slides from a link, text and frames, YouTube transcripts, RevealJS, talk write-ups.
- 130 ★ on the repository
- Last commit
Extended access
Why this level
- Skills download files and videos by link and run `pdftoppm`, `pdftotext` and yt-dlp on your machine.
- The discussion-commenter skill posts comments to a GitHub Discussion under your name.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/pamelafox-presentation-skillsDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Skills download files and videos by link and run `pdftoppm`, `pdftotext` and yt-dlp on your machine.
- The discussion-commenter skill posts comments to a GitHub Discussion under your name.
This is third-party code. Review the repository files before installing.
What it does
The skill set carries a talk from slides to publication. `fetch-slides` downloads slides from a link and turns PPTX, OneDrive links and RevealJS into PDF. `convert-slides-to-images` splits a PDF into PNGs through `pdftoppm`, and `extract-slide-text` pulls page text through `pdftotext`. `extract-transcript` fetches a YouTube transcript, `capture-video-frames` grabs frames at a set interval and describes them, and `youtube-live-chat` exports live stream chat through yt-dlp. `generate-writeup` builds an annotated article from slides and a recording, `youtube-description` writes a video description with timestamps and `make-revealjs-presentation` creates a RevealJS deck from the repository template. There are also skills for thumbnails and speaker cards, Azure image generation and posting Q&A entries to a GitHub Discussion.
Who it is for. Speakers, teachers and talk-recording authors who manage slides, video and text through Claude Code or another agent.
Good fit when
- After a talk you need to publish an annotated article from slides and a recording.
- You need the text of every PDF slide in one Markdown file.
- You need a YouTube transcript and a video description with clickable timestamps.
- You need a new RevealJS deck from a talk outline.
Not a fit when
- You need to edit PPTX in PowerPoint: the skills read, convert and assemble materials.
- You have no `pdftoppm`, `pdftotext` or yt-dlp: some skills depend on them.
- You need cards for other conferences: the speaker card skill is built for Microsoft events.
Example request
Fetch the slides from this OneDrive link, extract the text of each slide and make an annotated article with my video.Limitations
The skills rely on external programs and services: poppler (`pdftoppm`, `pdftotext`), yt-dlp, the YouTube Transcript API, Microsoft markitdown and the Azure AI API for image generation. Azure generation needs access to that API. The `thumbnail-of-pptx` skill opens the PowerPoint web viewer in a headless browser and takes a screenshot, so access to the OneDrive link is required. The GitHub Discussion publishing skill posts comments under your name. Some skills are designed for Microsoft events and a talk repository with a specific file layout.
How to disable. Delete the skill folders from the agent directory: `.claude/skills/` or `~/.claude/skills/` for Claude Code. If you installed through `gh skill`, use the same directory.
FAQ
How do I install presentation-skills?
Run `npx skills add pamelafox/presentation-skills` to install all skills, or add one such as `npx skills add pamelafox/presentation-skills/extract-transcript`. `gh skill install pamelafox/presentation-skills` also works.
Which input formats does fetch-slides accept?
Direct PDF and PPTX URLs, OneDrive sharing links and RevealJS HTML presentations. The result is always converted to PDF for the next steps.
How do I get a YouTube video transcript?
The `extract-transcript` skill uses the YouTube Transcript API and returns a timestamped transcript. Then `youtube-description` builds a description with clickable `MM:SS` marks.
What does generate-writeup do?
It runs a pipeline: slides, images, transcript, chapters, slide outline and a final annotated blog-style Markdown article.
Can I install only some skills?
Yes, each skill installs with its own command `npx skills add pamelafox/presentation-skills/<name>`, or `gh skill install pamelafox/presentation-skills <name>`.
Discussion
No questions or reviews yet.
Related
SkillsA skill for HTML presentations: a theme and two preview slides for approval, then the deck, PDF and PowerPoint export and a link
A skill for talks: outlines a deck around the audience's train of thought, picks images and video, and checks finished slides before you present
A skill that turns an article, report or notes into a deck of full-slide images and assembles them into a pptx
Dashi PPT
Dashi PPT Skill
A skill that turns a document into a deck: a browser-editable HTML presentation with a per-page console and export to PPTX and PDF
A skill that builds editable PowerPoint decks from outline.json with scripts and checks layout and density before delivery.
A skill for single-file, dependency-free HTML presentations: 22 styles, a BRIEF.json plan and content review.
README in short
The README lists the skills in order with a description and a hint on when to use each, then gives install commands through `npx skills` and the GitHub CLI, including single skills and a specific agent.
README badge
Original SKILL.md
--- name: extract-transcript description: >- Extract a timestamped transcript from a YouTube video. Returns text with [MM:SS] or [HH:MM:SS] timestamps for each segment. USE FOR: get transcript, transcribe YouTube video, fetch video transcript, YouTube captions. argument-hint: <youtube_url> [output_file] --- # Extract transcript from YouTube video Run the [extract_transcript.py](./extract_transcript.py) script to fetch a timestamped transcript: ```bash uv run extract_transcript.py <youtube_url> [output_file] ``` ## Arguments - `youtube_url` (required): YouTube video URL. Supported formats: - `https://www.youtube.com/watch?v=VIDEO_ID` - `https://youtu.be/VIDEO_ID` - `https://www.youtube.com/embed/VIDEO_ID` - `output_file` (optional): Path to save the transcript. If omitted, prints to stdout. ## Output format Each line has a timestamp followed by the transcript text: ``` [00:00] Welcome to this talk about... [00:15] Today we'll be covering... [01:30] Let's start with the first topic... ```