YouTube agent skill

Eleven Claude Code skills: a script with a scored hook, title and thumbnail as a pair, an edit list, chapters, a retention reader and a Shorts cutter

  • 2,465 ★ on the repository
  • Last commit
  • MIT
Skill

Extended access

Why this level

  • The Python scripts run on your machine and read the transcripts and retention exports you point them at
  • Without a voice profile the skill writes the file `~/.claude/youtube/voice.md` in your home folder
  • For `/yt-viral` public video lists of channels are collected from the network, for example with `yt-dlp`
All reasons and checks

jakeschincariol/youtube-agent-skill

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/youtube-agent-skill

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The Python scripts run on your machine and read the transcripts and retention exports you point them at
  • Without a voice profile the skill writes the file `~/.claude/youtube/voice.md` in your home folder
  • For `/yt-viral` public video lists of channels are collected from the network, for example with `yt-dlp`

This is third-party code. Review the repository files before installing.

What it does

YouTube agent skill is a set of eleven Claude skills that follow a YouTube channel from idea to upload: they write scripts, pick titles and thumbnails, cut a video from its transcript, set chapters, read audience retention and find Shorts inside long videos. The skills run as `/yt-script`, `/yt-package`, `/yt-edit`, `/yt-comment`, `/yt-plan`, `/yt-viral`, `/yt-retention`, `/yt-shorts`, `/yt-seo`, `/yt-chapters` and `/yt-audit`. Nothing is published: every answer ends with a block to copy and a question, ship it or change it. Six of the skills rely on Python scripts that need no dependencies. `/yt-script` writes five hook options off 21 formulas, runs them through `hookscore.py`, keeps the two best with their scores and writes the spoken script with a note on what is on screen at each beat. `/yt-package` lints a title and a thumbnail as one pairing for truncation, duplication and vagueness. `/yt-edit` turns an `.srt` transcript into an edit decision list with timecodes for dead air, filler cues and retakes. `/yt-chapters` builds chapters and validates them against YouTube's rules so they render under the video. `/yt-retention` reads an audience-retention export from YouTube Studio and separates three problems: viewers lost in the first 30 seconds, steep cliffs and a slow slide. With a transcript, the script prints what was being said at the moment of a cliff. `/yt-viral` takes a list of videos you collected, ranks them by multiple over each channel's own median views and names the title formula. Every skill reads a voice profile from `~/.claude/youtube/voice.md`. If the file is missing, the skill asks for three of your videos and writes the profile itself.

Who it is for. For YouTube creators, producers and marketers who write scripts, edit and review channel statistics together with Claude Code.

Good fit when

  • You have a raw video idea and no first fifteen seconds of script yet
  • A finished video needs a title and a thumbnail that do not repeat each other
  • You want an edit list with timecodes for dead air and retakes from a transcript
  • A video loses viewers and you need to know at which second and what you were saying then
  • You want to pull Shorts out of a long video, each with a new first line

Not a fit when

  • You need videos uploaded to YouTube automatically: the skills publish nothing
  • Your agent cannot run Python 3: without the scripts only the text modes remain
  • You need to download a video and cut fragments with bilingual subtitles: that is what YouTube Clipper Skill does
  • You expect a view forecast from the hook score: the panel is a heuristic and promises nothing

Example request

Write a script for a video about moving from Notion to Obsidian: five hooks with scores, the best one up front and notes on what to show on screen

Limitations

  • `hookscore.py` is a heuristic. The panel was calibrated on 74 real short-form hooks (the first 15 seconds of auto-captions, the top eight and bottom eight by views across five channels). It separates deliberately bad hooks from real ones well and barely separates one creator's hits from their own misses. A low score is a reason to reread the hook.
  • The formula classifier in `/yt-viral` judges only the words of a title and does not explain why a video got its views.
  • For `/yt-viral` you collect the video list yourself, at least four videos per channel, otherwise the median means nothing and the channel is skipped. The skill reads public pages only and never signs in to your account.
  • The skills always read the `voice.md` voice profile. Without it you would read a script on camera in a voice that is not yours, so the skill begins by asking for three of your videos.
  • If you paste a SKILL.md into an ordinary chat without Claude Code, the six Python scripts are unavailable, and they are most of the value of `/yt-script`, `/yt-retention` and `/yt-edit`.

How to disable. Delete the `yt-*` folders from `~/.claude/skills/` or from the project's `.claude/skills/`. If you installed the `youtube-agent` plugin, disable it in the `/plugin` menu. The voice profile lives separately in `~/.claude/youtube/voice.md`: keep it or delete it by hand.

FAQ

Do the skills upload videos to YouTube by themselves?

No. Every skill ends its answer with a block to copy and a question, ship it or change it. The YouTube Data API would allow publishing with your OAuth, but no such code is in the set, so the upload stays with you.

How do I find the second where viewers leave a video?

