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-mapper first.
- 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-humanizer V3
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-writer for the caption and settings, and
tt-content-planner if 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 everything
references/hook-anatomy.md - the three-layer hook teardown and timing budget
Related skills
tt-caption-writer - the caption, TikTok settings, and hashtags
tt-trend-mapper - check sound fit before a trend-ride hook (T10)
tt-humanizer - scrub the spoken script so it sounds human on camera
tt-content-planner - batch multiple hooks for the week
1---2name: tt-hook-scripter3description: 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---56# TikTok Hook Scripter78Write the first 1 to 3 seconds of a TikTok video: the spoken line, the on-screen9text, and the opening visual, all firing at once. This is the single biggest10lever on the whole platform. TikTok's ranker runs on completion rate, and a11viewer decides to stay or swipe before second three. If the hook does not win,12nothing downstream gets watched.1314## When to use1516- User has a video idea and needs the opening to stop the scroll17- User's videos "die in the first second" and they want a stronger open18- User wants to pick a proven hook shape and fill it with their own angle19- Before filming, to lock the spoken line and the on-screen text2021## What this skill produces2223For one video idea, a ready-to-film hook block:2425- **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 goal29- **A loop-close note** (how to end the video so it restarts for a rewatch)3031It does not write the caption (hand to `tt-caption-writer`) or the full body32script beat-by-beat unless asked; it locks the open, which is where retention is33won or lost.3435## Formulas this skill uses3637| 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 |4950Full skeletons (three layers each) in `../../references/hook-formulas.md`.5152### Pick by goal first5354| Goal | Reach for |55|---|---|56| Completion | T1, T2, T8 |57| Saves | T3, T7, T9 |58| Comments | T4, T6 |59| Shares | T5, T10 |6061## Steps6263**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.64651. **Gather inputs.** The video idea, the niche/audience, the one promise the66 video delivers, and the goal (completion / saves / comments / shares).672. **Pick the formula.** Use the goal table to shortlist, then suggest 2-3 that68 also fit the idea and let the user choose. For a trend ride (T10), hand the69 sound-fit question to `tt-trend-mapper` first.703. **Write all three layers.** Spoken line, on-screen text, opening visual. The71 spoken line and the on-screen text MUST differ (muted-first viewing). Respect72 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 a77 script). Em dashes: `..` for a breath in the spoken line, at most one on78 the on-screen card.79 - No sincerity opener ("not gonna lie", "real talk") and no "Here's what80 nobody tells you" reveal bridge; say the thing.814. **Write the loop-close note.** How the last frame should land so a rewatch82 feels natural (a rewatch is almost a second view).835. **Humanizer pass.** Run the spoken line through the `tt-humanizer` V384 rules to strip script tells before it ever reaches camera: AI vocab by85 density, stacked triads, reveal bridges, sincerity openers, written-not-86 spoken phrasing. Make it sayable; never insert a punch line for rhythm.876. **Approval card.** Show: formula, the three layers, primary goal, the88 loop-close note, and an estimated hook duration.897. **Hand off.** Offer `tt-caption-writer` for the caption and settings, and90 `tt-content-planner` if they are batching multiple hooks.9192## Hard rules9394Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific95rules:9697- The hook is the first 1-3 seconds of the **video**, not the caption. Never let98 the caption do the hook's job.99- The spoken line and the on-screen text are two different jobs. Do not repeat the100 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.104105## Anti-patterns (skill will refuse)106107- "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.115116## Resources117118- `../../references/hook-formulas.md` - all 10 TikTok hook formulas (three layers each)119- `../../references/algorithm-heuristics.md` - why completion and the first second rule everything120- `references/hook-anatomy.md` - the three-layer hook teardown and timing budget121122## Related skills123124- `tt-caption-writer` - the caption, TikTok settings, and hashtags125- `tt-trend-mapper` - check sound fit before a trend-ride hook (T10)126- `tt-humanizer` - scrub the spoken script so it sounds human on camera127- `tt-content-planner` - batch multiple hooks for the week