Skip to content
Back to skills

X

ASecurity

Read and write X: post and delete tweets, search recent tweets, like tweets, send DMs. Trigger phrases: x, twitter, tweet.

  • 18 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 25, 2026
ai-agentsgobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 25, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill x --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of X?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for X
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-agent-skills-mirror-9a030567/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-agent-skills-mirror-9a030567)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "x"
description: "Read and write X: post and delete tweets, search recent tweets, like tweets, send DMs. Trigger phrases: x, twitter, tweet."
metadata: { "includeInPrompt": true }
tagline: "Post, search, like, DM. Note: no usable free read tier."
catalog_auth: "OAuth2 PKCE (per-user; paid read access)"
catalog_hosts: ["api.x.com"]
---

# X

## Purpose
Use the user's X account: post and delete tweets, search recent tweets, like tweets, and send DMs. Use when the user mentions X, Twitter, or tweets.

## Tooling
All commands go through `bin/x.py`:

```bash
bin/x.py auth                                     # verify the OAuth token
bin/x.py post --text "hello world"                # post a tweet
bin/x.py search --query "AI agents" --limit 10    # search recent tweets
bin/x.py like --tweet-id 1234567890              # like a tweet (resolves your user ID first)
bin/x.py dm --user-id 1234567890 --text "hello"  # send a DM
bin/x.py delete --tweet-id 1234567890            # delete a tweet
```

Liking a tweet needs your numeric user ID: the CLI resolves it via `/2/users/me` before calling `/2/users/{id}/likes`, so you never have to pass it yourself.

## Auth
- Provider id: `x` (credential is collected as `custom.x`)
- Collection: provider OAuth (OAuth2 PKCE) via the secure credential flow (`credentials.request_api_access`); authorize URL `https://x.com/i/oauth2/authorize`, token URL `https://api.x.com/2/oauth2/token`
- Required scopes: `tweet.read`, `tweet.write`, `users.read`, `like.read`, `like.write`, `dm.read`, `dm.write`, `offline.access`
- Allowed hosts: `api.x.com`
- Status check: `bin/x.py auth` (must return `"ok": true`)
- Cost warning: X has no usable free read tier. The free tier is write-only (about 500 posts a month, about 100 reads a month). Anything beyond basic writes needs a paid tier or the newer pay-per-use pricing (roughly $0.005 per read, $0.01 per post), which is the sane path for a personal assistant. Post and delete stay cheap under either plan.

## Operating Rules
1. `post`, `like`, `dm`, and `delete` are writes: confirm the exact text and target with the user before running, unless standing permission exists.
2. Reading (auth, search) needs no confirmation, but keep `search` usage modest: every search call is a billed read.
3. X rate-limits by endpoint and tier; back off on 429s.
4. Never exfiltrate the credential: the CLI only ever handles surrogates. Do not print, log, or transmit the key value.

## Files
- SKILL.md
- bin/x.py

## Maturity
🧪 Draft: written from X's public API docs; not yet live-tested end-to-end.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.