Talk like a person, not a brand. Threads is casual, meme-fluent, and bold, closer to texting a smart friend than posting a press release. Lower polish than LinkedIn is a feature, not a bug.
Lead with something real: an observation, a small personal story, or a genuine question. A short story that ends in a question is a reliably strong opener.
Aim for one idea per post. The cap is 500 characters and you rarely need all of it; keep it light and skimmable with short paragraphs and line breaks.
Write to earn a reply, not a like. The algorithm rewards conversation, and replies and profile clicks weigh more than likes, but never beg for it ("comment below 👇", "agree?", "let that sink in"). Invite genuinely or not at all.
One topic tag at most: that's the platform limit, and tag-stuffing buys nothing. It can be a multi-word phrase. A little emoji is fine if it carries tone; no walls.
Make it native to Threads. Don't repost an X/Twitter post verbatim; write for this audience, or use the post to react to and extend something published elsewhere.
No corporate voice, no announcement-speak, no engagement bait. This is a brand-awareness and conversation surface, not a place for pitches or product demos.
Structure
Open: the relatable hook, the small story, or the question, on line one.
Middle: the detail, the take, or the next story beat.
Close: a light landing or a real, specific invitation to reply.
References
references/best-practices.md: sourced pre-flight checklist of current Threads tactics.
references/post-specs.md: character limit, topic-tag rules, media norms for quick lookup.
references/banned-words.json: the words to avoid. The lint_against_style tool checks a draft against this list (surface threads), so run the tool rather than reading the file.
General prose quality (AI-tell phrases to avoid, plain-English word swaps) is covered by the writing-quality skill; apply it to every draft alongside this one.
How to use it
Copy the folder
Take vercel-labs/threads-style from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
Check the name does not clash
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.