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

Repurpose existing content into a native Threads post

Threads repurposer

by sergebulaev · MIT license · ★ 49 on GitHub

Threads repurposer cover

Repurpose existing content into a native Threads post or thread. Take a LinkedIn post, X thread, blog, YouTube script, or newsletter and rewrite it for Threads: warm the tone, de-corporate it, refit to a short post or light thread,…

---
name: threads-repurposer
description: "Repurpose existing content into a native Threads post or thread. Take a LinkedIn post, X thread, blog, YouTube script, or newsletter and rewrite it for Threads: warm the tone, de-corporate it, refit to a short post or light thread, rebuild the hook to clear the soft fold, strip off-platform artifacts, run the humanizer, publish via Publora on approval. Not for writing from scratch (use threads-post-writer), auditing a draft (use threads-humanizer), or a hook teardown (use threads-hook-extractor)."
---

# Threads Repurposer

Turn something you already made into a Threads post or thread that reads like it
was born on Threads. Repurposing is not copy-paste. A post that killed on
LinkedIn or landed on X will read wrong on Threads if you paste it: too polished,
too cold, wrong length, and artifacts ("link in bio", hashtag walls, "smash
subscribe") that scream off-platform.

This skill transforms, it does not generate. It reads your source, keeps the
idea, and rebuilds the delivery for Threads: warmer, lowercase-casual,
reply-driven.

## When to use

Overview

Turn something you already made into a Threads post or thread that reads like it was born on Threads. Repurposing is not copy-paste. A post that killed on LinkedIn or landed on X will read wrong on Threads if you paste it: too polished, too cold, wrong length, and artifacts ("link in bio", hashtag walls, "smash subscribe") that scream off-platform.

Manual install (npx, ZIP)
Claude Codenpx skills add sergebulaev/threads-skills --skill threads-repurposer -g -a claude-code
Claude Code (degit)npx degit sergebulaev/threads-skills/skills/threads-repurposer#main ~/.claude/skills/threads-repurposer
Claude.ai / desktopZip the folder 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.md7.7 KB
Read SKILL.md here
sergebulaev/main1 file shown
SKILL.md
Show the full text135 lines

Threads Repurposer

Turn something you already made into a Threads post or thread that reads like it was born on Threads. Repurposing is not copy-paste. A post that killed on LinkedIn or landed on X will read wrong on Threads if you paste it: too polished, too cold, wrong length, and artifacts ("link in bio", hashtag walls, "smash subscribe") that scream off-platform.

This skill transforms, it does not generate. It reads your source, keeps the idea, and rebuilds the delivery for Threads: warmer, lowercase-casual, reply-driven.

When to use

  • "Turn this LinkedIn post into a Threads post / thread"
  • "Repurpose my blog post / newsletter / YouTube script for Threads"
  • "This X thread did well, adapt it for Threads"
  • "I have a rough idea in another format, make it native here"

Not for a blank-page draft (use threads-post-writer for a post or thread), not for reviewing an already-Threads draft (use threads-humanizer, plus --mode audit), and not for reverse-engineering a hook (use threads-hook-extractor).

How it works

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 threads-humanizer --mode profile can learn their voice from a few posts, then proceed with the generic voice rules.

  1. Take the source. Any format: a post, a paragraph, a script, a caption, a transcript, a bullet list, a link to read. Ask for the source and the goal (replies / reposts / likes / quotes) if not given.
  2. Extract the spine. Strip the source platform's shell and pull out the one claim, the one story, or the one number worth keeping. Most repurposing fails because it keeps the words instead of the point.
  3. Choose the container. One claim or number -> single post. A teach or a build -> a light thread (hand structure to threads-post-writer's shapes). A LinkedIn carousel or a listicle -> a short thread, one item per post, hook rebuilt. A long video -> a thread that delivers the payoff, not a summary. Threads leans short: prefer one warm post over a long thread when the idea fits.
  4. Warm the tone. Threads is conversational and lowercase-casual. De-corporate a LinkedIn source (cut the polish and the humble-brag frame), and turn a transplanted X dunk into an invitation to talk. The register is a person talking, not a brand broadcasting.
  5. Rebuild the hook. Threads has a soft fold (the feed truncates long posts with a "more" cut), so line one must land the whole punch and stand alone. The source's hook almost never survives; write a new first line using a 2026 Threads formula (see ../../references/hook-formulas.md), picked by the goal.
  6. Refit the format. Under 500 chars per post (10,000 only with a text attachment). One idea per post, line breaks as beats. Cut the source's connective tissue. For a thread, hand-split with --- so the user sees the breaks before approving.
  7. Strip off-platform artifacts. Remove "link in bio", "smash subscribe", "read more below", hashtag walls (Threads allows one hashtag max), @-handles that only exist elsewhere, and any "as I wrote on LinkedIn" throat-clearing. A repurposed post should not admit it was repurposed.
  8. Humanizer pass. Run threads-humanizer V3: 2026 AI vocab by density, em dashes above the cap (at most one per post, never swapped for a period), stacked rule-of-three triads, generic openers and reveal bridges. Leave the rhythm alone (uniform rhythm wins on Threads; never insert a punch post for variance). Keep the user's real numbers and named entities from the source.
  9. Approval card. Show: source -> Threads mapping (what became what), the container (single post or N-post thread with per-post char counts), formula used, warmed-tone note, primary goal. Confirm any --- breaks.
  10. On approval. Publish via lib.publish(kind="post" (single) or kind="thread", draft_text=<approved>, target_url="https://www.threads.com/", platforms=[<THREADS_PLATFORM_ID>], scheduled_time=<iso_or_None>). The wrapper handles Publora / manual / diy routing. Publora auto-splits an over-length draft into a connected thread at paragraph then sentence boundaries.

Native-fit rules (source -> Threads)

  • LinkedIn post -> Threads: warm it, cut the polish. Drop the corporate frame and the humble-brag. The LinkedIn hook is too long and too formal; rewrite it lowercase-casual as a person talking.
  • X thread -> Threads: soften the combat tone. A sharp dunk becomes an invitation to talk. Keep the point, lose the edge that reads cold here.
  • Blog / newsletter -> Threads: pick the one human take, lead with it, and end on a question. Do not summarize the whole piece.
  • YouTube script -> Threads: lead with the payoff, not the intro. "here's what surprised me" beats "in this video".
  • Carousel / listicle -> thread: one item per post, each with its own micro-hook, not a wall.
  • Instagram / TikTok caption -> Threads: strip emoji density and hashtag blocks; Threads reads them as noise and caps hashtags at one.

Hard rules

Global voice rules: see root SKILL.md Voice rules. Additional skill-specific rules:

  • Keep the source's claim and facts intact. Repurposing changes the delivery, never the meaning or the numbers.
  • The new first line must stop the scroll on its own, past the soft fold. If it needs line two to make sense, rewrite it.
  • Never paste the source verbatim and trim. Rebuild the hook and rhythm from the spine.
  • Warm the tone every time. A cold, combative import is the most common failure.
  • One specific number where the source offers one. Keep it.
  • One hashtag maximum. A second is rejected by Threads, not just bad style.
  • Do not hard-sell the user's product. One natural mention max.

Anti-patterns (skill will refuse)

  • Copy-pasting the source with light edits (that is not repurposing).
  • Keeping the source platform's artifacts ("link in bio", "smash subscribe", hashtag walls, off-platform @-handles).
  • Importing a cold, combative X voice instead of warming it.
  • ALL CAPS first line for intensity. Carry it with word choice.
  • Em dashes above the cap (more than one in a post), or an em dash swapped for a period.
  • "The result?" / "Here's what" reveal bridges and staccato stacks added during the rewrite.
  • Rule-of-three lists without specifics.
  • "leverage", "fundamentally", "game-changer", "deep dive".
  • An external link in post 1 (offer a reply).
  • A second hashtag.
  • Meta throat-clearing ("I originally posted this on...").

Resources

  • ../../references/hook-formulas.md - the 13 Threads formula skeletons to re-hook with (T1-T6 and T11-T13 single, T7-T10 thread)
  • ../../references/algorithm-heuristics.md - 2026 Threads ranking rules (signals, timing, limits)
  • threads-post-writer - write a fresh post or thread from scratch (repurposer hands long builds to its shapes)
  • threads-humanizer - scrub AI tells, plus --mode audit to review the result
  • threads-hook-extractor - reverse-engineer a hook from a post you admire
1---
2name: threads-repurposer
3description: "Repurpose existing content into a native Threads post or thread. Take a LinkedIn post, X thread, blog, YouTube script, or newsletter and rewrite it for Threads: warm the tone, de-corporate it, refit to a short post or light thread, rebuild the hook to clear the soft fold, strip off-platform artifacts, run the humanizer, publish via Publora on approval. Not for writing from scratch (use threads-post-writer), auditing a draft (use threads-humanizer), or a hook teardown (use threads-hook-extractor)."
4---
5 
6# Threads Repurposer
7 
8Turn something you already made into a Threads post or thread that reads like it
9was born on Threads. Repurposing is not copy-paste. A post that killed on
10LinkedIn or landed on X will read wrong on Threads if you paste it: too polished,
11too cold, wrong length, and artifacts ("link in bio", hashtag walls, "smash
12subscribe") that scream off-platform.
13 
14This skill transforms, it does not generate. It reads your source, keeps the
15idea, and rebuilds the delivery for Threads: warmer, lowercase-casual,
16reply-driven.
17 
18## When to use
19 
20- "Turn this LinkedIn post into a Threads post / thread"
21- "Repurpose my blog post / newsletter / YouTube script for Threads"
22- "This X thread did well, adapt it for Threads"
23- "I have a rough idea in another format, make it native here"
24 
25Not for a blank-page draft (use `threads-post-writer` for a post or thread), not
26for reviewing an already-Threads draft (use `threads-humanizer`, plus
27`--mode audit`), and not for reverse-engineering a hook (use
28`threads-hook-extractor`).
29 
30## How it works
31 
32**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 `threads-humanizer --mode profile` can learn their voice from a few posts, then proceed with the generic voice rules.
33 
341. **Take the source.** Any format: a post, a paragraph, a script, a caption, a
35 transcript, a bullet list, a link to read. Ask for the source and the goal
36 (replies / reposts / likes / quotes) if not given.
372. **Extract the spine.** Strip the source platform's shell and pull out the one
38 claim, the one story, or the one number worth keeping. Most repurposing fails
39 because it keeps the words instead of the point.
403. **Choose the container.** One claim or number -> single post. A teach or a
41 build -> a light thread (hand structure to `threads-post-writer`'s shapes). A
42 LinkedIn carousel or a listicle -> a short thread, one item per post, hook
43 rebuilt. A long video -> a thread that delivers the payoff, not a summary.
44 Threads leans short: prefer one warm post over a long thread when the idea
45 fits.
464. **Warm the tone.** Threads is conversational and lowercase-casual. De-corporate
47 a LinkedIn source (cut the polish and the humble-brag frame), and turn a
48 transplanted X dunk into an invitation to talk. The register is a person
49 talking, not a brand broadcasting.
505. **Rebuild the hook.** Threads has a soft fold (the feed truncates long posts
51 with a "more" cut), so line one must land the whole punch and stand alone. The
52 source's hook almost never survives; write a new first line using a 2026
53 Threads formula (see `../../references/hook-formulas.md`), picked by the goal.
546. **Refit the format.** Under 500 chars per post (10,000 only with a text
55 attachment). One idea per post, line breaks as beats. Cut the source's
56 connective tissue. For a thread, hand-split with `---` so the user sees the
57 breaks before approving.
587. **Strip off-platform artifacts.** Remove "link in bio", "smash subscribe",
59 "read more below", hashtag walls (Threads allows one hashtag max), @-handles
60 that only exist elsewhere, and any "as I wrote on LinkedIn" throat-clearing. A
61 repurposed post should not admit it was repurposed.
628. **Humanizer pass.** Run `threads-humanizer` V3: 2026 AI vocab by density,
63 em dashes above the cap (at most one per post, never swapped for a
64 period), stacked rule-of-three triads, generic openers and reveal bridges.
65 Leave the rhythm alone (uniform rhythm wins on Threads; never insert a
66 punch post for variance). Keep the user's real numbers and named entities
67 from the source.
689. **Approval card.** Show: source -> Threads mapping (what became what), the
69 container (single post or N-post thread with per-post char counts), formula
70 used, warmed-tone note, primary goal. Confirm any `---` breaks.
7110. **On approval.** Publish via `lib.publish(kind="post"` (single) or
72 `kind="thread"`, `draft_text=<approved>,
73 target_url="https://www.threads.com/", platforms=[<THREADS_PLATFORM_ID>],
74 scheduled_time=<iso_or_None>)`. The wrapper handles Publora / manual / diy
75 routing. Publora auto-splits an over-length draft into a connected thread at
76 paragraph then sentence boundaries.
77 
78## Native-fit rules (source -> Threads)
79 
80- **LinkedIn post -> Threads:** warm it, cut the polish. Drop the corporate frame
81 and the humble-brag. The LinkedIn hook is too long and too formal; rewrite it
82 lowercase-casual as a person talking.
83- **X thread -> Threads:** soften the combat tone. A sharp dunk becomes an
84 invitation to talk. Keep the point, lose the edge that reads cold here.
85- **Blog / newsletter -> Threads:** pick the one human take, lead with it, and end
86 on a question. Do not summarize the whole piece.
87- **YouTube script -> Threads:** lead with the payoff, not the intro. "here's what
88 surprised me" beats "in this video".
89- **Carousel / listicle -> thread:** one item per post, each with its own
90 micro-hook, not a wall.
91- **Instagram / TikTok caption -> Threads:** strip emoji density and hashtag
92 blocks; Threads reads them as noise and caps hashtags at one.
93 
94## Hard rules
95 
96Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific
97rules:
98 
99- Keep the source's **claim and facts** intact. Repurposing changes the delivery,
100 never the meaning or the numbers.
101- The new first line must stop the scroll on its own, past the soft fold. If it
102 needs line two to make sense, rewrite it.
103- Never paste the source verbatim and trim. Rebuild the hook and rhythm from the
104 spine.
105- Warm the tone every time. A cold, combative import is the most common failure.
106- One specific number where the source offers one. Keep it.
107- One hashtag maximum. A second is rejected by Threads, not just bad style.
108- Do not hard-sell the user's product. One natural mention max.
109 
110## Anti-patterns (skill will refuse)
111 
112- Copy-pasting the source with light edits (that is not repurposing).
113- Keeping the source platform's artifacts ("link in bio", "smash subscribe",
114 hashtag walls, off-platform @-handles).
115- Importing a cold, combative X voice instead of warming it.
116- ALL CAPS first line for intensity. Carry it with word choice.
117- Em dashes above the cap (more than one in a post), or an em dash swapped for a period.
118- "The result?" / "Here's what" reveal bridges and staccato stacks added during the rewrite.
119- Rule-of-three lists without specifics.
120- "leverage", "fundamentally", "game-changer", "deep dive".
121- An external link in post 1 (offer a reply).
122- A second hashtag.
123- Meta throat-clearing ("I originally posted this on...").
124 
125## Resources
126 
127- `../../references/hook-formulas.md` - the 13 Threads formula skeletons to re-hook with (T1-T6 and T11-T13 single, T7-T10 thread)
128- `../../references/algorithm-heuristics.md` - 2026 Threads ranking rules (signals, timing, limits)
129 
130## Related skills
131 
132- `threads-post-writer` - write a fresh post or thread from scratch (repurposer hands long builds to its shapes)
133- `threads-humanizer` - scrub AI tells, plus `--mode audit` to review the result
134- `threads-hook-extractor` - reverse-engineer a hook from a post you admire
135 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 49
Checked
Source
sergebulaev/threads-skills ↗
Creator
sergebulaev · 77 listings
View creator

Similar skills

See all →
SkillResearch what people actually say about any topicSTEP 0: STALE-CLONE SELF-CHECK — RUN BEFORE READING BELOWmvanhorn/last30days-skill · by mvanhornResearch what people actually say about any topic in the last 30 days. Pulls posts and engagement from Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and the web. Includes a doctor health check to diagnose broken or missing sources.★ 63.5k GitHub starsSkillScrapes social platforms, business dataApifydanielmiessler/LifeOS · by danielmiesslerScrapes social platforms, business data, and e-commerce via Apify actors — Instagram, LinkedIn, TikTok, YouTube, Facebook, Google Maps, Amazon, and web crawls — filtering in code. USE WHEN scrape Instagram, scrape LinkedIn, scrape TikTok, scrape YouTube, scrape Facebook, Google Maps leads, Amazon reviews, business intelligence, multi-platform social listening, competitive analysis, lead generation, social monitoring, Apify actors, web crawl, extract contacts. NOT FOR X/Twitter account operations like posting, threads, or bookmarks (those need a dedicated X API client), 4-tier progressive scraping with proxy escalation (use BrightData), or real-Chrome bot bypass and computer use (use Interceptor).★ 19.3k GitHub starsSkill微信公众号长文增长闭环 ——tsingyuai/growth-lab · by tsingyuai微信公众号长文增长闭环 —— 从读者问题与复刻锚选题、写出可验证的公众号长文、预览与合规检查、同步微信草稿、三重确认下受控发布,到回收阅读与转化数据并复盘。用户要求写公众号、把内容改成公众号、同步或发布微信草稿、查看公众号数据或复盘时使用。★ 2k GitHub starsSkillSearch and retrieve content from Twitter/XTwitter/X SkillReScienceLab/opc-skills · by ReScienceLabSearch and retrieve content from Twitter/X. Get user info, tweets, replies, followers, communities, spaces, and trends via twitterapi.io. Use when user mentions Twitter, X, or tweets.★ 1.8k GitHub starsSkillSays 'YouTube script', 'video script'🎬 YouTube Script: Writing retention-optimized video script...cwinvestments/memstack · by cwinvestmentsUse this skill when the user says 'YouTube script', 'video script', 'write script for YouTube', 'YouTube video outline', or is creating scripted content for a YouTube video with hooks, chapters, and CTAs. Do NOT use for TikTok/Reels short-form scripts or webinar presentations.★ 423 GitHub starsSkillAgent Reach — 互联网能力路由器Ootto-AI/claude-content-skills · by Ootto-AIMUST USE when user wants to 调研/research/搜索/search/查/找/look up anything on the internet — e.g. 全网调研 X / 帮我调研一下 X / 查一下 X / 搜搜 X / 看看大家怎么评价 X / X 上有什么讨论 / research this topic。 Also MUST USE when user mentions any platform or shares any URL/链接: 小红书/xiaohongshu/xhs, Twitter/推特/X, B站/bilibili, Reddit, V2EX, LinkedIn/领英/招聘/求职/jobs, YouTube, GitHub code search, 小宇宙播客, 雪球/股票行情, RSS feeds, or any web URL. 13 platforms, multi-backend routing (OpenCLI / per-platform CLIs / APIs). Zero config for 6 channels. Run `agent-reach doctor --json` to see which backend serves each platform right now. NOT for: 写报告/数据分析/翻译等内容加工(本 skill 只负责从互联网获取内容); 发帖/评论/点赞等写操作;已有专门 skill 的平台(先用专门 skill)。 【路由方式】SKILL.md 包含路由表和常用命令,复杂场景需按需阅读对应分类的 references/*.md。 分类:search / social (小红书/推特/B站/V2EX/Reddit) / career(LinkedIn) / dev(github) / web(网页/文章/RSS) / video(YouTube/B站/播客)。★ 139 GitHub stars

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