YouTube Marketing Skills for Claude Code and Codex
Part of the linkedin-skills family (400+ stars). Same voice engine and approve-before-publish flow, now for YouTube. Also available for Instagram · X · TikTok · Threads · Facebook.
9 skills that turn Claude Code and Codex into your YouTube packaging team. They write high-CTR titles and SEO descriptions, script retention hooks for long-form and Shorts, brief thumbnails, draft community posts, and audit your channel page. You supply the video; the skills write the packaging, strip the AI tells, and wait for your approval.
Once installed, just ask Claude Code or Codex things like:
- "Write 5 high-CTR titles for a video about [topic]"
- "Script the first 30 seconds to keep viewers watching"
- "Answer this comment as a community post"
- "What's working in my niche on YouTube? (reads real data)"
The right skill activates automatically. Then you review and approve.
Install
Pick whichever way you use Claude Code or Codex:
Codex CLI
codex plugin marketplace add sergebulaev/youtube-skills
codex plugin add youtube-skills@youtube-skills
To test a local clone before publishing changes:
git clone https://github.com/sergebulaev/youtube-skills.git
cd youtube-skills
codex plugin marketplace add .
codex plugin add youtube-skills@youtube-skills
claude.ai (web)
- Open https://claude.ai/code
- Go to Skills in the sidebar
- Click Add from GitHub
- Paste:
sergebulaev/youtube-skills
- Done. The skills activate automatically when you ask about YouTube or Shorts.
Claude Desktop (Mac / Windows)
- Open Claude Desktop
- Open Settings (gear icon)
- Go to Skills
- Click Add from GitHub
- Paste:
sergebulaev/youtube-skills
- Done. Start a new conversation and ask Claude to title your next video.
Claude Code (CLI / VS Code / JetBrains)
/plugin marketplace add sergebulaev/youtube-skills
/plugin install youtube-skills@youtube-skills
Or clone the repo and open it as your working directory:
git clone https://github.com/sergebulaev/youtube-skills.git
cd youtube-skills
OpenClaw
- Open your OpenClaw working directory
- Clone the skills into it:
git clone https://github.com/sergebulaev/youtube-skills.git
- In OpenClaw settings, add this to your system prompt:
You have YouTube marketing skills in ./youtube-skills/.
For any YouTube task, read the relevant skills/*/SKILL.md first.
Use lib/url_parser.py for URL parsing and lib/publora_client.py for publishing.
- Done. Ask OpenClaw to write a YouTube post.
Hermes Agent
Hermes Agent (Nous Research) follows the agentskills.io open standard and loads skills/*/SKILL.md directly. Clone the bundle into your Hermes skills folder:
git clone https://github.com/sergebulaev/youtube-skills.git ~/.hermes/skills/youtube-skills
Coming from OpenClaw? hermes claw migrate imports these skills automatically. Then call /<skill-name> from any of your Hermes chat surfaces.
Any agent (skills CLI)
One command that works across Claude Code, Codex, Cursor, and any other agent that reads SKILL.md files:
npx skills add sergebulaev/youtube-skills
Found this useful? Star the repo. Curated Claude Code and Codex directories rank and gate by star count, so a star is what makes these skills findable for the next person. It is the only thing we ask. No signup, no email.
What you can do
Once installed, just ask Claude Code or Codex for help with YouTube. The right skill activates automatically.
Title a video:
"Give me 5 high-CTR titles for a video on cutting my render time in half."
Write the description:
"Write the description with chapters and keywords for this video: [paste the outline]"
Script the opening:
"Script the first 30 seconds so people don't click away. The title is 'How I shipped in 5 days'."
Hook a Short:
"Write the first 3 seconds for a Short about one editing setting that doubles views."
Brief a thumbnail:
"Give me 3 thumbnail concepts a designer can build for this video."
Plan your week:
"Plan a week of YouTube content. I'm building an AI app in public and can do 1 long-form plus 3 Shorts."
Every skill shows you a draft first and waits for your OK. Nothing gets published without your approval.
The 9 skills
| Skill | What it does |
|---|
| Title Optimizer | Writes high-CTR titles under 100 chars using 2026 formulas (curiosity, number, how-I, mistake, transformation, versus, success-story). Front-loads the words that decide the click and returns 3 to 5 A/B variants tagged by goal |
| Description Writer | Writes the full description under 5,000 chars: a first-150-char hook (the only part visible before "Show more"), timestamped chapters, natural keywords, links, and a real CTA |
| Hook Scripter | Scripts the spoken opening that decides retention: the first 30 seconds of a long-form video, or the first 3 seconds of a Short, with no intro and a designed loop |
| Thumbnail Brief | Turns a video into a designer-ready brief (focal subject, face/emotion, 4-word text overlay, contrast, composition) plus 2 to 3 A/B concepts and the upload flow |
| Community Post Writer | Writes community-tab text posts, polls, and questions that keep the channel warm between uploads. Returns a copy-paste block (community posts have no API) |
| Content Planner | Builds a weekly plan: long-form vs Shorts mix, cadence, per-slot title and thumbnail pairing, hook angle, community posts, and a CTR / retention / subscribe goal balance |
| Repurposer | Adapts off-platform content (a blog post, X thread, LinkedIn post, or newsletter) into a native YouTube surface: a community-tab post or poll, or a video brief (title, spoken hook, description with chapters). Leads with the payoff and strips off-platform artifacts |
| Channel Optimizer | Audits and rewrites the channel page end-to-end: name and @handle, banner (2560x1440 with the 1235x338 safe area), profile picture, About with keywords, the trailer for non-subscribers vs the featured video for subscribers, playlist sections and section order, watermark, and links. Turns a viewer into a subscriber with a scorecard and before/after |
| Audience Insights | Reads your audience from the comments via the free YouTube Data API: commenters, top comments, recurring questions (content ideas), superfans, and what is trending in your niche. YouTube keeps likers private, so this reads commenters |
How publishing works on YouTube
YouTube is a video-only platform: every published post needs a single video, which you supply. The skills write the title, description, hook script, and thumbnail brief; you bring the .mp4. Uploading to YouTube on the native Data API means a Google OAuth flow, the resumable-upload protocol, and quota tracking.
This bundle hands that chain to Publora. On approval, it creates a draft, uploads your video to S3, sets the title and metadata, and schedules the post, all over a few REST calls. A custom thumbnail can be attached too, but the thumbnail image upload is out of band (Publora dashboard or a dedicated endpoint); the bundle automates the attach step, not the image upload. The writer skills use this on approval.
Optional: auto-upload with Publora
By default, the skills draft everything for you to paste into YouTube Studio. If you want Claude Code or Codex to upload and schedule the video you supply, connect Publora. It takes about 2 minutes.
What is Publora?
Publora is a publishing API that turns one flow (create-post, get-upload-url, update-post) into a scheduled YouTube upload, and can cross-post the same content to other platforms.
Publora also ships official MCP skills (npx skills add publora/skills): one skill per platform, covering the publish side only. This bundle is the layer above them, adding the reading, the writing craft and the approval flow.
Setup (2 minutes)
Step 1. Sign up at https://app.publora.com/signup (free)
Step 2. Connect YouTube: click Channels in the left sidebar, then Add Channel, pick YouTube, authorize with Google.
Step 3. Find your Platform ID: go to Channels, click your YouTube channel. The ID looks like youtube-UCxxxxxxxxxxxxxxxxxxxxxx. Copy the whole thing including youtube-.
Step 4. Get your API key: click Settings (gear icon, bottom-left), then API, then Create Key. Copy the sk_... string.
Step 5. Create a file called .env in the youtube-skills folder:
PUBLORA_API_KEY=sk_paste_your_key_here
YOUTUBE_PLATFORM_ID=youtube-paste_your_channel_id_here
If you cloned the repo, copy the template instead:
cp .env.example .env
Then open .env and replace the placeholders with your real values.
Step 6. Install two small Python packages:
pip install requests python-dotenv
Step 7. Test it. Ask Claude Code or Codex:
"Schedule a test video as unlisted via Publora 24 hours from now using [path to a short .mp4], title 'API connection test'."
If Publora returns a postGroupId, you're set. Cancel the post in the Publora dashboard before the scheduled time. If you get HTTP 401, your API key is wrong. If you get Invalid platform ID format, your YOUTUBE_PLATFORM_ID is wrong. See Troubleshooting.
Note on community posts: YouTube community-tab posts and polls have no publishing API, so the Community Post Writer always returns its draft as a copy-paste block for you to post yourself. Videos and Shorts auto-upload.
Optional: generate illustrations with Pixfaro
The thumbnail drives click-through more than anything else. The Community Post Writer can generate a 16:9 image with bold overlay text, but the community tab has no media API, so you upload the approved image yourself with the post. Without a key it drafts the image prompt and asks you to generate it yourself, so nothing breaks.
Pixfaro is a single image API over multiple models (from flux-schnell at $0.004 to gpt-5-image). It composites your handle, brand color, or logo onto the image as a pixel-exact overlay, so a cheap base model still renders crisp text on a thumbnail. Pull those brand fields from your Voice & Brand Profile (section 6) and every asset stays on-brand.