Agent skill
xitter
Interact with X/Twitter via the x-cli terminal client using official X API credentials. Use for posting, reading timelines, searching tweets, liking, retweeting, bookmarks, mentions, and user lookups.
Install this agent skill to your Project
npx add-skill https://github.com/NousResearch/hermes-agent/tree/main/skills/social-media/xitter
Metadata
Additional technical details for this skill
- hermes
-
{ "tags": [ "twitter", "x", "social-media", "x-cli" ], "homepage": "https://github.com/Infatoshi/x-cli" }
SKILL.md
Xitter — X/Twitter via x-cli
Use x-cli for official X/Twitter API interactions from the terminal.
This skill is for:
- posting tweets, replies, and quote tweets
- searching tweets and reading timelines
- looking up users, followers, and following
- liking and retweeting
- checking mentions and bookmarks
This skill intentionally does not vendor a separate CLI implementation into Hermes. Install and use upstream x-cli instead.
Important Cost / Access Note
X API access is not meaningfully free for most real usage. Expect to need paid or prepaid X developer access. If commands fail with permissions or quota errors, check your X developer plan first.
Install
Install upstream x-cli with uv:
uv tool install git+https://github.com/Infatoshi/x-cli.git
Upgrade later with:
uv tool upgrade x-cli
Verify:
x-cli --help
Credentials
You need these five values from the X Developer Portal:
X_API_KEYX_API_SECRETX_BEARER_TOKENX_ACCESS_TOKENX_ACCESS_TOKEN_SECRET
Get them from:
Why does X need 5 secrets?
Unfortunately, the official X API splits auth across both app-level and user-level credentials:
X_API_KEY+X_API_SECRETidentify your appX_BEARER_TOKENis used for app-level read accessX_ACCESS_TOKEN+X_ACCESS_TOKEN_SECRETlet the CLI act as your user account for writes and authenticated actions
So yes — it is a lot of secrets for one integration, but this is the stable official API path and is still preferable to cookie/session scraping.
Setup requirements in the portal:
- Create or open your app
- In user authentication settings, set permissions to
Read and write - Generate or regenerate the access token + access token secret after enabling write permissions
- Save all five values carefully — missing any one of them will usually produce confusing auth or permission errors
Note: upstream x-cli expects the full credential set to be present, so even if you mostly care about read-only commands, it is simplest to configure all five.
Cost / Friction Reality Check
If this setup feels heavier than it should be, that is because it is. X’s official developer flow is high-friction and often paid. This skill chooses the official API path because it is more stable and maintainable than browser-cookie/session approaches.
If the user wants the least brittle long-term setup, use this skill. If they want a zero-setup or unofficial path, that is a different trade-off and not what this skill is for.
Where to Store Credentials
x-cli looks for credentials in ~/.config/x-cli/.env.
If you already keep your X credentials in ~/.hermes/.env, the cleanest setup is:
mkdir -p ~/.config/x-cli
ln -sf ~/.hermes/.env ~/.config/x-cli/.env
Or create a dedicated file:
mkdir -p ~/.config/x-cli
cat > ~/.config/x-cli/.env <<'EOF'
X_API_KEY=your_consumer_key
X_API_SECRET=your_secret_key
X_BEARER_TOKEN=your_bearer_token
X_ACCESS_TOKEN=your_access_token
X_ACCESS_TOKEN_SECRET=your_access_token_secret
EOF
chmod 600 ~/.config/x-cli/.env
Quick Verification
x-cli user get openai
x-cli tweet search "from:NousResearch" --max 3
x-cli me mentions --max 5
If reads work but writes fail, regenerate the access token after confirming Read and write permissions.
Common Commands
Tweets
x-cli tweet post "hello world"
x-cli tweet get https://x.com/user/status/1234567890
x-cli tweet delete 1234567890
x-cli tweet reply 1234567890 "nice post"
x-cli tweet quote 1234567890 "worth reading"
x-cli tweet search "AI agents" --max 20
x-cli tweet metrics 1234567890
Users
x-cli user get openai
x-cli user timeline openai --max 10
x-cli user followers openai --max 50
x-cli user following openai --max 50
Self / Authenticated User
x-cli me mentions --max 20
x-cli me bookmarks --max 20
x-cli me bookmark 1234567890
x-cli me unbookmark 1234567890
Quick Actions
x-cli like 1234567890
x-cli retweet 1234567890
Output Modes
Use structured output when the agent needs to inspect fields programmatically:
x-cli -j tweet search "AI agents" --max 5
x-cli -p user get openai
x-cli -md tweet get 1234567890
x-cli -v -j tweet get 1234567890
Recommended defaults:
-jfor machine-readable output-vwhen you need timestamps, metrics, or metadata- plain/default mode for quick human inspection
Agent Workflow
- Confirm
x-cliis installed - Confirm credentials are present
- Start with a read command (
user get,tweet search,me mentions) - Use
-jwhen extracting fields for later steps - Only perform write actions after confirming the target tweet/user and the user's intent
Pitfalls
- Paid API access: many failures are plan/permission problems, not code problems.
- 403 oauth1-permissions: regenerate the access token after enabling
Read and write. - Reply restrictions: X restricts many programmatic replies.
tweet quoteis often more reliable thantweet reply. - Rate limits: expect per-endpoint limits and cooldown windows.
- Credential drift: if you rotate tokens in
~/.hermes/.env, make sure~/.config/x-cli/.envstill points at the current file.
Notes
- Prefer official API workflows over cookie/session scraping.
- Use tweet URLs or IDs interchangeably —
x-cliaccepts both. - If bookmark behavior changes upstream, check the upstream README first: https://github.com/Infatoshi/x-cli
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agentmail
Give the agent its own dedicated email inbox via AgentMail. Send, receive, and manage email autonomously using agent-owned email addresses (e.g. hermes-agent@agentmail.to).
base
Query Base (Ethereum L2) blockchain data with USD pricing — wallet balances, token info, transaction details, gas analysis, contract inspection, whale detection, and live network stats. Uses Base RPC + CoinGecko. No API key required.
solana
Query Solana blockchain data with USD pricing — wallet balances, token portfolios with values, transaction details, NFTs, whale detection, and live network stats. Uses Solana RPC + CoinGecko. No API key required.
one-three-one-rule
Structured decision-making framework for technical proposals and trade-off analysis. When the user faces a choice between multiple approaches (architecture decisions, tool selection, refactoring strategies, migration paths), this skill produces a 1-3-1 format: one clear problem statement, three distinct options with pros/cons, and one concrete recommendation with definition of done and implementation plan. Use when the user asks for a "1-3-1", says "give me options", or needs help choosing between competing approaches.
fastmcp
Build, test, inspect, install, and deploy MCP servers with FastMCP in Python. Use when creating a new MCP server, wrapping an API or database as MCP tools, exposing resources or prompts, or preparing a FastMCP server for Claude Code, Cursor, or HTTP deployment.
qdrant-vector-search
High-performance vector similarity search engine for RAG and semantic search. Use when building production RAG systems requiring fast nearest neighbor search, hybrid search with filtering, or scalable vector storage with Rust-powered performance.
Didn't find tool you were looking for?