New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Script the first 1-3 second TikTok hook: the spoken line

TikTok Hook Scripter

by sergebulaev · MIT license · ★ 50 on GitHub · updated Sep 17

TikTok Hook Scripter cover

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…

---
name: tt-hook-scripter
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)."
---

# 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

Overview

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.

Manual install (npx, ZIP)
Claude Codenpx skills add sergebulaev/tiktok-skills --skill tt-hook-scripter -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/sergebulaev/tiktok-skills/tar.gz/edffc4f7b663 \ | tar -xz -C ~/.claude/skills --strip-components=4 tiktok-skills-edffc4f7b663/.codex-marketplace/tiktok-skills/skills/tt-hook-scripter
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/803234c5c33f8f8f0e2c/tt-hook-scripter.zip" -OutFile "$env:TEMP\tt-hook-scripter.zip"; Expand-Archive "$env:TEMP\tt-hook-scripter.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md6.4 KB
  • references/1 file · 3.2 KB
Read the files here
sergebulaev/edffc4f2 files
Shared references3SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
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.

  1. Gather inputs. The video idea, the niche/audience, the one promise the video delivers, and the goal (completion / saves / comments / shares).
  2. 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.
  3. 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.
  4. Write the loop-close note. How the last frame should land so a rewatch feels natural (a rewatch is almost a second view).
  5. 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.
  6. Approval card. Show: formula, the three layers, primary goal, the loop-close note, and an estimated hook duration.
  7. 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
  • 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-scripter
3description: "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 
8Write the first 1 to 3 seconds of a TikTok video: the spoken line, the on-screen
9text, and the opening visual, all firing at once. This is the single biggest
10lever on the whole platform. TikTok's ranker runs on completion rate, and a
11viewer decides to stay or swipe before second three. If the hook does not win,
12nothing 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 
23For 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 
31It does not write the caption (hand to `tt-caption-writer`) or the full body
32script beat-by-beat unless asked; it locks the open, which is where retention is
33won 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 
50Full 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 
651. **Gather inputs.** The video idea, the niche/audience, the one promise the
66 video delivers, and the goal (completion / saves / comments / shares).
672. **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.
703. **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.
814. **Write the loop-close note.** How the last frame should land so a rewatch
82 feels natural (a rewatch is almost a second view).
835. **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.
876. **Approval card.** Show: formula, the three layers, primary goal, the
88 loop-close note, and an estimated hook duration.
897. **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 
94Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific
95rules:
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 
View all files on GitHub →

Details

Updated
Sep 17, 2026
License
MIT
Stars on the repo
★ 50
Checked
Source
sergebulaev/tiktok-skills ↗
Creator
sergebulaev · 77 listings
View creator

Similar skills

