xurl

Post, search, and manage X/Twitter content via the official xurl CLI and v2 API.

Updated Jun 5, 2026
One-click install
npx skills add https://github.com/xu1713/openhorse --skill xurl-xu1713
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: xurl
Source: https://github.com/xu1713/openhorse/tree/main/openhorse/openhorse/skills/social-media/xurl
Command: npx skills add https://github.com/xu1713/openhorse --skill xurl-xu1713

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Managing X (Twitter) programmatically requires handling OAuth flows, rate limits, and a large API surface. This Skill wraps the official xurl CLI so an agent can post, search, engage, and send DMs through simple commands that return structured JSON, without touching credentials. ## Core Features & Use Cases - Full posting workflow: Post, reply, quote, delete, and attach images or video with media upload and processing-status polling. - Reading and engagement: Search posts, read timelines and mentions, like, repost, bookmark, follow, block, mute, and send direct messages. - Raw v2 API access: Run curl-style requests against any X API v2 endpoint, including streaming endpoints, with multi-app and multi-account support. - Use Case: Ask the agent to search X for posts about your product launch, like the top results, and reply to one with a branded image — all executed through xurl commands with JSON output. ## Quick Start Ask the agent to verify xurl is installed and authenticated with "xurl auth status", then have it post "Hello world!" to your X account.

Frequently Asked Questions about xurl

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I post to X/Twitter from the command line?

Use the xurl CLI: run "xurl post \"your text\"" after completing one-time OAuth setup. It also supports replies, quotes, media attachments via --media-id, and raw POST requests to /2/tweets for full API control.

How do I upload images or video to X posts with xurl?

Run "xurl media upload photo.jpg" to get a media ID, then attach it with "xurl post \"text\" --media-id MEDIA_ID". Videos require server-side processing, so poll with "xurl media status --wait MEDIA_ID" before posting.

Does xurl support multiple X accounts or apps?

Yes. Each registered app has isolated credentials and tokens. Switch with "xurl auth default APP USER" or per-request with "--app NAME" and "-u username". OAuth 2.0 tokens auto-refresh for each account.

Why do I get auth errors after a successful xurl OAuth flow?

The token was likely saved to the built-in default app, which has no client credentials. Re-run "xurl auth oauth2 --app my-app" and then "xurl auth default my-app" so commands use the app that holds your client ID and secret.

Can an AI agent handle xurl credentials directly?

No. The skill forbids agents from reading ~/.xurl, passing inline secret flags, or running auth registration. The user must register apps and authenticate manually; the agent only verifies state with "xurl auth status".