Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Post tweets, search, read mentions, and check engagement on X (Twitter) via API v2.
.claude/skills/sonichi-x-twitter/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✗→✓ | ▲ Improved | -27% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -43% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -30% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -52% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -42% | 0% |
Post, search, read, and monitor X from the command line.
The user wants to post to / read from X (Twitter) — publish a tweet or thread, reply, search recent tweets, check mentions/timeline, or pull engagement on a known tweet id. Not for other social platforms.
app lacks Read+Write permission (regenerate the access token AFTER setting RW).
.env is missing or stale. The skill uses five: X_API_KEY, X_API_SECRET, X_ACCESS_TOKEN, X_ACCESS_TOKEN_SECRET, and X_BEARER_TOKEN. Reads authenticate with the bearer token, so a 401 on search/mentions/timeline is most often a stale X_BEARER_TOKEN, not the OAuth pair.bash# Post python3 skills/x-twitter/x-post.py post "Your tweet text" python3 skills/x-twitter/x-post.py post "With video" --media /path/to/video.mp4 python3 skills/x-twitter/x-post.py post --reply-to 123456789 "Reply text" # Search python3 skills/x-twitter/x-post.py search "sutando agent" python3 skills/x-twitter/x-post.py search "from:Chi_Wang_" --limit 5 # Read a tweet python3 skills/x-twitter/x-post.py read 2040817066199195818 # Mentions & timeline python3 skills/x-twitter/x-post.py mentions python3 skills/x-twitter/x-post.py timeline # Engagement (likes, retweets, views) python3 skills/x-twitter/x-post.py engagement 2040817066199195818
pip3 install requests requests-oauthlib
.env: X_API_KEY=... X_API_SECRET=... X_ACCESS_TOKEN=... X_ACCESS_TOKEN_SECRET=...
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-16 | fail→pass | 9,693 | 2,795 | -71% | 1 | 1 | 0% | 1,564 | 1,141 | -27% | 0 | 0 | — |
case-01 | fail→fail | 4,014 | 6,110 | +52% | 1 | 1 | 0% | 547 | 855 | +56% | 0 | 0 | — |
case-02 | fail→fail | 2,529 | 3,463 | +37% | 1 | 1 | 0% | 326 | 1,319 | +305% | 0 | 0 | — |
case-03 | fail→fail | 2,958 | 4,417 | +49% | 1 | 1 | 0% | 506 | 910 | +80% | 0 | 0 | — |
case-04 | fail→fail | 11,970 | 2,621 | -78% | 1 | 1 | 0% | 1,778 | 1,119 | -37% | 0 | 0 | — |
case-05 | fail→pass | 10,553 | 5,763 | -45% | 1 | 1 | 0% | 1,897 | 1,087 | -43% | 0 | 0 | — |
case-06 | fail→pass | 8,880 | 2,081 | -77% | 1 | 1 | 0% | 1,409 | 989 | -30% | 0 | 0 | — |
case-07 | fail→pass | 12,353 | 1,628 | -87% | 1 | 1 | 0% | 1,867 | 903 | -52% | 0 | 0 | — |
case-08 | fail→pass | 9,952 | 1,629 | -84% | 1 | 1 | 0% | 1,692 | 977 | -42% | 0 | 0 | — |
case-09 | fail→pass | 9,764 | 1,578 | -84% | 1 | 1 | 0% | 1,527 | 921 | -40% | 0 | 0 | — |
case-10 | pass→pass | 10,075 | 3,254 | -68% | 1 | 1 | 0% | 1,628 | 1,284 | -21% | 0 | 0 | — |
case-11 | pass→pass | 8,692 | 3,591 | -59% | 1 | 1 | 0% | 1,413 | 1,316 | -7% | 0 | 0 | — |
case-12 | pass→pass | 9,817 | 4,151 | -58% | 1 | 1 | 0% | 1,729 | 1,349 | -22% | 0 | 0 | — |
case-13 | pass→pass | 7,151 | 1,936 | -73% | 1 | 1 | 0% | 1,043 | 943 | -10% | 0 | 0 | — |
case-14 | pass→pass | 9,624 | 4,326 | -55% | 1 | 1 | 0% | 1,467 | 1,462 | -0% | 0 | 0 | — |
case-15 | pass→pass | 8,352 | 2,016 | -76% | 1 | 1 | 0% | 1,453 | 1,088 | -25% | 0 | 0 | — |
case-17 | pass→pass | 14,288 | 6,058 | -58% | 1 | 1 | 0% | 2,258 | 1,639 | -27% | 0 | 0 | — |
case-18 | fail→pass | 5,740 | 1,773 | -69% | 1 | 1 | 0% | 779 | 880 | +13% | 0 | 0 | — |
case-19 | pass→pass | 6,049 | 1,278 | -79% | 1 | 1 | 0% | 915 | 865 | -5% | 0 | 0 | — |
case-20 | pass→pass | 3,276 | 3,450 | +5% | 1 | 1 | 0% | 488 | 1,132 | +132% | 0 | 0 | — |
case-21 | fail→pass | 4,206 | 4,921 | +17% | 1 | 1 | 0% | 616 | 1,515 | +146% | 0 | 0 | — |
case-22 | fail→pass | 7,079 | 2,987 | -58% | 1 | 1 | 0% | 1,106 | 1,147 | +4% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +41 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.