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.zip

Installs 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 v2
57 charsno explicit “when” trigger
Intermediate

Key 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

You give it
API Key, API Key Secret, Access Token, Access Token Secret
You get back
confirmation of saved and validated API credentials

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

  1. Create a new Project (or use an existing one)
  2. 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.

SkillInstallsUpdatedSafetyDifficulty
x (this skill)05moReviewIntermediate
baoyu-post-to-x52moReviewIntermediate
twitter04moReviewIntermediate
x03moReviewIntermediate

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".

520

twitter

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.

00

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

00

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.

00

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.

00

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.

106130

Search skills

Search the agent skills registry