{“content”:”---\nname: xitter\ndescription: 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.\nversion: 1.0.0\nauthor: Siddharth Balyan + Hermes Agent\nlicense: MIT\nplatforms: [linux, macos]\nprerequisites:\n commands: [uv]\n env_vars: [X_API_KEY, X_API_SECRET, X_BEARER_TOKEN, X_ACCESS_TOKEN, X_ACCESS_TOKEN_SECRET]\nmetadata:\n hermes:\n tags: [twitter, x, social-media, x-cli]\n homepage: https://github.com/Infatoshi/x-cli\n---\n\n# Xitter — X/Twitter via x-cli\n\nUse x-cli for official X/Twitter API interactions from the terminal.\n\nThis skill is for:\n- posting tweets, replies, and quote tweets\n- searching tweets and reading timelines\n- looking up users, followers, and following\n- liking and retweeting\n- checking mentions and bookmarks\n\nThis skill intentionally does not vendor a separate CLI implementation into Hermes. Install and use upstream x-cli instead.\n\n## Important Cost / Access Note\n\nX 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.\n\n## Install\n\nInstall upstream x-cli with uv:\n\nbash\nuv tool install git+https://github.com/Infatoshi/x-cli.git\n\n\nUpgrade later with:\n\nbash\nuv tool upgrade x-cli\n\n\nVerify:\n\nbash\nx-cli --help\n\n\n## Credentials\n\nYou need these five values from the X Developer Portal:\n- X_API_KEY\n- X_API_SECRET\n- X_BEARER_TOKEN\n- X_ACCESS_TOKEN\n- X_ACCESS_TOKEN_SECRET\n\nGet them from:\n- https://developer.x.com/en/portal/dashboard\n\n### Why does X need 5 secrets?\n\nUnfortunately, the official X API splits auth across both app-level and user-level credentials:\n\n- X_API_KEY + X_API_SECRET identify your app\n- X_BEARER_TOKEN is used for app-level read access\n- X_ACCESS_TOKEN + X_ACCESS_TOKEN_SECRET let the CLI act as your user account for writes and authenticated actions\n\nSo 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.\n\nSetup requirements in the portal:\n1. Create or open your app\n2. In user authentication settings, set permissions to Read and write\n3. Generate or regenerate the access token + access token secret after enabling write permissions\n4. Save all five values carefully — missing any one of them will usually produce confusing auth or permission errors\n\nNote: 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.\n\n## Cost / Friction Reality Check\n\nIf 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.\n\nIf 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.\n\n\n## Where to Store Credentials\n\nx-cli looks for credentials in ~/.config/x-cli/.env.\n\nIf you already keep your X credentials in ~/.hermes/.env, the cleanest setup is:\n\nbash\nmkdir -p ~/.config/x-cli\nln -sf ~/.hermes/.env ~/.config/x-cli/.env\n\n\nOr create a dedicated file:\n\nbash\nmkdir -p ~/.config/x-cli\ncat > ~/.config/x-cli/.env <<'EOF'\nX_API_KEY=your_consumer_key\nX_API_SECRET=your_secret_key\nX_BEARER_TOKEN=your_bearer_token\nX_ACCESS_TOKEN=your_access_token\nX_ACCESS_TOKEN_SECRET=your_access_token_secret\nEOF\nchmod 600 ~/.config/x-cli/.env\n\n\n## Quick Verification\n\nbash\nx-cli user get openai\nx-cli tweet search \"from:NousResearch\" --max 3\nx-cli me mentions --max 5\n\n\nIf reads work but writes fail, regenerate the access token after confirming Read and write permissions.\n\n## Common Commands\n\n### Tweets\n\nbash\nx-cli tweet post \"hello world\"\nx-cli tweet get https://x.com/user/status/1234567890\nx-cli tweet delete 1234567890\nx-cli tweet reply 1234567890 \"nice post\"\nx-cli tweet quote 1234567890 \"worth reading\"\nx-cli tweet search \"AI agents\" --max 20\nx-cli tweet metrics 1234567890\n\n\n### Users\n\nbash\nx-cli user get openai\nx-cli user timeline openai --max 10\nx-cli user followers openai --max 50\nx-cli user following openai --max 50\n\n\n### Self / Authenticated User\n\nbash\nx-cli me mentions --max 20\nx-cli me bookmarks --max 20\nx-cli me bookmark 1234567890\nx-cli me unbookmark 1234567890\n\n\n### Quick Actions\n\nbash\nx-cli like 1234567890\nx-cli retweet 1234567890\n\n\n## Output Modes\n\nUse structured output when the agent needs to inspect fields programmatically:\n\nbash\nx-cli -j tweet search \"AI agents\" --max 5\nx-cli -p user get openai\nx-cli -md tweet get 1234567890\nx-cli -v -j tweet get 1234567890\n\n\nRecommended defaults:\n- -j for machine-readable output\n- -v when you need timestamps, metrics, or metadata\n- plain/default mode for quick human inspection\n\n## Agent Workflow\n\n1. Confirm x-cli is installed\n2. Confirm credentials are present\n3. Start with a read command (user get, tweet search, me mentions)\n4. Use -j when extracting fields for later steps\n5. Only perform write actions after confirming the target tweet/user and the user’s intent\n\n## Pitfalls\n\n- Paid API access: many failures are plan/permission problems, not code problems.\n- 403 oauth1-permissions: regenerate the access token after enabling Read and write.\n- Reply restrictions: X restricts many programmatic replies. tweet quote is often more reliable than tweet reply.\n- Rate limits: expect per-endpoint limits and cooldown windows.\n- Credential drift: if you rotate tokens in ~/.hermes/.env, make sure ~/.config/x-cli/.env still points at the current file.\n\n## Notes\n\n- Prefer official API workflows over cookie/session scraping.\n- Use tweet URLs or IDs interchangeably — x-cli accepts both.\n- If bookmark behavior changes upstream, check the upstream README first:\n https://github.com/Infatoshi/x-cli\n”}