About xurl
xurl is the official command-line interface for the X API, intended for users and agents making authenticated X requests. It offers shortcuts for common post and read actions alongside raw endpoint requests and multiple authentication modes.
Key features
- 01Post, reply, quote, delete, and read posts
- 02Search posts and inspect the current account
- 03Send requests to raw API endpoints
- 04Select OAuth 1.0a, OAuth 2.0, or app authentication
- 05Choose among registered apps and accounts
- 06Access streaming endpoints
Use cases
- 01Publishing or responding to posts from the command line
- 02Searching X posts by query
- 03Calling X API endpoints with selected authentication
- 04Reading streamed X API data
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ steipete/ agent-scripts --skill xurlAfter installing, type/xurlin Claude Code to confirm it loaded.
Details
From the project READMExurl
Official CLI for the X API.
Primary upstream: https://github.com/xdevplatform/xurl
Install
Homebrew:
brew install --cask xdevplatform/tap/xurl
npm:
npm install -g @xdevplatform/xurl
Shell script:
curl -fsSL https://raw.githubusercontent.com/xdevplatform/xurl/main/install.sh | bash
Go:
go install github.com/xdevplatform/xurl@latest
Safety
- Never read, print, summarize, upload, or paste
~/.xurlinto LLM context. - Never ask the user to paste client secrets, bearer tokens, or OAuth tokens into chat.
- Never use
--verbosein agent runs; it can expose auth headers. - 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:
xurl auth status
If an app is already registered, complete OAuth 2.0:
xurl auth oauth2
Multi-app:
xurl auth apps list
xurl auth default my-app
xurl auth default my-app alice
xurl --app dev-app /2/users/me
Notes:
xurlstores app config and tokens in~/.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
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_ID
POST_ID can also be a full X status URL.
Raw endpoint mode
GET:
xurl /2/users/me
POST JSON:
xurl -X POST /2/tweets -d '{"text":"Hello world!"}'
Headers:
xurl -H "Content-Type: application/json" /2/tweets
Choose auth type:
xurl --auth oauth2 /2/users/me
xurl --auth oauth1 /2/tweets
xurl --auth app /2/users/me
Choose OAuth2 account:
xurl --username alice /2/users/me
Streaming:
xurl /2/tweets/search/stream
xurl -s /2/users/me
Quick checks
Install:
xurl version
Auth:
xurl auth status
Live request after auth:
xurl whoami
Comments
Markdown supported