Podcast
team-attention/plugins-for-claude-natives
Generate Korean podcast episodes from any source (URLs, tweets, articles, PDFs) — analyzes content, writes a script, generates audio via OpenAI TTS, converts to MP4, and auto-uploads to YouTube.
Make a narrated lesson video about lpm from the real desktop app, recorded on a pristine data directory.
$ npx skills add gug007/lpm --skill lesson -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gug007/lpm lesson --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/gug007/lpm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/lesson .claude/skills/lesson && 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 "lesson" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson into .claude/skills/lesson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson", 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/gug007/lpm/tree/main/.claude/skills/lessonType 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 gug007/lpm --skill lesson -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gug007/lpm lesson --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/lesson .agents/skills/lesson && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "lesson" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson into .agents/skills/lesson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson", 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 gug007/lpm --skill lesson -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gug007/lpm lesson --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/lesson .cursor/skills/lesson && 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 "lesson" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson into .cursor/skills/lesson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson", 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/gug007/lpm.git --path .claude/skills/lesson--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 gug007/lpm --skill lesson -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gug007/lpm lesson --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/lesson .gemini/skills/lesson && 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 "lesson" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson into .gemini/skills/lesson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson", 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 gug007/lpm lessonInstalls 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 gug007/lpm --skill lesson -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/lesson .github/skills/lesson && 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 "lesson" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson into .github/skills/lesson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson", 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 gug007/lpm --skill lesson -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gug007/lpm lesson --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/lesson .opencode/skills/lesson && 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 "lesson" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson into .opencode/skills/lesson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson", 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.
lessonMake a narrated lesson video about lpm from the real desktop app, recorded on a pristine data directory.
Lesson is an agent skill from gug007/lpm. Make a narrated lesson video about lpm from the real desktop app, recorded on a pristine data directory. Title and optional narration text in, MP4 with OpenAI voice out, audio in sync with the clicks. Use when the user asks for a video lesson, tutorial, screencast, or YouTube video about lpm.
Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 55 other files, including scripts (for example `music/tracks.json`, `reference/beats-api.md` and `reference/pipeline.md`).
It sits in Media & Creative, covering Text to speech and voice. It works with OpenAI and YouTube. The repository describes itself as: Start, stop, and duplicate dev projects with one click. The best workspace for running Claude Code, Codex, and other AI agents alongside your services. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 986226a. 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 13 files in scripts/ (JavaScript and Swift, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
nodegitffmpegFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Lesson loads about 1.2k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 679 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 gug007/lpm at commit 986226a, republished under its MIT licence (© gug007). 679 words, ~1,163 tokens.
.claude/skills/lesson/SKILL.md (or your agent's skills folder). This skill also uses 52 other files; get the full folder from GitHub.Generate a video tutorial from a title and optional narration text.
Workflow
node scripts/new.js "<title>" [--projects storefront,client-portal] starts ~/Movies/lpm-lessons/<slug>/ with lesson.json, beats.js and take.sh. Write the narration and the beats: reference/beats-api.md has every call a beat can make, the selectors and the traps.git clone, real usage meters). Wait for their OK before anything is spoken.<lesson>/take.sh --no-audio is a dry run: it lints the lesson, launches the app and drives the real pointer with estimated timing, and writes frames/NN-<beat>.jpg. Review the frames (a contact sheet helps: ffmpeg -i 'frames/%*.jpg' … tile).
Then write the opening and the cover: coldOpen (a one- or two-sentence hook over two short shots of the payoff) and cover (2–4 words and a frame of the payoff) in lesson.json; a dry run's timing is estimated, so check both on the take's qa/sheet.jpg and adjust with a --mux-only re-cut. Without them a lesson opens on its title card and uses that card as its thumbnail.<lesson>/take.sh is the take: voice first, then the recording, then the MP4, captions, chapters, thumbnail and the checks (qa/report.json, qa/sheet.jpg). Run it in the foreground (a take started in the background fails for lack of a first frame), about 5 minutes. Nobody touches the mouse or keyboard meanwhile.warning lines and the qa summary: a FAIL (a name, email or error text on screen, an agent that never answered) means the take is not publishable as it is.~/Movies/lpm-lessons/<slug>/<slug>.mp4).Rules
s.card("<title>") and close on a silent { "id": "outro", "ms": 3200 } line whose beat is s.card("lpm.cx", { hold: true }).cue); fold a very short closing sentence ("Click it.") into the one before, since the voice drops those; write lpm lowercase (it is spoken as letters).neutralShell replaces the shell prompt).take.sh saves their model, effort and status-line settings and puts them back afterwards, even after a crash (restored at the start of the next take). Nothing else in their config is guarded, so a lesson that changes something else must put it back itself.cp -c -R) to a scratch directory and run node scripts/make.js <copy path> --mux-only there; a path is used as it is, so the published lesson is never touched. node --test scripts/test/*.test.js covers the pure parts.security add-generic-password -s lpm-video -a openai -U -w).Re-cuts (--mux-only): re-render the current take with the current look, sound, zooms and captions; nothing is recorded and nothing is spoken. A reworded line needs --speak: it speaks the changed lines and keeps them only if every new clip still fits before the next line; otherwise all clips are put back as they were and the line needs a new take. --take <n> re-cuts an archived take from _takes/ with the script it was recorded with (it fails when those lines have been spoken again since). The render a re-cut replaces is kept in its take's cuts/. Adjust a zoom without a new take through lesson.json "zooms": { "<line>#<n>": { "scale": 1.6, "at": [0.3, 0.5], "ms": 900 } } or { "drop": true } (the mux log lists the ids).
Flags: node scripts/make.js prints them. The pipeline, the look, the sound, the data directory, the take folders and the checks are described in reference/pipeline.md.
© gug007, 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 52 other files (scripts) in .claude/skills/lesson of gug007/lpm.
Open the folder on GitHubat commit 986226a
Lesson 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 |
|---|---|---|---|---|---|---|
| Lesson this skillgug007/lpm | 152 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Podcastteam-attention/plugins-for-claude-natives | 827 | — | ~1.5k | Automated safety check: Pass | MIT | |
| SpeechJetBrains/skills | 364 | 4 repos | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Voxclawmalpern/VoxClaw | 208 | — | ~1.9k | Automated safety check: Pass | None | |
| Speechdavila7/claude-code-templates | 32k | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Speechnexu-io/open-design | 100k | — | ~291 | Automated safety check: Pass | Apache-2.0 |
team-attention/plugins-for-claude-natives
Generate Korean podcast episodes from any source (URLs, tweets, articles, PDFs) — analyzes content, writes a script, generates audio via OpenAI TTS, converts to MP4, and auto-uploads to YouTube.
JetBrains/skills
A skill your agent uses when the user asks for text-to-speech narration or voiceover, accessibility reads, audio prompts, or batch speech generation via the OpenAI Audio API; run the bundled CLI…
malpern/VoxClaw
Give your agent a voice. An agent skill from malpern/VoxClaw.
davila7/claude-code-templates
A skill your agent uses when the user asks for text-to-speech narration or voiceover, accessibility reads, audio prompts, or batch speech generation.
nexu-io/open-design
Generate spoken audio from text using OpenAI's API with built-in voices.
benchflow-ai/skillsbench
OpenAI Text-to-Speech API for high-quality speech synthesis.
gug007/lpm
Make a short vertical (9:16) lpm lesson that feels native to TikTok, Reels and Shorts: a payoff-first hook, fast push-ins that follow the action, word-by-word burned-in captions, numbered step…
gug007/lpm
Make a short vertical (9:16) video where two AI models build the same self-playing game in lpm, side by side, and both games then play live in lpm's browser.
gug007/lpm
Make a short vertical (9:16) video that races two AI models on the same prompt in lpm, side by side: Run in duplicates puts each model in its own copy of the project, shown as side-by-side columns…
gug007/lpm
Create and edit lpm YAML configs for projects, duplicates, worktree metadata, services, actions, header and footer button zones and zone layers, terminals, profiles, SSH projects, and shared config…
gug007/lpm
Post a finished vertical lesson from ~/Movies/lpm-lessons/tiktok/<slug/ to YouTube Shorts (LPM channel, through Chrome) and TikTok (@lpm06557, from the user's iPhone through iPhone Mirroring) in…
gug007/lpm
Publish a finished lesson MP4 from ~/Movies/lpm-lessons/<slug/ to the lpm YouTube channel through Chrome (YouTube Studio): search-optimized title and description with chapters, tags, category, the…
Categories
Make a narrated lesson video about lpm from the real desktop app, recorded on a pristine data directory. Lesson is an agent skill from gug007/lpm. Make a narrated lesson video about lpm from the real desktop app, recorded on a pristine data directory.
Lesson fits situations like: the user asks for a video lesson; youTube video about lpm.
Run `npx skills add gug007/lpm --skill lesson -a claude-code`. Or copy the skill folder (.claude/skills/lesson in gug007/lpm) into .claude/skills/lesson in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gug007/lpm --skill lesson -a codex`. Or copy the skill folder (.claude/skills/lesson in gug007/lpm) into .agents/skills/lesson 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 gug007/lpm --skill lesson -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lesson, .gemini/skills/lesson, .github/skills/lesson and .opencode/skills/lesson in your project.
Going by SKILL.md and its folder, Lesson needs JavaScript and Swift for the scripts in its folder and the command-line tools its instructions call (node, git and ffmpeg). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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.
Lesson is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 4.7k 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 Lesson: Podcast (team-attention/plugins-for-claude-natives, 827 stars), Speech (JetBrains/skills, 364 stars), Voxclaw (malpern/VoxClaw, 208 stars) and Speech (davila7/claude-code-templates, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gug007 (a GitHub user) maintains it in gug007/lpm, which has 152 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 8, 2026.
Source: gug007/lpm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.