threads-post — Claude Code skill: write and publish Threads posts
Writes a single Threads post built to earn replies, then hands it to WoopSocial to publish. Useful if you run a Threads account and want conversation, not likes.
npx skills add social-media-skills/skills --skill threads-post -a claude-codeWhat threads-post does
This skill handles the format, not the publishing. The agent drafts text up to 500 characters, one topic tag, media direction and reply angles; WoopSocial schedules or publishes the single post. The reasoning: on Threads replies outweigh likes, and conversation depth plus velocity in the first 30–90 minutes drive distribution. So the post is written as a conversation starter — a question, a hot take, an opinion.
The REPLY framework runs underneath: reason to reply, engagement velocity first, personality plus niche, light media with the link inline, and you reply more than you post. Before writing, the skill reads brand-profile and goals-and-kpis. Skip those and you will have to state the voice and the goal out loud. Links go in the text itself; there is no separate link field.
Know the limits up front. WoopSocial publishes one post — no multi-post chain, no polls, voice or GIF, since those stay native. There is no reply surface either, so the replying that wins reach is human work, usually through community-management. Editing is not supported: an edit means delete and recreate, and only while the post is NOT_STARTED.
What it helps with
- write a Threads post that pulls replies instead of scrolls
- fit an idea into the 500-character limit
- pick one topic tag that matches your niche
- keep links inline rather than in a first comment
- route the post to WoopSocial without building a chain by hand
Example prompts for the agent
- Write a Threads post about our new release, end with a question
- Draft a Threads post from brand-profile, tag it for our niche
- Prepare a single Threads post and publish it via WoopSocial
How to install threads-post
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill threads-post -a claude-code2Manually: put the files in place
~/.claude/skills/threads-post/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/threads-post/
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill threads-post -a codex2Manually: put the files in place
.agents/skills/threads-post/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill threads-post -a cursor2Manually: put the files in place
.cursor/skills/threads-post/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install social-media-skills/skills threads-post2Manually: put the files in place
.github/skills/threads-post/SKILL.md1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill threads-post -a gemini-cli2Platform CLI
gemini skills install https://github.com/social-media-skills/skills --path skills/threads-postManually: put the files in place
.devin/skills/threads-post/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill threads-post -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 threads-post
How do I install threads-post in Claude?
Run npx skills add social-media-skills/skills --skill threads-post -a claude-code. The skill file then lives at ~/.claude/skills/threads-post/SKILL.md.
What does threads-post do?
It writes a single Threads post in a conversational voice: text up to 500 characters, a topic tag, media direction and reply angles. WoopSocial publishes it.
How is threads-post different from thread-writer?
thread-writer builds a multi-post chain; threads-post produces one post. WoopSocial cannot publish a chain, so a request to write a thread belongs to the other skill.
Source text
SKILL.md · MIT
---
name: threads-post
description: >-
Write and publish single posts on Meta's Threads — the Threads format-execution skill. Use when
someone wants a "Threads post," to "post to Threads," grow on Meta's Threads, or publish a Threads
post via WoopSocial. Writes a Threads-native conversation post (text <=500 + optional media) built
to earn replies — Threads is conversation-first: replies outweigh likes and engagement velocity
drives distribution. Uses the REPLY framework. Reads brand-profile + goals-and-kpis first.
WoopSocial publishes ONE Threads post (no native multi-post chain, no polls/voice/GIF, no reply
surface); the replying that drives reach is a human/community-management job; metrics never
fabricated; no engagement bait. Distinct from thread-writer (a user saying "write a thread" wants
that multi-post X chain, not this), x-growth (sibling text platform, different culture) and
caption-writer (text only).
version: 1.0.0
---
# threads-post
A **format-execution skill** — write a Threads-native conversation post (built to earn replies) **and**
carry the WoopSocial Threads publish facts. The agent writes the **post + topic tag + media direction +
reply angles**; **WoopSocial publishes/schedules the single post**; the **replying that drives reach is
human.**
## The POV: conversation-first — reply more than you post
Threads rewards what most platforms only claim to: **genuine conversation.** **Replies outweigh likes**,
**conversation depth** and **velocity** (first 30–90 min) drive distribution, and the **For You feed
surfaces new/smaller accounts** — an open (but tightening, post-ads) window. Mosseri's rule is blunt:
**"reply much more than you post."** So write a **conversation starter** (question / hot take / opinion),
keep a **consistent niche** with **one topic tag** (topic-neighbourhoods), put **links inline** (the old
penalty was reversed), and treat the post as the *smaller half* — the replies win the reach, and that part
is human.
## Read these first
1. **brand-profile** — niche + voice (Threads punishes press-release tone).
2. **goals-and-kpis** — the goal (replies / profile visits / follower growth, not vanity likes).
## The framework: REPLY
(Depth: `references/the-reply-framework.md`.)
- **R — Reason to reply:** a conversation starter (question/hot take/opinion), not a broadcast; no bait.
- **E — Engagement velocity first:** the first 30–90 min decide reach — post at a peak window, reply fast.
- **P — Personality + niche:** authentic/original (not promo); consistent niche + **one topic tag.**
- **L — Light media + link if it fits:** photos out-engage text-only (~+60%); **links inline** (no
first-comment tax); stay ≤500 chars.
- **Y — You reply more than you post:** the post is the smaller half; **WoopSocial publishes it, a human
(→ community-management) does the replying.**
## The reality (verify-quarterly)
Platform stats (text-first, ~400M MAU, passed X in daily mobile, ~6.25% ER, ads global Jan 2026 →
tightening); conversation-first + Mosseri "reply more than you post"; ranking (replies>likes, depth,
velocity 30–90 min, For You surfaces new accounts); Mosseri specifics (links rewarded, bait crackdown,
credibility/originality, Account Status, Dear Algo); topic tags + niche-neighbourhoods; formats (500 chars,
photos +60%, video 5min, polls/voice/GIF native-only); avoid-list: `references/threads-2026-reality.md`.
Post types, anatomy, the WoopSocial Threads publish block + worked examples:
`references/post-recipes-and-publish.md`.
## Honest scope (never violate)
- **WoopSocial publishes ONE Threads post** (`content.text` ≤500 + optional media). **No `postType`, no
`link` field** (links inline), **no polls/voice/GIF** (native-only), **no multi-post chain** (single
content item). **No reply surface** → the **replying that drives reach is human** (`community-management`).
- **No update endpoint** → edit = delete + recreate (only while `NOT_STARTED`).
- **No engagement bait** (penalized + dishonest); **no press-release tone** (suppressed). **Never promise a
reach multiple; never fabricate metrics** (native analytics only). (Scope, distinctions + connections:
`references/scope-and-connections.md`.)
## Distinct from its siblings (route correctly)
**threads-post (this)** = the Threads-native conversation post + the WoopSocial Threads publish facts ·
**thread-writer** = the multi-post chain ("write a thread" means that; this is ONE post — WoopSocial can't
chain) · **x-growth** = the sibling text platform, different culture (X real-time/credit-metered,
links-in-reply; Threads conversation/reply-driven, links-inline) · **caption-writer**/**hook-writer** =
the post line · **community-management** = the replies that win reach.
## Where this connects
Reads first: **brand-profile**, **goals-and-kpis**. Copy: **hook-writer**, **caption-writer**. Media
(external to WoopSocial): **image-prompt**/**ideogram**/**nano-banana**, the **video** cluster. Publish:
**scheduling-and-queue → WoopSocial** (single Threads post to a velocity window),
**platform-specs-and-validation** (validate + field rules), **content-calendar** (cadence). Engage/measure:
**community-management** (the reply work), **analytics-and-reporting** (replies/reach/profile-visits),
**experimentation-and-ab-testing** (A/B hooks/times). Replies + polls/voice stay native.
## Definition of done
A conversation-starting post (question/hot take/opinion) in the brand's voice, ≤500 chars, with one genuine
reply prompt (not bait), one niche topic tag, optional supporting media and an inline link if useful;
scheduled to a velocity window with a reply plan for the first 30–90 min; published by WoopSocial as a
single Threads post (no chain/poll/voice/GIF), validated first, edits via delete+recreate; the reply work
handed to a human/community-management, nothing fabricated and no promised reach multiple; correctly
distinguished from x-growth and caption-writer.
© social-media-skills · MIT · social-media-skills/skills