thread-writer · social-media-skills — Claude Code skill: what it does, how to install
Creates multi-post narrative threads for X and Threads around a single core idea. Useful when a story or case study needs several beats to deliver its payoff.
npx skills add social-media-skills/skills --skill thread-writer -a claude-codeWhat thread-writer does
The skill formats long ideas into chained posts designed for retention. It starts by reading tone and context rules from brand-profile.md and voice.md. For the opening post, it relies on hook-writer principles to stop readers from scrolling while promising a clear payoff.
Every thread follows a strict spine. The skill chooses an architecture like a breakdown, how-to, or story, giving each post one beat. If a concept fits comfortably inside a single message, the assistant recommends publishing one punchy post rather than splitting text arbitrarily.
Scheduling requires attention. Services like WoopSocial publish only standalone posts, so multi-post chains must be published directly through native platform tools.
What it helps with
- structure complex insights into connected multi-post chains
- craft opening hooks that stop scrolling and promise a payoff
- prune filler posts that break reader momentum
- format thread segments within platform-specific character limits
Example prompts for the agent
- Turn this postmortem notes into an engaging X thread
- Write a 5-part how-to thread for Threads about database indexing
- Draft an argument thread dissecting common frontend refactoring traps
How to install thread-writer
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill thread-writer -a claude-code2Manually: put the files in place
~/.claude/skills/thread-writer/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/thread-writer/
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill thread-writer -a codex2Manually: put the files in place
.agents/skills/thread-writer/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill thread-writer -a cursor2Manually: put the files in place
.cursor/skills/thread-writer/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install social-media-skills/skills thread-writer2Manually: put the files in place
.github/skills/thread-writer/SKILL.md1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill thread-writer -a gemini-cli2Platform CLI
gemini skills install https://github.com/social-media-skills/skills --path skills/thread-writerManually: put the files in place
.devin/skills/thread-writer/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill thread-writer -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about thread-writer
How do I install thread-writer in Claude Code?
Run npx skills add social-media-skills/skills --skill thread-writer -a claude-code. The skill configuration installs to ~/.claude/skills/thread-writer/SKILL.md.
What does the thread-writer skill do?
It guides the assistant through planning, structuring, and drafting connected social media threads. It checks whether a thread is needed, crafts an opening hook, and closes with a single call to action.
What brand files does thread-writer expect?
The skill reads brand-profile.md and voice.md before drafting. If you want to post a single Meta Threads update instead of a multi-post chain, use threads-post instead.
Source text
SKILL.md · MIT
---
name: thread-writer
description: >-
Use to write a thread — a connected sequence of posts on X/Twitter or Threads that tells one
story or makes one argument across multiple posts. Run when the user says "write a thread,"
"turn this into a thread," "X thread," "Twitter thread," "thread about X," or has a multi-beat
idea that won't fit one post. Reads brand-profile and voice first, uses hook-writer for the
opening post (which must hook AND promise the payoff), builds one cohesive idea where every
post earns the next, and lands a close with one CTA. Knows when a single post beats a thread.
Naming trap: "write a thread" means this multi-post chain; "post on/to Threads" means a single
post on Meta's Threads app — use threads-post for that. For a single caption use caption-writer;
for just the opening hook use hook-writer.
metadata:
version: 1.0.0
license: MIT
---
# Thread Writer
A thread is a retention machine in text: a sequence of posts where each one has to earn the next,
or the reader drops off. Done well it's one of the best formats for depth, saves, and follower
growth on X. Done lazily — a blog chopped into arbitrary chunks — it's worse than a single post.
Three principles run through it:
1. **The opener is the whole game.** Post 1 must *hook* (stop the scroll) **and** *promise the
payoff* (give a reason to read all the way down). It's also the post that gets reshared, so
the thread's reach lives or dies here.
2. **One idea per thread, one idea per post.** A thread makes a single cohesive point; each post
advances it by exactly one beat. Cramming kills it.
3. **Every post earns the next.** Momentum is the metric. A post that doesn't pull the reader
forward — or doesn't deserve its place — gets cut.
## Step 0 — Read the foundation first
Load `brand-profile.md` and `voice.md`. Voice carries across every post; the X/Threads register is
usually more conversational (use the voice tone-map). Carry guardrails throughout.
## Step 1 — Lock one idea, the payoff, and check it should be a thread
- **One idea** — the single point or story. If there are several, pick one or plan separate
threads.
- **The payoff** — what the reader gets by the end (the lesson, the list, the result).
- **Thread or single post?** Thread *only* if the idea genuinely needs multiple beats. If it fits
one post, a single punchy post almost always beats a forced thread. See
`references/platform-and-when.md`.
## Step 2 — Write the opener (hook + promise)
Use `hook-writer` for post 1. It must do two jobs at once: hook with a real mechanism, and promise
the payoff ("here's how we did it," "7 lessons," "the story of how it broke"). The opener must
also stand alone as a strong post, since it's what gets reshared. No slow wind-up. See
`references/post-craft.md`.
## Step 3 — Architect the thread
Pick the structure that fits the idea — listicle, story, argument, how-to, or breakdown — and
outline the **spine**: the opener's promise and the ordered posts that deliver it. The spine is
what makes a thread cohesive instead of a chopped article. One idea per post. See
`references/architecture.md`.
## Step 4 — Write the body posts
Each post: front-load the point, deliver one beat, stay within the platform's limit, and **pull
forward** to the next (a mini-hook, a numbered step, "but here's the thing"). Cut any post that's
filler or throat-clearing. Keep every post in the brand voice. See `references/post-craft.md`.
## Step 5 — Land the close and one CTA
The final post delivers/summarizes the payoff, then makes **one** ask — matched to the goal and
in voice. On X, the native growth move is asking people to reshare the opener ("If this was
useful, RT the first post") and/or follow. One CTA only; a link, if any, goes here or in a reply.
## Step 6 — Format for the platform
Apply X vs Threads mechanics (limits, numbering, links, hashtags) from
`references/platform-and-when.md`. Number posts where it aids orientation; never split mid-thought
awkwardly; use line breaks within posts for readability.
## Quality bar — self-check
- Does the **opener hook AND promise**, and stand alone as a reshareable post?
- Is it **one idea**, with a clear spine — not a chopped article?
- Does **every post earn the next** (momentum, no filler)?
- Does each post **front-load the point** and respect the platform limit?
- Does the **close land the payoff** with exactly **one** CTA?
- Is it in the **brand voice**, at the right register?
- Should this even be a thread — or is a single post stronger?
If any post doesn't pull the reader forward, cut or rewrite it before delivering.
## Edge cases
- **Should be a single post** → say so and write the strong single post instead of padding a
thread.
- **Multiple ideas** → one idea per thread; propose a series.
- **Chopped long-form** (a blog "made into a thread" by splitting) → don't. Atomize the idea and
rebuild it as a native thread (see `cross-platform-repurposing` for the source→thread flow).
- **Threads (Meta) vs X** → adapt: Threads is more casual, less thread-culture, 500/post; X has
strong thread culture and the reshare-opener mechanic. A *single* conversational Threads post →
`threads-post`.
- **No genuine payoff** → if the idea has no real takeaway, it's not a thread; sharpen the idea
first.
- **Sensitive/regulated** → carry compliance guardrails into every post; no overstated claims.
## Related skills
- `brand-profile`, `voice-builder` — voice + register + guardrails.
- `hook-writer` — the opener (and re-hooks).
- `caption-writer` — single posts/captions; `threads-post` — a single Meta Threads post (not a
chain); `cross-platform-repurposing` — turn long-form into a thread.
- `scheduling-and-queue` — schedule via WoopSocial. Note: WoopSocial publishes **single posts only**
(no native multi-post chain), so schedule the opener and post the chain natively/manually.
## References
- `references/architecture.md` — thread structures, the spine, one-idea-per-post, length.
- `references/post-craft.md` — the opener formula, post-as-unit, transitions, the close + CTA.
- `references/platform-and-when.md` — X vs Threads mechanics, and when NOT to thread.
- `references/examples.md` — full worked threads (listicle and story), on-voice.
© social-media-skills · MIT · social-media-skills/skills
Similar skills
Everything for Marketing and content →thread-writer by other authors comes first.