xurl
Original:🇺🇸 English
Translated
Use the official xurl CLI for the X API. Covers install, safe auth setup, app selection, common shortcuts, and raw endpoint access.
7installs
Sourcesteipete/agent-scripts
Added on
NPX Install
npx skill4agent add steipete/agent-scripts xurlTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →xurl
Official CLI for the X API.
Primary upstream: https://github.com/xdevplatform/xurl
Install
Homebrew:
bash
brew install --cask xdevplatform/tap/xurlnpm:
bash
npm install -g @xdevplatform/xurlShell script:
bash
curl -fsSL https://raw.githubusercontent.com/xdevplatform/xurl/main/install.sh | bashGo:
bash
go install github.com/xdevplatform/xurl@latestSafety
- Never read, print, summarize, upload, or paste into LLM context.
~/.xurl - Never ask the user to paste client secrets, bearer tokens, or OAuth tokens into chat.
- Never use in agent runs; it can expose auth headers.
--verbose - Do not run auth commands with inline secret flags in an agent session.
- The user must register app credentials manually on their machine outside the agent session.
Auth
Check current state:
bash
xurl auth statusIf an app is already registered, complete OAuth 2.0:
bash
xurl auth oauth2Multi-app:
bash
xurl auth apps list
xurl auth default my-app
xurl auth default my-app alice
xurl --app dev-app /2/users/meNotes:
- stores app config and tokens in
xurl.~/.xurl - OAuth 2.0 redirect URI in the X developer portal should be .
http://localhost:8080/callback - App registration examples with inline secrets are intentionally omitted here. Do that outside the agent session.
Common shortcuts
bash
xurl post "Hello world!"
xurl reply 1234567890 "Nice post"
xurl quote 1234567890 "My take"
xurl delete 1234567890
xurl read 1234567890
xurl search "from:elonmusk" -n 10
xurl whoami
xurl user @XDevelopers
xurl timeline -n 20
xurl mentions -n 10
xurl like 1234567890
xurl unlike 1234567890
xurl repost 1234567890
xurl unrepost 1234567890
xurl bookmark 1234567890
xurl unbookmark 1234567890
xurl bookmarks -n 10
xurl likes -n 10
xurl follow @handle
xurl unfollow @handle
xurl following -n 20
xurl followers -n 20
xurl dm @handle "message"
xurl dms -n 10
xurl media upload path/to/file.mp4
xurl media status MEDIA_IDPOST_IDRaw endpoint mode
GET:
bash
xurl /2/users/mePOST JSON:
bash
xurl -X POST /2/tweets -d '{"text":"Hello world!"}'Headers:
bash
xurl -H "Content-Type: application/json" /2/tweetsChoose auth type:
bash
xurl --auth oauth2 /2/users/me
xurl --auth oauth1 /2/tweets
xurl --auth app /2/users/meChoose OAuth2 account:
bash
xurl --username alice /2/users/meStreaming:
bash
xurl /2/tweets/search/stream
xurl -s /2/users/meQuick checks
Install:
bash
xurl versionAuth:
bash
xurl auth statusLive request after auth:
bash
xurl whoami