Agent skill

Viral Hooks

by artemnovitckii in artemnovitckii/content-skills

A skill your agent uses when writing or auditing the opening lines of any content — reel hooks, carousel slide 1, video intros, newsletter subject lines, tweet openers — or when a draft's opener…

MITAuto-check passedWriting & Content

Install Viral Hooks

skills CLI
$ npx skills add artemnovitckii/content-skills --skill viral-hooks -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install artemnovitckii/content-skills viral-hooks --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/artemnovitckii/content-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/viral-hooks .claude/skills/viral-hooks && rm -rf skills-src

Use ~/.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/

Facts

Skill name
viral-hooks
GitHub stars
102
Token cost
~2.6k tokens
SKILL.md length
1,479 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when writing or auditing the opening lines of any content — reel hooks, carousel slide 1, video intros, newsletter subject lines, tweet openers — or when a draft's opener…

  • Works in 4 steps: DELAY — topic arrives too late → CONFUSION — the viewer has to re-read → IRRELEVANCE — clear, but not for ME → …
  • Auditing the opening lines of any content — reel hooks
  • SKILL.md covers The Four Hook Killers, What "the hook" is on each…, Hook shape: 2-3 lines, not… and Banned openers, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Viral Hooks is an agent skill from artemnovitckii/content-skills. Use when writing or auditing the opening lines of any content — reel hooks, carousel slide 1, video intros, newsletter subject lines, tweet openers — or when a draft's opener feels flat, vague, or skippable.

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content, covering Newsletters, Social media posts and Slides and decks. The repository describes itself as: 5 Claude Code skills that fix Claude's writing: dumbify, storytelling, viral-hooks, anti-ai-writing, and a voice-dna build guide. MIT. The licence is MIT.

When your agent uses it

  • Auditing the opening lines of any content — reel hooks
  • Carousel slide 1
  • Newsletter subject lines
  • Tweet openers —

Example prompts

  • “/viral-hooks”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. DELAY — topic arrives too late
  2. CONFUSION — the viewer has to re-read
  3. IRRELEVANCE — clear, but not for ME
  4. DISINTEREST — clear, relevant, still skippable

What it can do on your machine

Read from SKILL.md and the folder at commit 1c6e909. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Viral Hooks loads about 2.6k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 1,479 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

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.

Safety

Auto-check passed

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from artemnovitckii/content-skills at commit 1c6e909, republished under its MIT licence (© artemnovitckii). 1,479 words, ~2,561 tokens.