See all →
SkillTurn a long video into short vertical clips that each standLong video to shortsopenfilm/openfilm · by openfilmTurn a long video (a talk, podcast, interview, lesson, livestream or vlog) into short vertical clips that each stand alone and hold attention from the first second. Use when the person gives a long recording and asks for clips, shorts, highlights or cut-downs for Douyin, Reels, Shorts or similar (长视频转短视频, 切片, 剪短视频, 高光, 拆条).★ 975 GitHub starsSkillReplace a video's cold open with a 5-second hook that statesAdd opening hookclueso-ai/skills · by clueso-aiReplace a video's cold open with a 5-second hook that states the payoff or problem up front, before the walkthrough starts. Use when the user says "add a hook", "the opening is boring", "it takes too long to get to the point", "give it a stronger start", "lead with the payoff", or shares a video that opens straight into a UI with no reason to keep watching.★ 26 GitHub starsSkillGenerate psychologically-driven hooks for paid social adsHook Writing EngineMotion-Creative/motion-creative-plugin · by Motion-CreativeGenerate psychologically-driven hooks for paid social ads. Uses Schwartz's 5 awareness stages and 8 psychological triggers, grounded in the workspace's actual top-performing hooks from Motion. Activate when users ask to "write hooks", "generate hooks", hook ideas", "scroll-stopping openings", "attention grabbers", or need opening lines for ads. Pairs with write-hooks/references for tactic and template libraries.★ 22 GitHub starsSkillWrite authentic UGC ad scripts that sound like real peopleUGC Script WriterMotion-Creative/motion-creative-plugin · by Motion-CreativeWrite authentic UGC (user-generated content) ad scripts that sound like real people sharing real experiences. Produces talking points — not word-for-word scripts — with a scripted hook and soft CTA. Grounded in Motion workspace data for hooks that convert. Activate when users ask for "UGC script", "creator script", "influencer brief", talking points for a creator", "authentic ad script", or need scripts for creator-style paid social ads.★ 22 GitHub starsPromptGenerate user-generated content style TikTok scriptsUgc style tiktok script generator for gen z skincaref/prompts.chat · by Mondesir LouvenskyGenerate user-generated content style TikTok scripts for a new Gen Z skincare product as a Marketing Strategist.New listingPrompt资深卖货短视频脚本创作者f/prompts.chat · by jd5zc9w2q7-prog担任资深卖货短视频脚本创作者,帮助用户撰写吸引人的短视频脚本以促进产品销售。New listing

More from sergebulaev

SkillBy density per paragraph, not per wordAI Tells — Complete Blacklist (V3, 2026-09)sergebulaev/linkedin-skills · by sergebulaevScored the way readers read: by density per paragraph, not per word. One marker in a paragraph is English. Three is a signature. The…★ 3.1k GitHub starsSkillFifteen rules from the linkedin-humanizer packageAI-Tell Rules: Tier-Classified Referencesergebulaev/linkedin-skills · by sergebulaevFifteen rules from the linkedin-humanizer package, sorted by what kind of evidence each one actually represents.★ 3.1k GitHub starsSkillPattern data from MagicPost LinkedIn analysisEmoji Patterns — AI vs. Humansergebulaev/linkedin-skills · by sergebulaevPattern data from MagicPost LinkedIn analysis (Feb 2026, viral post with 220 engagement).★ 3.1k GitHub starsSkillRead your Instagram niche and profile from real dataInstagram Audience Insightssergebulaev/instagram-skills · by sergebulaevRead your Instagram niche and profile from real data via Apify, no login. Scan a hashtag for the posts traveling now (likes, comments, owner) to see the format and hook that works. Pull profile stats for any handle, yours or a competitor's: followers, posts, bio, category. Instagram hides who liked or commented on other accounts, so this is discovery plus profiles, not engagers. Triggers on "what works in my niche", "scan the hashtag", "competitor stats". Not for writing captions (use ig-caption-writer).★ 138 GitHub starsSkillDraft an Instagram caption with the hook in the first 125Instagram Caption Writersergebulaev/instagram-skills · by sergebulaevDraft an Instagram caption with the hook in the first 125 characters, a skimmable body, and one clear CTA, using a 2026 hook formula chosen by goal (saves, shares, comments, follows). Runs the humanizer pass and, on approval, publishes with the image or video you supply via the Publora media flow. Use to caption a single image or a Reel. Not for slide-by-slide carousels (use ig-carousel-planner) or auditing a draft (use ig-humanizer --mode audit).★ 138 GitHub starsSkillPlan an Instagram carousel slide by slide, up to 10 slidesInstagram Carousel Plannersergebulaev/instagram-skills · by sergebulaevPlan an Instagram carousel slide by slide, up to 10 slides, with a hook slide that opens a loop, value slides that front-load the payoff, and a payoff slide that earns the save and follow. Picks a 2026 carousel formula (listicle, before/after, myth-buster, framework) by goal (saves, shares, follows), drafts each slide's text plus the caption, then publishes the images you supply via Publora. Use to structure a multi-slide carousel. Not for single-image captions (use ig-caption-writer).★ 138 GitHub stars