Viral Hooks logo

Viral Hooks

Community
artemnovitckii
viral-hooks

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.

Overview

Publisherartemnovitckii
Repositorycontent-skills
Skill nameviral-hooks
Stars
118
Forks
25
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by artemnovitckii on GitHub. Read the source before you install it.

Installation

Install the Viral Hooks AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/artemnovitckii/content-skills/tree/master/viral-hooks
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/artemnovitckii/content-skills.git /tmp/content-skills
mkdir -p .claude/skills
cp -r /tmp/content-skills/viral-hooks .claude/skills/viral-hooks
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Viral Hooks in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Viral Hooks on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Viral Hooks is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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.

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")

Frequently asked questions

What does the Viral Hooks AI skill do?

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.

Why use Viral Hooks on TypingMind?

Because you install it once and use it with any model. Viral Hooks is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Viral Hooks in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/artemnovitckii/content-skills/tree/master/viral-hooks. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Viral Hooks?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Viral Hooks?

As many as you like. As long as a model supports skills, you can use Viral Hooks with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Viral Hooks AI skill free?

Yes. It is published on GitHub by artemnovitckii under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