Download SKILL.mdSave it as .claude/skills/viral-hooks/SKILL.md (or your agent's skills folder).
name
viral-hooks
description
Use when writing or auditing the opening lines of any content — reel hooks, carousel slide 1, video intros, newsletter subject lines, tweet openers — or when a draft's opener feels flat, vague, or skippable.

Viral Hooks

A hook has exactly ONE job: help the right viewer decide to keep watching. To do that job it must deliver two things, and only two things:

  1. Topic clarity — within 1-2 seconds, the viewer knows exactly what this is about.
  2. On-target curiosity — the viewer believes this is for THEM, and an open question pulls them forward.

Everything in this skill exists to make a hook hit both. A hook that's clever but unclear fails. A hook that's clear but flat fails. Both, or it's not done.

Always pair with your voice: before writing hooks, read the hooks from your own top-performing posts. Match their cadence and energy — the patterns below are mechanics, your real posts are the sound. If you have a voice file (see the voice-dna skill in this pack), use it.

If you have no sample of your voice (auditing an outsider's script, a brand-new account, fewer than ~10 posts): proceed on the mechanics alone and say so in the output ("voice unverified — no sample to check against"). Never block, never silently pretend the voice check happened.

The Four Hook Killers

Every weak hook fails in one of exactly four ways. Diagnose which one, apply the fix.

1. DELAY — topic arrives too late

Every word spent before the topic lands costs you readers. What "too late" means depends on the platform (see the platform table below): a reel has a ~2-second cliff, a LinkedIn post has the "…see more" fold, a newsletter has the subject line. Same killer, different deadline.

  • ❌ "Okay so this is honestly one of the craziest things I've ever seen, and when I show you, you're not going to believe it."
  • ✅ "Your meal prep is why you're ordering takeout by Thursday."

Fix: Delete everything before the topic. No greeting, no throat-clearing, no "let me explain." The first noun phrase should carry the subject — and it must land before that platform's deadline.

2. CONFUSION — the viewer has to re-read

Nested clauses, abstract words, passive voice. If a line takes two passes to parse, the viewer is already gone.

  • ❌ "The reason consistency with your nutrition tends to break down is that the systems you build on weekends don't account for weekday decision fatigue."
  • ✅ "You prep every Sunday. By Wednesday it falls apart. The reason isn't discipline."

Fix: Fewer words. Simpler words (6th-grade level). Active voice. One idea per sentence.

3. IRRELEVANCE — clear, but not for ME

The viewer understands the topic but can't see themselves in it. The #1 cause: creator-POV framing.

  • ❌ "I've struggled with consistency my whole life." (Viewer: do I share this problem? Maybe not. Out.)
  • ✅ "If you've restarted the same routine five times this year, this is the reason." (Viewer can't opt out — it's aimed at them.)

Fix: Two moves. Swap me/my → you/your. Frame around a pain the viewer already feels — agitate the problem before offering the solve. Solving MY problem is a need; hearing YOUR story is a nice-to-have.

I-framed pattern exception: some sanctioned patterns are legitimately I-framed — story patterns (confession, in-medias-res, expensive lesson) and contrarian-arc patterns ("I stopped X...", "I'll never X again"). For these, the relevance test becomes: is the pain or payoff in the I-statement unmistakably the VIEWER'S too, and does a you-pivot land within the hook's 2-3 lines (or the very first beat after)? An I-framed hook with no you-pivot in sight is still an IRRELEVANCE flag.

4. DISINTEREST — clear, relevant, still skippable

Topic clarity and relevance are there, but no question is left open. The cure is contrast: the gap between what the viewer believes (A) and what you're claiming (B) IS the curiosity. No gap, no pull.

  • Stated contrast (blunt, impossible to miss): "Most people fix this with more discipline. I fix it by deleting the plan entirely."
  • Implied contrast (savvier — only B stated, A implied): "The most consistent clients I've ever had don't use a meal plan at all."

Fix: Name the A (common belief, common method, the viewer's current behavior) and put your B against it. The bigger the believable distance, the stronger the hook.

What "the hook" is on each platform

The four killers are universal. What changes per platform is the unit of attention you're earning and the medium you earn it in. Before writing, know which one you're working in.

PlatformThe hook IS…DELAY deadlineMedium notes
Reel / TikTokFirst 1-2 seconds, spoken + visual~2-second scroll cliffLead with the striking visual — eyes beat ears. Spoken cadence, contractions.
YouTubeTwo hooks: title + thumbnail earn the click; first 15-30s confirms itThe click, then the first 30sTitle = curiosity gap + clarity. First 30s restates the promise and raises stakes — tease the payoff, don't deliver it yet.
LinkedInFirst 1-2 lines before the "…see more" foldThe fold (~2 lines visible in-feed)That's all the feed shows. Earn the expand. Line breaks and white space help. Pattern-interrupt, not corporate.
X / TwitterFirst tweet (thread) or first lineThe text scroll-stopBold claim or numbered promise. Lower context — say the payoff plainly.
NewsletterSubject line earns the open; first line earns the readThe subject lineSubject = curiosity or benefit, not spammy. Never waste line one on "Hey friends."
CarouselSlide 1 text, ≤9 wordsThe thumb-stop on slide 1Must promise a reason to swipe.

When a killer's fix references "the first 2 seconds," translate it to the active platform's deadline. Everything else — clarity, relevance, contrast — applies unchanged.

Show full SKILL.md (580 more words)Show less

Hook shape: 2-3 lines, not always one zinger

The best hooks do clarity + contrast in one line — keep those. But a complete hook is allowed to be 2-3 spoken lines:

  • Line 1: topic clarity
  • Lines 2-3: the contrast / curiosity setup

Don't sacrifice clarity to force a one-liner.

Banned openers

These always get flagged — the wrapper words never survive a rewrite. The only judgment call is the blast radius, and the qualifier decides it: if real substance follows the wrapper ("Story time:" followed by an actual stated stake), only the wrapper dies — delete it, it's pure DELAY cost. If the substance is missing, the whole hook dies:

  • "Let me explain" / "let's talk about" / "let's explore" — throat-clearing (DELAY)
  • "Story time:" / "POV:" without content in the same breath — empty wrapper (DELAY)
  • "Nobody talks about this" / "what no one tells you" without naming the thing — vague (CONFUSION + cliché)
  • "[Company] just launched [thing]" — news report, no angle, no stakes for the viewer (IRRELEVANCE)
  • "The shift happening in [industry]..." — philosophical fog (all four killers at once)
  • A CTA as the opener ("Comment X for...") — CTAs close, never open
  • "Wait till you see this" / "you won't believe" — zero topic clarity (DELAY)

Writing mode

  1. Know the platform — pull its row from the platform table; that sets the unit of attention and the medium (spoken reel vs first-line-before-fold vs title+thumbnail).
  2. Read your own top hooks for that platform — absorb cadence, energy, vocabulary. (If you keep a swipe file of hooks that worked, pull from it.)
  3. Build each variant by stacking 2-3 levers (not picking one template) — a pattern, an angle, and a multiplier. Levers and angles are platform-agnostic; express each stack in the active platform's form. Add the Specificity multiplier by default — concrete/odd numbers, named concepts.
  4. Write each hook through the four-killer checklist below, translating DELAY to the platform's deadline.
  5. Deliver 3 variants by default — an explicit request for a different count overrides this. Whatever the count, every variant uses a DIFFERENT lever stack; label each with the levers it stacks (so you learn the why, not just the what).

Audit mode

First identify the platform (the caller says, or infer from the content — a subject line vs a spoken open vs a first-tweet). Apply the four killers against that platform's deadline. Score each killer — pass or flag with the exact offending words quoted. Then rewrite. Output format:

HOOK AUDIT: "your meal prep is failing you — let me explain why that is"
  Delay:       FLAG — "let me explain why that is" postpones the payoff
  Confusion:   pass
  Irrelevance: pass — "your" framing ✓
  Disinterest: FLAG — no contrast; what's the A vs B?
  Voice:       pass — cadence matches your posts  (or: "unverified — no sample available")
  Rewrite: "Your Sunday meal prep is why you quit by Thursday. The fix isn't more discipline — it's prepping less."

Never flag without quoting the words that triggered it. Never rewrite without preserving your voice (check a sample if unsure).

The checklist (every hook, before it ships)

  • Topic clear in the first 1-2 seconds? (no DELAY)
  • Impossible to misunderstand on one pass? (no CONFUSION)
  • "You/your" framing around a felt pain — or, for I-framed patterns, a you-pivot within the hook? (no IRRELEVANCE — see the I-framed pattern exception)
  • A-vs-B contrast that opens a real question? (no DISINTEREST)
  • Sounds like you, not like a template? (voice check)

All five pass → the hook is working.

Common mistakes

MistakeWhy it fails
Three variants that are one idea rewordedYou get no real choice — vary the PATTERN, not the synonyms
Hook promises what the script doesn't deliverViewers punish bait; retention dies at the reveal
Maximizing shock over believabilityContrast only works inside the viewer's belief range — "this one trick doctors hate" is dead on arrival
Polishing grammar into stiffnessSpoken hooks need spoken rhythm; read it aloud, keep the contractions
Hook for everyoneA hook for everyone stops no one — name the person ("if you've restarted five times this year")

© artemnovitckii, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in viral-hooks of artemnovitckii/content-skills.

Open the folder on GitHubat commit 1c6e909

Compare with similar skills

Viral Hooks 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.

Viral Hooks compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Viral Hooks this skillartemnovitckii/content-skills102—~2.6kAutomated safety check: PassMIT
ShareSerhiiKorniienko/bullshit-detector154—~857Automated safety check: PassMIT
Social Media Pro Maxcriptogus/agent-evolve-network288—~1.6kAutomated safety check: PassCustom licence
Changelog Social RecapFlorianBruniaux/claude-code-ultimate-guide6.1k—~1.8kAutomated safety check: NotesCC-BY-SA-4.0
Voice Buildercharlie947/social-media-skills3.8k—~3.3kAutomated safety check: PassMIT
Humanized Chinese Writing PolisherEthanYoQ/agent-xiaohongshu-workbench154—~1.1kAutomated safety check: PassMIT

Similar skills

  • Share

    SerhiiKorniienko/bullshit-detector

    Turn a BS report (or any analysis result) into ready-to-paste posts for X/Twitter, LinkedIn, Facebook, Reddit, Hacker News, or a newsletter issue — plus a branded image carousel (PNGs + PDF) for…

    154 GitHub stars~857 tokensUpdated 11 days ago
    Writing & ContentAuto-check passed
  • Social Media Pro Max

    criptogus/agent-evolve-network

    State-of-the-art viral content + social design intelligence.

    288 GitHub stars~1.6k tokensUpdated 2 days ago
    Writing & ContentAuto-check passed
  • Changelog Social Recap

    FlorianBruniaux/claude-code-ultimate-guide

    Turns CHANGELOG.md entries for a release or a week into LinkedIn, Twitter/X, newsletter and Slack posts in French and English.

    6.1k GitHub stars~1.8k tokensUpdated today
    Writing & ContentAuto-check: notes
  • Voice Builder

    charlie947/social-media-skills

    Build a personalised voice profile inside a Codex or Claude project from a short interview plus 3 to 5 sample pieces of writing.

    3.8k GitHub stars~3.3k tokensUpdated 26 days ago
    Writing & ContentAuto-check passed
  • Humanized Chinese Writing Polisher

    EthanYoQ/agent-xiaohongshu-workbench

    A skill your agent uses when a user asks to polish, rewrite, humanize, de-AI, localize, or oralize Chinese writing, including short-video scripts, articles, social posts, speeches, newsletters, and…

    154 GitHub stars~1.1k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Content Writer Agent

    mastra-ai/mastra

    Authoring playbook for building agents that draft written content — blog posts, marketing copy, social media posts, newsletters, product descriptions, landing pages, or ad copy.

    29k GitHub stars~1.3k tokensUpdated today
    Writing & ContentAuto-check passed

More from artemnovitckii/content-skills

  • Anti AI Writing

    artemnovitckii/content-skills

    A skill your agent uses when writing or auditing any written content — captions, carousels, newsletters, threads, LinkedIn posts, long-form — and as the FINAL filter on every piece.

    102 GitHub stars~3k tokensUpdated 3 mo ago
    Auto-check passed
  • Dumbify

    artemnovitckii/content-skills

    A skill your agent uses when writing or auditing content that has to be easy to follow — explainer reels, teaching carousels, how-to scripts, any piece that teaches or explains something — or when a…

    102 GitHub stars~1.2k tokensUpdated 3 mo ago
    Auto-check passed
  • Storytelling

    artemnovitckii/content-skills

    A skill your agent uses when writing or auditing talking-head / narrative / "yap" content — reel scripts, video scripts, story-driven posts, any piece where someone talks to camera or tells a story.

    102 GitHub stars~2.6k tokensUpdated 3 mo ago
    Auto-check passed

Questions about Viral Hooks

What does Viral Hooks do?

A skill your agent uses when writing or auditing the opening lines of any content — reel hooks, carousel slide 1, video intros, newsletter subject lines, tweet openers — or when a draft's opener…. Viral Hooks is an agent skill from artemnovitckii/content-skills. Use when writing or auditing the opening lines of any content — reel hooks, carousel slide 1, video intros, newsletter subject lines, tweet openers — or when a draft's opener feels flat, vague, or skippable.

When should I use Viral Hooks?

Viral Hooks fits situations like: auditing the opening lines of any content — reel hooks; carousel slide 1; newsletter subject lines; tweet openers —.

How do I install Viral Hooks in Claude Code?

Run `npx skills add artemnovitckii/content-skills --skill viral-hooks -a claude-code`. Or copy the skill folder (viral-hooks in artemnovitckii/content-skills) into .claude/skills/viral-hooks in your project. Claude Code loads it when a task matches its description.

How do I install Viral Hooks in Codex?

Run `npx skills add artemnovitckii/content-skills --skill viral-hooks -a codex`. Or copy the skill folder (viral-hooks in artemnovitckii/content-skills) into .agents/skills/viral-hooks in your project. Codex loads it when a task matches its description.

Can I use Viral Hooks in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add artemnovitckii/content-skills --skill viral-hooks -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/viral-hooks, .gemini/skills/viral-hooks, .github/skills/viral-hooks and .opencode/skills/viral-hooks in your project.

What does Viral Hooks need to run?

SKILL.md names no scripts, command-line tools or credentials: Viral Hooks is instructions for the agent only.

Does Viral Hooks access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Viral Hooks safe to install?

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. Review the folder before installing.

What licence does Viral Hooks use?

Viral Hooks is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Viral Hooks use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Viral Hooks?

Skills that share tags, products or a category with Viral Hooks: Share (SerhiiKorniienko/bullshit-detector, 154 stars), Social Media Pro Max (criptogus/agent-evolve-network, 288 stars), Changelog Social Recap (FlorianBruniaux/claude-code-ultimate-guide, 6.1k stars) and Voice Builder (charlie947/social-media-skills, 3.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Viral Hooks?

artemnovitckii (a GitHub user) maintains it in artemnovitckii/content-skills, which has 102 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on June 20, 2026.

Source: artemnovitckii/content-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.