A Ruby-based CLI for managing tweets, likes, and searches via the official X API v2.
Install
mkdir -p .claude/skills/x-alanalvestech && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15419" && unzip -o skill.zip -d .claude/skills/x-alanalvestech && rm skill.zipInstalls to .claude/skills/x-alanalvestech
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Post and manage tweets on X (formerly Twitter) via API v2Key capabilities
- →Check if Twitter API credentials exist and are valid
- →Save API credentials provided by the user
- →Get authenticated user information
- →Post a new tweet with user confirmation
- →List recent tweets for a user
- →Search recent tweets by query
How it works
The skill uses Ruby scripts to interact with the X API v2, handling OAuth 1.0a authentication, credential management, and various tweet-related actions.
Inputs & outputs
When to use x
- →Post tweets
- →List recent tweets
- →Like a tweet
- →Search recent content
About this skill
/x
Connect to the X (formerly Twitter) API v2 to post tweets, search, view timelines and manage likes. Pure Ruby, zero gems — stdlib only.
Structure
scripts/
├── auth.rb # OAuth 1.0a signature + twitter_request helper (required by all scripts)
├── check_setup.rb # Check if credentials exist (outputs OK or SETUP_NEEDED)
├── save_token.rb # Save and validate API credentials
├── me.rb # Get authenticated user info
├── tweets.rb # List recent tweets for a user
├── tweet.rb # Get tweet details by ID
├── post_tweet.rb # Post a new tweet (requires confirmation)
├── delete_tweet.rb # Delete a tweet (requires confirmation)
├── search.rb # Search recent tweets
├── likes.rb # List liked tweets
└── like.rb # Like a tweet (requires confirmation)
Setup (check before using)
ruby ~/.claude/skills/x/scripts/check_setup.rb
If the output is OK, proceed to the Flow section.
If the output is SETUP_NEEDED, guide the user step by step. Present ONE step at a time, wait for the user to confirm before moving to the next.
Step 1 — Ask the user to create a Twitter Developer app:
You need Twitter API credentials. Go to the Developer Portal and create a project and app:
https://developer.x.com/en/portal/dashboard
- Create a new Project (or use an existing one)
- Create an App inside that project
Step 2 — Ask the user to generate credentials:
In your app settings, go to "Keys and tokens" and generate all 4 credentials:
- API Key (also called Consumer Key)
- API Key Secret (also called Consumer Secret)
- Access Token
- Access Token Secret
Copy all 4 values.
Step 3 — Ask the user to check permissions:
Make sure your app has Read and Write permissions. You can check this under your app's "User authentication settings" in the Developer Portal.
Step 4 — When the user pastes the credentials, save them:
ruby ~/.claude/skills/x/scripts/save_token.rb 'API_KEY' 'API_SECRET' 'ACCESS_TOKEN' 'ACCESS_TOKEN_SECRET'
If the script outputs an error, the credentials are invalid. Ask the user to double-check and try again.
If setup is not complete, DO NOT proceed to the Flow. Complete all steps first.
Flow
The argument $ARGUMENTS may contain tweet text or a tweet ID.
Step 1: Check account info
ruby ~/.claude/skills/x/scripts/me.rb
Present the account info to the user.
Step 2: Present options
Ask the user what they want to do:
- Post a tweet
- List recent tweets
- Search tweets
- View a tweet
- Delete a tweet
- View liked tweets
- Like a tweet
If $ARGUMENTS looks like tweet text (not a number), offer to post it. If it looks like a tweet ID (numeric), offer to view it.
Step 3: Actions
Post a tweet (requires user confirmation):
Ask the user to type the tweet text. Show a preview of the tweet and its character count. Ask: "Do you want to post this tweet?" Only execute after a "yes".
ruby ~/.claude/skills/x/scripts/post_tweet.rb 'TWEET_TEXT'
List recent tweets:
ruby ~/.claude/skills/x/scripts/tweets.rb
ruby ~/.claude/skills/x/scripts/tweets.rb --user_id USER_ID
View a tweet:
ruby ~/.claude/skills/x/scripts/tweet.rb TWEET_ID
Search recent tweets:
ruby ~/.claude/skills/x/scripts/search.rb 'SEARCH_QUERY'
Delete a tweet (requires user confirmation):
Show the tweet details first, then ask: "Do you want to delete this tweet?" Only execute after a "yes".
ruby ~/.claude/skills/x/scripts/delete_tweet.rb TWEET_ID
View liked tweets:
ruby ~/.claude/skills/x/scripts/likes.rb
ruby ~/.claude/skills/x/scripts/likes.rb --user_id USER_ID
Like a tweet (requires user confirmation):
Show the tweet details first, then ask: "Do you want to like this tweet?" Only execute after a "yes".
ruby ~/.claude/skills/x/scripts/like.rb TWEET_ID
Notes
- Pure Ruby, zero gems — stdlib only (json, net/http, uri, fileutils, openssl, base64, securerandom)
- OAuth 1.0a with HMAC-SHA1 signature — full signature generation implemented in auth.rb
- Twitter API v2 endpoints — all scripts use the v2 API
- Free tier allows 1,500 tweets/month (posting) and limited reads
- Token files stored at
~/.config/x/(4 files, never commit) - Post, delete, and like require explicit user confirmation
- Base URL:
https://api.twitter.com
When not to use it
- →If Twitter API credentials are not available or invalid
- →When the user does not want to interact with X (formerly Twitter)
- →When the task requires actions not supported by API v2
Limitations
- →Post, delete, and like actions require explicit user confirmation
- →Free tier allows 1,500 tweets/month (posting) and limited reads
- →Token files are stored at ~/.config/x/ and should not be committed
How it compares
This skill provides a Ruby-based CLI interface for X API v2, enabling programmatic interaction with Twitter features, unlike manual use of the platform.
Compared to similar skills
x side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| x (this skill) | 0 | 5mo | Review | Intermediate |
| baoyu-post-to-x | 5 | 2mo | Review | Intermediate |
| 0 | 4mo | Review | Intermediate | |
| x | 0 | 3mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
baoyu-post-to-x
JimLiu
Posts content and articles to X (Twitter). Supports regular posts with images/videos and X Articles (long-form Markdown). Uses real Chrome with CDP to bypass anti-automation. Use when user asks to "post to X", "tweet", "publish to Twitter", or "share on X".
svenflow
Post tweets, read timeline, follow/unfollow, upload media, search on X/Twitter. Trigger words - twitter, tweet, x.com, post tweet, timeline, follow on x.
x
sigcli
Interact with X (Twitter) — view profiles, read tweets and threads, search posts, check trending topics, view followers, post tweets, like, retweet, follow users, and bookmark tweets. Use this skill whenever the user mentions X, Twitter, tweets, @handles, wants to browse X posts, search X, view user
skills
qinyuanpei
The `weibo-cli` is a command-line interface tool for interacting with Weibo data without using the MCP protocol. It provides direct access to all Weibo functionality through simple terminal commands.
clawshot
LeoYeAI
Instagram for AI agents. Build your following, grow your influence. Share screenshots, get likes & comments, engage with @mentions. Be a creator, not just a coder.
telegram-bot-builder
davila7
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.