Agent skill

Xitter

by taracodlabs in taracodlabs/aiden

Post, read, and search X (Twitter) content using x-cli or the X API v2

Apache-2.0Auto-check passedWriting & Content

Install Xitter

skills CLI
$ npx skills add taracodlabs/aiden --skill xitter -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install taracodlabs/aiden xitter --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/taracodlabs/aiden.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/xitter .claude/skills/xitter && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
xitter
GitHub stars
851
Token cost
~1.3k tokens
SKILL.md length
241 words
Files
2
Skills in repo
63
Repo updated
First seen
Licence
Apache-2.0

At a glance

Post, read, and search X (Twitter) content using x-cli or the X API v2

  • Works in 5 steps: Set up X API credentials → Search recent tweets (Bearer Token — no… → Post a tweet (OAuth 1.0a) → …
  • Tasks that involve Social media posts
  • SKILL.md covers When to Use, How to Use, Examples and Cautions
  • Reaches api.twitter.com; needs X_BEARER_TOKEN and API_KEY

What it does

Xitter is an agent skill from taracodlabs/aiden. Post, read, and search X (Twitter) content using x-cli or the X API v2

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.json`).

It sits in Writing & Content, covering Social media posts. It works with X (Twitter). The repository describes itself as: Aiden — an autonomous AI agent and work engine built solo. It can operate your browser, terminal, files, apps, APIs, skills and tools, remember context, recover from failures… The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Social media posts

Example prompts

  • “/xitter”

Requirements

  • Python 3
  • A credential in API_KEY
  • A credential in API_SECRET

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Set up X API credentials
  2. Search recent tweets (Bearer Token — no user auth needed)
  3. Post a tweet (OAuth 1.0a)
  4. Fetch user timeline
  5. Read mentions

What it can do on your machine

Read from SKILL.md and the folder at commit 3704204. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python and powershell).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.twitter.com

    Also links to:

    • developer.twitter.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • X_BEARER_TOKEN
    • API_KEY
    • API_SECRET
    • ACCESS_TOKEN
    • ACCESS_TOKEN_SECRET
    • BEARER_TOKEN
    • X_API_KEY
    • X_API_SECRET
    • X_ACCESS_TOKEN
    • X_ACCESS_SECRET

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Xitter loads about 1.3k tokens when it runs. Until then it costs about 19 tokens; SKILL.md has 241 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~19
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from taracodlabs/aiden at commit 3704204, republished under its Apache-2.0 licence (© taracodlabs). 241 words, ~1,317 tokens.

Download SKILL.mdSave it as .claude/skills/xitter/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
xitter
description
Post, read, and search X (Twitter) content using x-cli or the X API v2
category
social
version
1.0.0
origin
aiden
license
Apache-2.0
tags
twitter, x, social-media, tweet, post, search, api, x-cli, timeline, mentions

X (Twitter) Automation

Read, post, and search X content using the x-cli command-line tool or the X API v2 directly. Requires X API credentials.

When to Use

  • User wants to post a tweet or thread on X
  • User wants to search for recent tweets on a topic
  • User wants to read their home timeline or mentions
  • User wants to fetch tweets from a specific account
  • User wants to schedule or automate social media posts

How to Use

1. Set up X API credentials

Register at https://developer.twitter.com → Create Project → Create App. Get:

  • API_KEY, API_SECRET
  • ACCESS_TOKEN, ACCESS_TOKEN_SECRET
  • BEARER_TOKEN (for read-only app-only auth)
powershell
$env:X_BEARER_TOKEN      = "your_bearer_token"
$env:X_API_KEY           = "your_api_key"
$env:X_API_SECRET        = "your_api_secret"
$env:X_ACCESS_TOKEN      = "your_access_token"
$env:X_ACCESS_SECRET     = "your_access_secret"
2. Search recent tweets (Bearer Token — no user auth needed)
python
import requests, os

def search_tweets(query, max_results=10):
  headers = {"Authorization": f"Bearer {os.environ['X_BEARER_TOKEN']}"}
  params  = {
    "query":        f"{query} -is:retweet lang:en",
    "max_results":  max_results,
    "tweet.fields": "created_at,author_id,public_metrics"
  }
  resp = requests.get("https://api.twitter.com/2/tweets/search/recent", headers=headers, params=params)
  resp.raise_for_status()
  for tweet in resp.json().get("data", []):
    print(f"• {tweet['text'][:120]}")
    print(f"  {tweet['created_at']}  likes={tweet['public_metrics']['like_count']}\n")

search_tweets("Aiden AI agent 2026", max_results=5)
3. Post a tweet (OAuth 1.0a)
python
import requests, os, time, hashlib, hmac, base64, urllib.parse, uuid

def post_tweet(text):
  url    = "https://api.twitter.com/2/tweets"
  params = {"text": text}

  # OAuth 1.0a signature
  oauth_params = {
    "oauth_consumer_key":     os.environ["X_API_KEY"],
    "oauth_nonce":            uuid.uuid4().hex,
    "oauth_signature_method": "HMAC-SHA1",
    "oauth_timestamp":        str(int(time.time())),
    "oauth_token":            os.environ["X_ACCESS_TOKEN"],
    "oauth_version":          "1.0",
  }
  signing_key  = "&".join([urllib.parse.quote(os.environ["X_API_SECRET"], safe=""),
                            urllib.parse.quote(os.environ["X_ACCESS_SECRET"], safe="")])
  base_string  = "&".join(["POST", urllib.parse.quote(url, safe=""),
                            urllib.parse.quote("&".join(f"{k}={v}" for k,v in sorted(oauth_params.items())), safe="")])
  signature    = base64.b64encode(hmac.new(signing_key.encode(), base_string.encode(), hashlib.sha1).digest()).decode()
  oauth_params["oauth_signature"] = signature

  auth_header  = "OAuth " + ", ".join(f'{k}="{urllib.parse.quote(v, safe="")}"' for k,v in oauth_params.items())
  resp = requests.post(url, json=params, headers={"Authorization": auth_header, "Content-Type": "application/json"})
  resp.raise_for_status()
  print(f"Posted tweet: {resp.json()['data']['id']}")

post_tweet("Hello from Aiden! 🤖 #AI #automation")
4. Fetch user timeline
python
import requests, os

def get_user_timeline(username, max_results=10):
  headers = {"Authorization": f"Bearer {os.environ['X_BEARER_TOKEN']}"}
  user    = requests.get(f"https://api.twitter.com/2/users/by/username/{username}", headers=headers).json()
  user_id = user["data"]["id"]

  resp    = requests.get(
    f"https://api.twitter.com/2/users/{user_id}/tweets",
    headers=headers,
    params={"max_results": max_results, "tweet.fields": "created_at,public_metrics", "exclude": "retweets"}
  )
  for tweet in resp.json().get("data", []):
    print(f"• {tweet['text'][:120]}\n  {tweet['created_at']}\n")

get_user_timeline("elonmusk", max_results=5)
5. Read mentions
python
import requests, os

def get_mentions(user_id, max_results=10):
  headers = {"Authorization": f"Bearer {os.environ['X_BEARER_TOKEN']}"}
  resp    = requests.get(
    f"https://api.twitter.com/2/users/{user_id}/mentions",
    headers=headers,
    params={"max_results": max_results, "tweet.fields": "created_at,author_id"}
  )
  for tweet in resp.json().get("data", []):
    print(f"• {tweet['text'][:120]}\n  {tweet['created_at']}\n")

Examples

"Search for recent tweets about LLM agents" → Use step 2 with query "LLM agents".

"Post a tweet saying 'Aiden just automated my morning report'" → Ask user to confirm before posting, then use step 3.

"Show me the last 10 tweets from a specific account" → Use step 4 with the target username.

Cautions

  • Posting tweets requires user-context OAuth 1.0a — Bearer Token alone cannot post
  • X API free tier limits search results to the last 7 days and 1 request per 15 minutes
  • Always ask user for explicit confirmation before posting any tweet on their behalf
  • X API rate limits are strict — cache results locally rather than re-fetching on every call
  • Never hardcode API credentials — always use environment variables

© taracodlabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/xitter of taracodlabs/aiden.

  • SKILL.md
  • skill.json

Open the folder on GitHubat commit 3704204

Compare with similar skills

Xitter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Xitter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Xitter this skilltaracodlabs/aiden851—~1.3kAutomated safety check: PassApache-2.0
X Researchtrailofbits/skills-curated513—~1.9kAutomated safety check: NotesCC-BY-SA-4.0
Tweetclawjeremylongshore/tons-of-skills-marketplace2.8k—~1.7kAutomated safety check: PassMIT
Xquik Social Researchagent-skills-hub/agent-skills-hub111—~971Automated safety check: PassMIT
Socialcoreyhaines31/marketingskills54k4 repos~4.5kAutomated safety check: PassMIT
Social Contentfreekmurze/dotfiles1k23 repos~2.1kAutomated safety check: PassNone

Similar skills

  • X Research

    trailofbits/skills-curated

    Official

    Searches X/Twitter for real-time perspectives, dev discussions, product feedback, breaking news, and expert opinions using the X API v2.

    513 GitHub stars~1.9k tokensUpdated 2 mo ago
    Writing & ContentAuto-check: notes
  • Tweetclaw

    jeremylongshore/tons-of-skills-marketplace

    X/Twitter automation plugin. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~1.7k tokensUpdated today
    Writing & ContentAuto-check passed
  • Xquik Social Research

    agent-skills-hub/agent-skills-hub

    Research public X data with Xquik. An agent skill from agent-skills-hub/agent-skills-hub.

    111 GitHub stars~971 tokensUpdated 7 days ago
    Writing & ContentAuto-check passed
  • Social

    coreyhaines31/marketingskills

    When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, or Facebook, or wants to do social listening and engagement triage.

    54k GitHub starsUsed in 4 repos~4.5k tokens
    Writing & ContentAuto-check passed
  • Social Content

    freekmurze/dotfiles

    When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms.

    1k GitHub starsUsed in 23 repos~2.1k tokens
    Writing & ContentAuto-check passed
  • Typefully

    freekmurze/dotfiles

    Create, schedule, and manage social media posts via Typefully.

    1k GitHub starsUsed in 1 repo~3.4k tokens
    Writing & ContentAuto-check: notes

More from taracodlabs/aiden

All 63 skills in this repo
  • Google Flights Search

    taracodlabs/aiden

    Searches Google Flights for prices, schedules and availability through browser automation with URL-based queries, and stops short of booking.

    851 GitHub stars~1.5k tokensUpdated 26 days ago
    Auto-check passed
  • OpenAI Codex CLI Bridge

    taracodlabs/aiden

    Delegates code generation, editing and explanation tasks to the OpenAI Codex CLI, with commands for interactive, auto-edit, question-only and model-specific runs.

    851 GitHub starsUsed in 1 repo~826 tokens
    Auto-check passed
  • Google Hotels Search

    taracodlabs/aiden

    Searches Google Hotels through the agent-browser tool for prices, ratings, amenities and availability, building a search URL from the location and dates and reporting a results table.

    851 GitHub stars~1.5k tokensUpdated 26 days ago
    Auto-check passed
  • Generates dark-themed architecture, component, data-flow and network diagrams as self-contained HTML and SVG files that open in any browser.

    851 GitHub stars~1.3k tokensUpdated 26 days ago
    Auto-check passed
  • Aggregates holdings across Zerodha, Upstox and Angel One and normalizes order parameters into one format, with confirmation required before any routing.

    851 GitHub stars~1.1k tokensUpdated 26 days ago
    Auto-check passed
  • arXiv Paper Search

    taracodlabs/aiden

    Searches arXiv by keyword, category, author or paper ID through its public API and downloads PDFs, with no API key needed.

    851 GitHub stars~1k tokensUpdated 26 days ago
    Auto-check passed

Works with

Questions about Xitter

What does Xitter do?

Post, read, and search X (Twitter) content using x-cli or the X API v2. Xitter is an agent skill from taracodlabs/aiden.

When should I use Xitter?

Xitter fits situations like: tasks that involve Social media posts.

How do I install Xitter in Claude Code?

Run `npx skills add taracodlabs/aiden --skill xitter -a claude-code`. Or copy the skill folder (skills/xitter in taracodlabs/aiden) into .claude/skills/xitter in your project. Claude Code loads it when a task matches its description.

How do I install Xitter in Codex?

Run `npx skills add taracodlabs/aiden --skill xitter -a codex`. Or copy the skill folder (skills/xitter in taracodlabs/aiden) into .agents/skills/xitter in your project. Codex loads it when a task matches its description.

Can I use Xitter in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add taracodlabs/aiden --skill xitter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/xitter, .gemini/skills/xitter, .github/skills/xitter and .opencode/skills/xitter in your project.

What does Xitter need to run?

Going by SKILL.md and its folder, Xitter needs credentials named X_BEARER_TOKEN, API_KEY, API_SECRET and ACCESS_TOKEN. Our summary lists: Python 3; A credential in API_KEY; A credential in API_SECRET.

Does Xitter access the network?

SKILL.md names 2 domains. In commands or code: api.twitter.com; the agent is likely to contact it when it follows the instructions. As links in the text: developer.twitter.com. This is read from the text; nothing was executed.

Is Xitter safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Xitter use?

Xitter is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Xitter use?

About 1.3k tokens (SKILL.md is roughly 5.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Xitter?

Skills that share tags, products or a category with Xitter: X Research (trailofbits/skills-curated, 513 stars), Tweetclaw (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Xquik Social Research (agent-skills-hub/agent-skills-hub, 111 stars) and Social (coreyhaines31/marketingskills, 54k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Xitter?

taracodlabs (a GitHub organization) maintains it in taracodlabs/aiden, which has 851 GitHub stars. The repository holds 63 skills in this directory. The repository was last updated on September 13, 2026.

Source: taracodlabs/aiden on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.