Agent skill

xurl

Use the official xurl CLI for the X API. Covers install, safe auth setup, app selection, common shortcuts, and raw endpoint access.

Stars 2,333
Forks 239

Install this agent skill to your Project

npx add-skill https://github.com/steipete/agent-scripts/tree/main/skills/xurl

Metadata

Additional technical details for this skill

openclaw
{
    "emoji": "X",
    "install": [
        {
            "id": "brew",
            "bins": [
                "xurl"
            ],
            "kind": "brew",
            "label": "Install xurl (brew)",
            "formula": "xdevplatform/tap/xurl"
        },
        {
            "id": "npm",
            "bins": [
                "xurl"
            ],
            "kind": "npm",
            "label": "Install xurl (npm)",
            "package": "@xdevplatform/xurl"
        }
    ],
    "requires": {
        "bins": [
            "xurl"
        ]
    }
}

SKILL.md

xurl

Official CLI for the X API.

Primary upstream: https://github.com/xdevplatform/xurl

Install

Homebrew:

bash
brew install --cask xdevplatform/tap/xurl

npm:

bash
npm install -g @xdevplatform/xurl

Shell script:

bash
curl -fsSL https://raw.githubusercontent.com/xdevplatform/xurl/main/install.sh | bash

Go:

bash
go install github.com/xdevplatform/xurl@latest

Safety

  • Never read, print, summarize, upload, or paste ~/.xurl into LLM context.
  • Never ask the user to paste client secrets, bearer tokens, or OAuth tokens into chat.
  • Never use --verbose in 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:

bash
xurl auth status

If an app is already registered, complete OAuth 2.0:

bash
xurl auth oauth2

Multi-app:

bash
xurl auth apps list
xurl auth default my-app
xurl auth default my-app alice
xurl --app dev-app /2/users/me

Notes:

  • xurl stores 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

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_ID

POST_ID can also be a full X status URL.

Raw endpoint mode

GET:

bash
xurl /2/users/me

POST JSON:

bash
xurl -X POST /2/tweets -d '{"text":"Hello world!"}'

Headers:

bash
xurl -H "Content-Type: application/json" /2/tweets

Choose auth type:

bash
xurl --auth oauth2 /2/users/me
xurl --auth oauth1 /2/tweets
xurl --auth app /2/users/me

Choose OAuth2 account:

bash
xurl --username alice /2/users/me

Streaming:

bash
xurl /2/tweets/search/stream
xurl -s /2/users/me

Quick checks

Install:

bash
xurl version

Auth:

bash
xurl auth status

Live request after auth:

bash
xurl whoami

Expand your agent's capabilities with these related and highly-rated skills.

steipete/agent-scripts

brave-search

Web search and content extraction via Brave Search API. Use for searching documentation, facts, or any web content. Lightweight, no browser required.

2,333 239
Explore
steipete/agent-scripts

discord-clawd

Query Peter's local Discord archive in ~/.discrawl/discrawl.db when asked about Discord history, channel activity, top posters, message counts, summaries, or anything in synced Discord data. Use this skill for local search, SQL stats, channel/member lookups, and freshness checks before answering recent or latest Discord questions.

2,333 239
Explore
steipete/agent-scripts

nano-banana-pro

Generate/edit images with Nano Banana Pro (Gemini 3 Pro Image). Use for image create/modify requests incl. edits. Supports text-to-image + image-to-image; 1K/2K/4K; use --input-image.

2,333 239
Explore
steipete/agent-scripts

domain-dns-ops

Domain/DNS ops across Cloudflare, DNSimple, Namecheap for Peter. Use for onboarding zones to Cloudflare, flipping nameservers, setting redirects (Page Rules/Rulesets/Workers), updating redirect-worker mappings, and verifying DNS/HTTP. Source of truth: ~/Projects/manager.

2,333 239
Explore
steipete/agent-scripts

swiftui-liquid-glass

Implement, review, or improve SwiftUI features using the iOS 26+ Liquid Glass API. Use when asked to adopt Liquid Glass in new SwiftUI UI, refactor an existing feature to Liquid Glass, or review Liquid Glass usage for correctness, performance, and design alignment.

2,333 239
Explore
steipete/agent-scripts

swiftui-view-refactor

Refactor and review SwiftUI view files for consistent structure, dependency injection, and Observation usage. Use when asked to clean up a SwiftUI view’s layout/ordering, handle view models safely (non-optional when possible), or standardize how dependencies and @Observable state are initialized and passed.

2,333 239
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results