Install any skill in seconds. Free to start, no credit card required.
Get Started Free →sonichi/x-twitter
Post tweets, search, read mentions, and check engagement on X (Twitter) via API v2.
Passed 8 of 13 test cases with the skill, and 4 of 13 without it.
and 8 more in the full report
9 fixed4 passed either way7 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
I want to reply to a specific tweet (ID 987654321) with the text 'Great point!' using the API v2 python script. My environment already has all 4 OAuth1 keys. What command do I run?
| Checked | Without skill | With skill |
|---|---|---|
| uses the x-post.py post command | Missed | Passed |
| includes the --reply-to flag with the target tweet identifier | Missed | Passed |
The instructions your model reads when the skill loads.
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.
.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.The OAuth1 API post path below is NOT wired on this fleet: posting needs 4 write keys (X_API_KEY/SECRET + X_ACCESS_TOKEN/SECRET) that are not in the vault. Posting is NOT credit-gated — it just needs those keys, which we don't have. Do not conclude "X is blocked." The working path is a signed-in Chrome-for-Testing browser session:
# Is the profile signed in? (headless, exit 0 = yes, 2 = no)
node skills/x-twitter/x-post-browser.mjs check
# Owner signs in once (headed GUI window; email/phone — Google/Apple OAuth stay blocked)
node skills/x-twitter/x-post-browser.mjs login
# Compose only, screenshot, DO NOT publish (always run this first)
node skills/x-twitter/x-post-browser.mjs post "Your tweet text" --dry-run
# Publish (only after owner OKs the dry-run)
node skills/x-twitter/x-post-browser.mjs post "Your tweet text"
<workspace>/data/x-browser-profile, resolved through scripts/sutando-config.sh workspacetest cases passed, vs 4 / 13 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.