# Yt Package

Write and lint the title and thumbnail for a YouTube video as one pairing, checking...

- Repository: https://github.com/Jakeschincariol/youtube-agent-skill (4152 stars)
- Category: Writing
- License: MIT
- Last updated: 2026-09-16
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add Jakeschincariol/youtube-agent-skill --skill yt-package -g -a claude-code -y`
Codex: `npx skills add Jakeschincariol/youtube-agent-skill --skill yt-package -g -a codex -y`
Cursor: `npx skills add Jakeschincariol/youtube-agent-skill --skill yt-package -g -a cursor -y`
Gemini CLI: `npx skills add Jakeschincariol/youtube-agent-skill --skill yt-package -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add Jakeschincariol/youtube-agent-skill`

## Description

Write and lint the title and thumbnail for a YouTube video as one pairing, checking truncation, duplication and vagueness before publish. Use for "title ideas", "what should I call this", "thumbnail text", "my CTR is bad", packaging, or any request to rename or repackage an existing video.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# yt-package

The title and the thumbnail are ONE unit. Writing them separately is why most packaging fails: the
thumbnail repeats the title, and half the click surface says the same thing twice.

```bash
python3 title.py --title "..." --thumb "AI RAN IT"
python3 title.py titles.txt            # one per line, ranked
```

## 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.

## Rules the tool enforces, and why

- **60 characters** is where desktop search truncates, **40** is a mobile home feed. Both are
  reported because they fail differently: a desktop cut loses the tail, a mobile cut can lose the
  subject.
- **The thumbnail must not repeat the title.** Different words, same promise.
- **Three words maximum on the thumbnail.** At feed size a fourth word is a grey smear.
- **A number, a name or a date** beats every adjective available to you.
- **Two all-caps words is the ceiling** before a title reads as spam.

## Write ten, keep two

Generate ten titles, run them all through `title.py`, show the user the top three with their scores
and the specific issue on each. For the winner, write the thumbnail brief: the expression, the
framing, the three words, and what the background has to do to hold contrast at feed size.

## The gate

Nothing here publishes. This skill writes and you publish. Every output ends in a block the user
copies, and the last line of every run is the question: **ship it, or change it?**

