Skill v1.0.0
currentLLM-judged scan90/100version: "1.0.0" name: xurl description: "xurl CLI for authenticated X posts, replies, reads/search, DMs, media upload, followers, auth status, or raw v2 API calls." metadata: { "openclaw": { "emoji": "🐦", "requires": { "bins": ["xurl"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "xdevplatform/tap/xurl", "bins": ["xurl"], "label": "Install xurl (brew)", }, { "id": "npm", "kind": "node", "package": "@xdevplatform/xurl", "bins": ["xurl"], "label": "Install xurl (npm)", }, ], }, }
xurl
Use xurl for X API work. Shortcut commands return JSON; raw mode works for any v2 endpoint.
Secret safety
- Never read, print, summarize, upload, or inspect
~/.xurl. - Never ask user to paste tokens/secrets into chat.
- Do not run auth commands with inline secrets.
- Do not use
--verbosein agent sessions; it can expose auth headers. - Check auth with
xurl auth status.
Common shortcuts
xurl post "Hello world!"xurl reply POST_ID "Nice."xurl quote POST_ID "My take"xurl delete POST_IDxurl read POST_IDxurl search "query" -n 20xurl whoamixurl user @handlexurl timeline -n 20xurl mentions -n 10xurl like POST_IDxurl unlike POST_IDxurl repost POST_IDxurl unrepost POST_IDxurl bookmark POST_IDxurl unbookmark POST_IDxurl followers -n 20xurl following -n 20xurl follow @handlexurl unfollow @handlexurl block @handlexurl unblock @handlexurl mute @handlexurl unmute @handlexurl dm @handle "message"xurl dms -n 10
POST_ID can be a full https://x.com/<user>/status/<id> URL.
Media
xurl media upload image.jpgxurl media upload clip.mp4xurl media status MEDIA_IDxurl post "caption" --media-id MEDIA_ID
Videos may need processing; poll media status.
Auth/app management
xurl auth statusxurl auth apps listxurl auth defaultxurl auth default APP_NAME USERNAMExurl auth apps remove APP_NAME
Per request:
xurl --app APP_NAME /2/users/mexurl --auth oauth2 /2/users/me
Raw API
xurl /2/users/mexurl -X POST /2/tweets -d '{"text":"Hello world!"}'xurl '/2/tweets/search/recent?query=openclaw&max_results=10'
Use raw mode when shortcuts do not cover the endpoint. Keep payloads in temp files for complex JSON.
Output and errors
- JSON stdout on success.
- Non-zero exit on API/auth/network errors.
- 401/403: auth, scope, or app mismatch; check
xurl auth status. - 429: rate limited; back off.
- Media upload failures: check file type/size and media processing status.