Export the retention report: YouTube Studio, the video, Analytics, Engagement, the retention chart, the download icon, Audience retention. Then run `python3 skills/yt-retention/retention.py retention.csv --duration 600`; with `--transcript transcript.srt` the script also prints the words spoken at the moment of a cliff. Losing under 25% in the first 30 seconds counts as healthy.

How do I write a YouTube hook with Claude Code?

`/yt-script` writes five hooks off the 21 formulas in `hooks.json`, scores each on five properties with `hookscore.py` and shows the two best. It never hands over a single hook. The script is then built around the chosen one: the first 15 seconds confirm the title's promise, open a question and prove the payoff exists.

What does `/yt-viral` do with a channel that has fewer than four videos in the list?

It skips the channel and says so, because a median over fewer videos means nothing. The other channels are ranked by each video's multiple over its own channel's median, so a big channel does not push out a small one.

Do I need API keys or an account?

No. The set is free, MIT licensed, with no signup, keys or connections. The scripts run on plain Python 3 with no external packages.

Can I use the skills without Claude Code?

Partly. Any `SKILL.md` can be pasted at the top of a chat and works as a mode, but the six Python scripts are lost.

Discussion

No questions or reviews yet.

Skills

Thirteen skills for Claude Code: Reels scripts off 26 hook formulas, caption linting, carousels, stories, profile scoring and a weekly posting plan

SkillExtended access2.5KRepository stars

Ryze Marketing Skills

Ryze AI - Claude Marketing Skills

A set of free Claude skills for performance marketing: audits and diagnostics for Google Ads, Meta Ads, SEO and AI answer visibility

PluginExtended access5.4KRepository stars

AI Marketing Suite

AI Marketing Suite for Claude Code

A set of marketing skills for Claude Code: site audit, copywriting, emails, content calendars, competitor analysis and client reports

SkillExtended access2.8KRepository stars

Skills for positioning, content, LinkedIn, cold outreach and landing page audits with quick and deep modes

SkillMinimal access444Repository stars

A set of Claude skills that run a LinkedIn account: posts from hook formulas, comments, replies, profile scoring and a humanizer that strips AI tells

PluginExtended access2.6KRepository stars

AI Collab Playbook bundles 19 skills for Claude Code and Codex: paper review, Codex session recovery, anti-AI-tone editing and research-workflow helpers

SkillMinimal access456Repository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialRepository starsMain difference
YouTube agent skill (this entry)no2,465
YouTube Clipper Skillno2,254downloads YouTube videos, splits them into chapters and burns in bilingual subtitles instead of writing scripts
YouTube Skillsno1,111gives the agent transcripts, video and channel search through an external API
Social Media Skillsno4,315a general set for social posts, carousels and Reels scripts

README in short

The repository holds eleven `skills/yt-*` folders with instructions and six Python scripts, a `hooks.json` file with the 21 hook formulas, a voice profile template `templates/voice.md` and plugin manifests in `.claude-plugin`. The description opens with a promise of a free set with no signup or keys, then gives three install routes, a command table and a run example for every script. A separate section with the author's caveats explains why the hook score is a heuristic, why the set publishes nothing and why tags barely affect impressions.

README badge

Original SKILL.md

---
name: yt-script
description: >-
  Write a YouTube video script from a raw idea - hook options off 21
  formulas, scored, then the full spoken script with the retention beats
  marked. Use whenever the user wants a video script, a hook, an opening
  line, "what should I say", "write my next video", or is about to record
  and does not have the first fifteen seconds yet.
---

# yt-script

One idea into a script somebody finishes.

Two tools live in this folder and both actually run. Use them. Do not eyeball the hook.

```bash
python3 hookscore.py hooks.txt              # rank your hook options
python3 hookscore.py --hook "one line"      # score a single one
```

## Before you write

1. Read `~/.claude/youtube/voice.md` if it exists. That is the user's voice profile: how they talk
   on camera, the words they never use, who they are talking to, what they will not claim. If it
   does not exist, ask for **three of their own videos**, read or transcribe them, infer the voice,
   and write the file. A script in the wrong voice is worse than no script, because they have to
   read it out loud.
2. Never invent a number, a result or a source. If a figure would strengthen it and you do not have
   one, ask for it or write the line without it.

## The shape

**The first 15 seconds is the whole job.** It does three things or the video leaks: confirm the
click the title promised, open a question the viewer cannot close, and prove the payoff exists.

1. **Hook.** Write FIVE against [the 21 formulas](hooks.json), run them through `hookscore.py`,
   keep the top two, and show the user both with their scores. Never hand over one hook.
2. **The turn** (0:15-0:45). Say what the video is going to do, in one sentence, and start doing it.
   No channel intro, no "before we get started", no subscribe pitch. Those are the single most
   common cause of the 0:30 cliff.
3. **The body.** One idea per beat. Mark each beat with what is ON SCREEN, not just what is said -
   a talking head with nothing to look at is a podcast.
4. **The payoff.** Deliver the thing the hook promised, explicitly, and say that you are delivering
   it: "that is the prompt, it is in the description".

Report a problem

Foxx AIYouTube agent skill
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.