TikTok Hook Scripter
Script the first 1-3 second TikTok hook: the spoken line, the on-screen text, and the opening visual firing at once so the viewer cannot swipe.
How to use it
- Hit Copy the whole skill.
- Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
ChatGPT: make a Project and paste it into Instructions.
Neither? Paste it at the top of a new chat — it works for that chat. - Describe your job in plain words. The AI follows the skill from there.
npx degit sergebulaev/tiktok-skills/.codex-marketplace/tiktok-skills/skills/tt-hook-scripter#main ~/.claude/skills/tt-hook-scripterFor one project only, change the path to .claude/skills/tt-hook-scripter.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text128 lines
TikTok Hook Scripter
Write the first 1 to 3 seconds of a TikTok video: the spoken line, the on-screen text, and the opening visual, all firing at once. This is the single biggest lever on the whole platform. TikTok's ranker runs on completion rate, and a viewer decides to stay or swipe before second three. If the hook does not win, nothing downstream gets watched.
When to use
- User has a video idea and needs the opening to stop the scroll
- User's videos "die in the first second" and they want a stronger open
- User wants to pick a proven hook shape and fill it with their own angle
- Before filming, to lock the spoken line and the on-screen text
What this skill produces
For one video idea, a ready-to-film hook block:
- Spoken line (what you say to camera in the first 1-3 seconds)
- On-screen text (the muted-first promise, 3 to 7 words)
- Opening visual (what is in frame one: result, tension, or interrupt)
- The formula used and its primary goal
- A loop-close note (how to end the video so it restarts for a rewatch)
It does not write the caption (hand to tt-caption-writer) or the full body
script beat-by-beat unless asked; it locks the open, which is where retention is
won or lost.
Formulas this skill uses
| Code | Formula | Primary goal | Best for |
|---|---|---|---|
| T1 | Cold-Open Result | completion | show the finished outcome first, promise the how |
| T2 | Pattern Interrupt | completion | break the expected frame so the thumb stops |
| T3 | Specific-Number Reveal | saves | one odd, concrete number that reframes the topic |
| T4 | Open Loop Question | comments | ask the exact question the video answers |
| T5 | Relatable Call-Out | shares | a hyper-specific shared moment worth sending |
| T6 | Bold Claim, No Hedge | comments | a flat contrarian claim the comments will argue |
| T7 | Listicle Promise | saves | a numbered payoff with on-screen counters |
| T8 | Story In Medias Res | completion | drop into the peak of a real story |
| T9 | Tutorial Cold Start | saves | start step one with the result previewed |
| T10 | Trend-Ride With A Twist | shares | a trending sound bent to your niche |
Full skeletons (three layers each) in ../../references/hook-formulas.md.
Pick by goal first
| Goal | Reach for |
|---|---|
| Completion | T1, T2, T8 |
| Saves | T3, T7, T9 |
| Comments | T4, T6 |
| Shares | T5, T10 |
Steps
Voice profile first (all drafts). If ../../references/voice-profile.md has filled: yes, load it and match the user's voice fingerprint, hard rules, and CTA/link style throughout. If it is not filled, mention once that tt-humanizer --mode profile can learn their voice from a few posts, then proceed with the generic voice rules.
- Gather inputs. The video idea, the niche/audience, the one promise the video delivers, and the goal (completion / saves / comments / shares).
- Pick the formula. Use the goal table to shortlist, then suggest 2-3 that
also fit the idea and let the user choose. For a trend ride (T10), hand the
sound-fit question to
tt-trend-mapperfirst. - Write all three layers. Spoken line, on-screen text, opening visual. The
spoken line and the on-screen text MUST differ (muted-first viewing). Respect
the 2026 rules:
- The result or the tension is in frame one. No greeting, no logo, no zoom.
- One specific number where the claim allows it.
- Say it the way a person talks; read it out loud.
- No AI vocabulary cluster (one marker is a slip; three in the hook is a
script). Em dashes:
..for a breath in the spoken line, at most one on the on-screen card. - No sincerity opener ("not gonna lie", "real talk") and no "Here's what nobody tells you" reveal bridge; say the thing.
- Write the loop-close note. How the last frame should land so a rewatch feels natural (a rewatch is almost a second view).
- Humanizer pass. Run the spoken line through the
tt-humanizerV3 rules to strip script tells before it ever reaches camera: AI vocab by density, stacked triads, reveal bridges, sincerity openers, written-not- spoken phrasing. Make it sayable; never insert a punch line for rhythm. - Approval card. Show: formula, the three layers, primary goal, the loop-close note, and an estimated hook duration.
- Hand off. Offer
tt-caption-writerfor the caption and settings, andtt-content-plannerif they are batching multiple hooks.
Hard rules
Global voice rules: see root SKILL.md Voice rules. Additional skill-specific
rules:
- The hook is the first 1-3 seconds of the video, not the caption. Never let the caption do the hook's job.
- The spoken line and the on-screen text are two different jobs. Do not repeat the same words in both.
- Frame one shows something (result, tension, interrupt). No dead air, no intro.
- One specific number in the hook beats any adjective.
- The hook opens the loop; it never answers itself.
Anti-patterns (skill will refuse)
- "Hey guys" / "welcome back" / "in this video" openers.
- A logo animation or slow zoom before the words start.
- Reading the caption aloud as the hook.
- Promising a result the video never shows on screen.
- ALL CAPS spoken scripts (you cannot shout for 30 seconds).
- More than one em dash, or an AI vocabulary cluster, in the on-screen text.
- A staged punch line or "The result?" reveal inserted for rhythm.
- Five stacked calls to action.
Resources
../../references/hook-formulas.md- all 10 TikTok hook formulas (three layers each)../../references/algorithm-heuristics.md- why completion and the first second rule everythingreferences/hook-anatomy.md- the three-layer hook teardown and timing budget
Related skills
tt-caption-writer- the caption, TikTok settings, and hashtagstt-trend-mapper- check sound fit before a trend-ride hook (T10)tt-humanizer- scrub the spoken script so it sounds human on cameratt-content-planner- batch multiple hooks for the week
| 1 | |
| 2 | name tt-hook-scripter |
| 3 | description "Script the first 1-3 second TikTok hook: the spoken line, the on-screen text, and the opening visual firing at once so the viewer cannot swipe. Picks a 2026 hook formula (cold-open result, pattern interrupt, number reveal, open-loop question, relatable call-out, story) by goal of completion, saves, comments, or shares. The single biggest retention lever on TikTok. Use to script a hook from a video idea. Not for the caption (use tt-caption-writer) or scrubbing a script (use tt-humanizer)." |
| 4 | |
| 5 | |
| 6 | # TikTok Hook Scripter |
| 7 | |
| 8 | Write the first 1 to 3 seconds of a TikTok video: the spoken line, the on-screen |
| 9 | text, and the opening visual, all firing at once. This is the single biggest |
| 10 | lever on the whole platform. TikTok's ranker runs on completion rate, and a |
| 11 | viewer decides to stay or swipe before second three. If the hook does not win, |
| 12 | nothing downstream gets watched. |
| 13 | |
| 14 | ## When to use |
| 15 | |
| 16 | User has a video idea and needs the opening to stop the scroll |
| 17 | User's videos "die in the first second" and they want a stronger open |
| 18 | User wants to pick a proven hook shape and fill it with their own angle |
| 19 | Before filming, to lock the spoken line and the on-screen text |
| 20 | |
| 21 | ## What this skill produces |
| 22 | |
| 23 | For one video idea, a ready-to-film hook block: |
| 24 | |
| 25 | **Spoken line** (what you say to camera in the first 1-3 seconds) |
| 26 | **On-screen text** (the muted-first promise, 3 to 7 words) |
| 27 | **Opening visual** (what is in frame one: result, tension, or interrupt) |
| 28 | **The formula used** and its primary goal |
| 29 | **A loop-close note** (how to end the video so it restarts for a rewatch) |
| 30 | |
| 31 | It does not write the caption (hand to `tt-caption-writer`) or the full body |
| 32 | script beat-by-beat unless asked; it locks the open, which is where retention is |
| 33 | won or lost. |
| 34 | |
| 35 | ## Formulas this skill uses |
| 36 | |
| 37 | | Code | Formula | Primary goal | Best for | |
| 38 | |---|---|---|---| |
| 39 | | T1 | Cold-Open Result | completion | show the finished outcome first, promise the how | |
| 40 | | T2 | Pattern Interrupt | completion | break the expected frame so the thumb stops | |
| 41 | | T3 | Specific-Number Reveal | saves | one odd, concrete number that reframes the topic | |
| 42 | | T4 | Open Loop Question | comments | ask the exact question the video answers | |
| 43 | | T5 | Relatable Call-Out | shares | a hyper-specific shared moment worth sending | |
| 44 | | T6 | Bold Claim, No Hedge | comments | a flat contrarian claim the comments will argue | |
| 45 | | T7 | Listicle Promise | saves | a numbered payoff with on-screen counters | |
| 46 | | T8 | Story In Medias Res | completion | drop into the peak of a real story | |
| 47 | | T9 | Tutorial Cold Start | saves | start step one with the result previewed | |
| 48 | | T10 | Trend-Ride With A Twist | shares | a trending sound bent to your niche | |
| 49 | |
| 50 | Full skeletons (three layers each) in `../../references/hook-formulas.md`. |
| 51 | |
| 52 | ### Pick by goal first |
| 53 | |
| 54 | | Goal | Reach for | |
| 55 | |---|---| |
| 56 | | Completion | T1, T2, T8 | |
| 57 | | Saves | T3, T7, T9 | |
| 58 | | Comments | T4, T6 | |
| 59 | | Shares | T5, T10 | |
| 60 | |
| 61 | ## Steps |
| 62 | |
| 63 | **Voice profile first (all drafts).** If `../../references/voice-profile.md` has `filled: yes`, load it and match the user's voice fingerprint, hard rules, and CTA/link style throughout. If it is not filled, mention once that `tt-humanizer --mode profile` can learn their voice from a few posts, then proceed with the generic voice rules. |
| 64 | |
| 65 | **Gather inputs.** The video idea, the niche/audience, the one promise the |
| 66 | video delivers, and the goal (completion / saves / comments / shares). |
| 67 | **Pick the formula.** Use the goal table to shortlist, then suggest 2-3 that |
| 68 | also fit the idea and let the user choose. For a trend ride (T10), hand the |
| 69 | sound-fit question to `tt-trend-mapper` first. |
| 70 | **Write all three layers.** Spoken line, on-screen text, opening visual. The |
| 71 | spoken line and the on-screen text MUST differ (muted-first viewing). Respect |
| 72 | the 2026 rules: |
| 73 | The result or the tension is in frame one. No greeting, no logo, no zoom. |
| 74 | One specific number where the claim allows it. |
| 75 | Say it the way a person talks; read it out loud. |
| 76 | No AI vocabulary cluster (one marker is a slip; three in the hook is a |
| 77 | script). Em dashes: `..` for a breath in the spoken line, at most one on |
| 78 | the on-screen card. |
| 79 | No sincerity opener ("not gonna lie", "real talk") and no "Here's what |
| 80 | nobody tells you" reveal bridge; say the thing. |
| 81 | **Write the loop-close note.** How the last frame should land so a rewatch |
| 82 | feels natural (a rewatch is almost a second view). |
| 83 | **Humanizer pass.** Run the spoken line through the `tt-humanizer` V3 |
| 84 | rules to strip script tells before it ever reaches camera: AI vocab by |
| 85 | density, stacked triads, reveal bridges, sincerity openers, written-not- |
| 86 | spoken phrasing. Make it sayable; never insert a punch line for rhythm. |
| 87 | **Approval card.** Show: formula, the three layers, primary goal, the |
| 88 | loop-close note, and an estimated hook duration. |
| 89 | **Hand off.** Offer `tt-caption-writer` for the caption and settings, and |
| 90 | `tt-content-planner` if they are batching multiple hooks. |
| 91 | |
| 92 | ## Hard rules |
| 93 | |
| 94 | Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific |
| 95 | rules: |
| 96 | |
| 97 | The hook is the first 1-3 seconds of the **video**, not the caption. Never let |
| 98 | the caption do the hook's job. |
| 99 | The spoken line and the on-screen text are two different jobs. Do not repeat the |
| 100 | same words in both. |
| 101 | Frame one shows something (result, tension, interrupt). No dead air, no intro. |
| 102 | One specific number in the hook beats any adjective. |
| 103 | The hook opens the loop; it never answers itself. |
| 104 | |
| 105 | ## Anti-patterns (skill will refuse) |
| 106 | |
| 107 | "Hey guys" / "welcome back" / "in this video" openers. |
| 108 | A logo animation or slow zoom before the words start. |
| 109 | Reading the caption aloud as the hook. |
| 110 | Promising a result the video never shows on screen. |
| 111 | ALL CAPS spoken scripts (you cannot shout for 30 seconds). |
| 112 | More than one em dash, or an AI vocabulary cluster, in the on-screen text. |
| 113 | A staged punch line or "The result?" reveal inserted for rhythm. |
| 114 | Five stacked calls to action. |
| 115 | |
| 116 | ## Resources |
| 117 | |
| 118 | `../../references/hook-formulas.md` - all 10 TikTok hook formulas (three layers each) |
| 119 | `../../references/algorithm-heuristics.md` - why completion and the first second rule everything |
| 120 | `references/hook-anatomy.md` - the three-layer hook teardown and timing budget |
| 121 | |
| 122 | ## Related skills |
| 123 | |
| 124 | `tt-caption-writer` - the caption, TikTok settings, and hashtags |
| 125 | `tt-trend-mapper` - check sound fit before a trend-ride hook (T10) |
| 126 | `tt-humanizer` - scrub the spoken script so it sounds human on camera |
| 127 | `tt-content-planner` - batch multiple hooks for the week |
| 128 |