Eleven free Claude skills that run an X account, with a virality engine behind every idea: posts off 21 hook formulas, threads, replies, profile score, weekly plan, analytics audit and a humanizer. Free, MIT.
# Add to your Claude Code skills
git clone https://github.com/Jakeschincariol/x-agent-skillGuides for using ai agents skills like x-agent-skill.
See how x-agent-skill compares with popular alternatives.
x-agent-skill is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Jakeschincariol. Eleven free Claude skills that run an X account, with a virality engine behind every idea: posts off 21 hook formulas, threads, replies, profile score, weekly plan, analytics audit and a humanizer. Free, MIT. It has 51 GitHub stars.
x-agent-skill's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/Jakeschincariol/x-agent-skill" and add it to your Claude Code skills directory (see the Installation section above).
x-agent-skill is primarily written in Python. It is open-source under Jakeschincariol on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh x-agent-skill against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Eleven Claude skills that run an X account. Free, MIT, no signup, no API key, nothing to connect.
They write your posts, comment on other people's threads, handle your replies, fix your profile and plan your week. And one of them is the virality skill: it finds the posts that are actually outperforming in your niche, breaks each one down into hook, structure and format, and recreates the winners in your voice, for your audience.
Under the skills are nine tools that actually run. One counts a post the way X counts it (links are 23, emoji are 2). One scores your first line before you post it. One cuts a draft into a thread that fits. One reads X's own published ranking code and tells you what it rewards this week. One reads your analytics export and tells you what worked, with the sample size on every claim.
Nothing is posted until you approve it. These skills write. You post.
Paste this into Claude:
https://github.com/Jakeschincariol/x-agent-skill
Install this skill, then confirm /x-post works.
Or do it yourself, in Claude Code:
git clone https://github.com/Jakeschincariol/x-agent-skill.git
cp -r x-agent-skill/skills/x-* ~/.claude/skills/
Or as a plugin:
/plugin marketplace add Jakeschincariol/x-agent-skill
/plugin install x-agent
Project-local instead of global: copy the same folders into your repo's
.claude/skills/. No Claude Code at all? Paste any single SKILL.md at the
top of a chat and it runs as a mode. You lose the Python tools, which is most
of the point of /x-post, /x-viral and /x-human, but the rest works.
Then spend ten minutes on templates/voice.md. Copy it
to ~/.claude/x/voice.md and fill it in, or paste five of your own posts into
Claude and say "write my voice.md from these". Every skill reads that file.
Skip it and everything comes out sounding like everyone else on the timeline.
| command | what it does | |
|---|---|---|
/x-post |
Post Writer | One idea into a post. Three hooks from 21 formulas, scored, one draft, counted the way X counts, humanized. |
/x-comment |
Comment Drafter | Replies on other people's posts and threads. Nine types, picked by what the post is. Reply or quote, decided first. |
/x-profile |
Profile Optimizer | Scores your profile against a 12-part rubric out of 100, then rewrites bio, pinned post and header in fix-first order. |
/x-reply |
Reply Handler | The replies under your own posts, sorted into lead / substance / peer / question / support / noise, then answered in that order. |
/x-plan |
Content Planner | The week: what to post, which format, when, and the 10 accounts to engage with. |
/x-viral |
Virality Engine | Finds what is outperforming in your niche, ranks it by multiple over each account's own median, breaks down hook, structure and format, recreates the top three for you. |
/x-thread |
Thread Builder | Thread, long post or single post, decided first. Then post 1, one idea per post, cut to fit, and a last post people act on. |
/x-human |
Humanizer | Strips em dashes, slop and invisible characters, then scores the draft on a five-check panel. |
/x-repurpose |
Repurposer | One video, podcast, newsletter or LinkedIn post into a week of X posts and a thread. |
/x-dm |
DM Handler | The first message, two follow-ups, and triage for your inbox and message requests. |
/x-audit |
Account Audit | Reads your analytics export. Ranks by engagement, replies and shares per impression, not by impressions. |
Every one runs on a clean Python 3 with no dependencies. Seven never touch the
network. pull.py calls X's documented oEmbed API and weights.py reads a
public GitHub file; neither needs an account or a key.
python3 skills/x-post/count.py post.txt # X's weighted count + six lints
python3 skills/x-post/hookscore.py hooks.txt # score and rank first lines, name the formula
python3 skills/x-thread/thread.py draft.txt --number # cut a draft into a thread that fits
python3 skills/x-human/humanize.py draft.txt --report # strip the fingerprint
python3 skills/x-human/detect.py before.txt after.txt # five-check panel, before and after
python3 skills/x-viral/pull.py urls.txt > swipe.tsv # post URLs you picked -> text, format, date
python3 skills/x-viral/swipe.py swipe.tsv # outliers, broken down, as a swipe file
python3 skills/x-audit/audit.py analytics.csv # what worked, with n on every claim
python3 skills/x-plan/weights.py # what X's ranker rewards, live from X's code
X does not count characters. It counts weighted characters: every link is 23
however long it is, every emoji is 2 (a family emoji built from seven code
points is still 2), Chinese, Japanese and Korean are 2, and "…" is 2, which is
more than the three dots it replaces. count.py implements those rules, then
draws the post the way the timeline shows it:
WHAT FITS
+------------------------------------------------------+
| Most people use AI to post more. I used it to post |
| less. |
| |
| In March I cut from 3 posts a day to 1. Followers |
| went from 2,100 to 6,800 by August. |
| |
| The system: one idea a day, drafted with Claude, cut |
| in half by me, and I'm there for the first hour of |
| replies. |
| |
| Showing up beats post |
+------------------------------------ cut here, 4 over +
FAIL LENGTH 284 / 280, 4 over. X will not let you post it.
PASS FIRST LINE 56 characters, reads in one glance
PASS LINKS none
PASS HASHTAGS 0
PASS MENTIONS 0
PASS ENDING no reflex bait
With --premium the limit is 25,000 and the box shows where the timeline cuts
a long post to "Show more", at about 280. It also flags an @mention past that
point, because X does not notify it.
On X the first line is not the start of the post. It is most of the post.
hookscore.py scores it on five properties (length, specificity, stakes,
whether the payoff is up front, who it is aimed at), flags the dealbreakers,
and names which of the 21 formulas it uses:
HOOK RANKING
==============================================================================
-> 100.0 STRONG Nobody tells you your first 1,000 followers come from rep...
#6 Nobody Tells You · weakest: LENGTH (100)
78.4 STRONG I posted every day for 90 days. Here's what actually move...
#2 Number Reveal · weakest: FRONTLOAD (70)
52.2 OK The hottest new marketing hire is a skill file.
#7 The Hottest New · weakest: SPECIFICITY (15)
36.2 WEAK Hey guys, here are some thoughts on growing on X
#21 The One-Liner · weakest: STAKES (20)
dealbreaker: Greeting. Nobody opened X to be greeted.
4.8 WEAK A thread 🧵
#16 Thread Promise · weakest: FRONTLOAD (0)
dealbreaker: Opens on the word "thread". That is packaging. Put the
payoff in line 1 and let X's own UI say it is a thread.
Every formula in hooks.json carries a template,
a filled example, what it is for, how it usually gets ruined, and a regex, so
the same 21 names describe a hook you are writing and a hook you found in
someone else's feed. That is what lets /x-viral say "the top third of your
niche is The Hottest New and Field Report" instead of "posts that did well".
python3 skills/x-viral/pull.py urls.txt > swipe.tsv
# fill in the views column from the posts, they are public on every post
python3 skills/x-viral/swipe.py swipe.tsv --out ~/.claude/x/swipe.md
Raw numbers are not evidence. An account with 900,000 followers doing 400,000
views had an ordinary Tuesday; an account with 6,000 doing the same found
something copyable. So swipe.py ranks on the outlier multiple, each
post's views over its own account's median, computed from the 10 to 15 posts
you collected per account. Accounts with too few posts are skipped instead of
ranked on noise. Then each post gets broken down:
It compares the top third with the bottom third on all three, lists the hooks
it could not classify (read those, they are where a new formula is hiding) and
writes a swipe file with the reusable shape of each winner. /x-viral then
recreates the top three in your voice: the found post's structure, none of its
words.
X open-sourced its current recommendation system in January 2026 and has
published the production ranking weights in it since August. They move: two
of them changed in the week this pack was written. So weights.py reads the
file live and prints it with the date of its last change:
X FOR YOU RANKER · action weights · live from GitHub, last changed 2026-09-29 (commit a707cc2)
==============================================================================
REWARDED weight vs a like
share by copying the link 20 40.0x
+ added to a reply between mutuals 15 30.0x
reply 5 10.0x
share by DM 5 10.0x
quote 5 10.0x
follow the author 4