Install
openclaw skills install xfetchUse xfetch CLI to fetch X/Twitter data - tweets, user profiles, search results, timelines, lists, DMs, and notifications. Use this skill whenever you need to...
openclaw skills install xfetchxfetch is a cookie-based X/Twitter scraper CLI. It requires no API keys - just browser cookies for authentication. It's installed globally as xfetch (or can be run via npx @lxgic/xfetch / bunx @lxgic/xfetch).
Authentication must be set up first. Check with:
xfetch auth check
If not authenticated, extract cookies from the user's browser:
xfetch auth extract --browser chrome # or firefox, safari, arc, brave
xfetch auth extract --browser chrome --profile "Profile 1" # specific profile
Or set tokens directly:
xfetch auth set --auth-token <token> --ct0 <token>
Accepts a tweet URL or numeric ID:
xfetch tweet https://x.com/user/status/123456789
xfetch tweet 123456789
Also works with X Article URLs (/article/ID).
xfetch user @handle # by handle (@ is optional)
xfetch user 12345678 # by numeric ID
xfetch tweets @handle # latest 20 tweets
xfetch tweets @handle -n 50 # 50 per page
xfetch tweets @handle --replies # include replies
xfetch tweets @handle --all # all pages (paginated)
xfetch tweets @handle --max-pages 5 # limit to 5 pages
xfetch thread <url-or-id> # full conversation thread
xfetch search "query" # top results
xfetch search "query" --type latest # latest tweets
xfetch search "query" --type people # user results
xfetch search "query" --type photos # photo tweets
xfetch search "query" --type videos # video tweets
xfetch search "from:handle since:2024-01-01" # advanced operators
xfetch search "query" -n 100 --all # all pages
Search types: top (default), latest, people, photos, videos.
xfetch home # algorithmic home timeline
xfetch home --following # chronological (following only)
xfetch bookmarks # your bookmarks
xfetch likes @handle # user's liked tweets
xfetch followers @handle -n 100
xfetch following @handle -n 100
xfetch lists @handle # user's lists
xfetch list <list-id-or-url> # list details
xfetch list-members <list-id-or-url> # list members
xfetch list-tweets <list-id-or-url> -n 50 # list timeline
xfetch dms # inbox overview
xfetch dms inbox # same as above
xfetch dms conversation <conversation_id> # messages in a conversation
xfetch dms <conversation_id> # shortcut for above
xfetch notifications # all notifications
xfetch mentions # mentions only
xfetch verified-notifications # from verified accounts
xfetch auth check # show auth status
xfetch auth extract --browser chrome # extract cookies
xfetch auth set --auth-token <t> --ct0 <t> # set tokens manually
xfetch auth clear # clear saved auth
xfetch auth browsers # list available browsers + profiles
xfetch query-ids --refresh # fetch latest query IDs from X frontend
xfetch query-ids --list # show cached query IDs
All list-like commands (tweets, search, followers, following, likes, bookmarks, home, notifications, mentions, list-members, list-tweets, dms inbox, dms conversation) support these pagination options:
| Flag | Description |
|---|---|
-n, --count <N> | Results per page (default: 20) |
--all | Fetch all available pages |
--max-pages <N> | Maximum number of pages to fetch |
--cursor <cursor> | Resume from a specific cursor |
--resume <file> | Save/restore cursor state to a file |
--delay <ms> | Delay between page requests (default: 1000ms) |
Control output with --format:
xfetch tweets @handle --format json # pretty-printed JSON (default)
xfetch tweets @handle --format jsonl # newline-delimited JSON (streaming)
xfetch tweets @handle --format csv # CSV with headers
xfetch tweets @handle --format sqlite --db tweets.db # SQLite database
Additional output flags:
--json — shorthand for --format json--plain — disable pretty printingPipe to files with shell redirection:
xfetch tweets @handle -n 100 --format csv > tweets.csv
xfetch search "AI" --all --format jsonl > results.jsonl
These can be passed to any command:
| Flag | Description |
|---|---|
--auth-token <token> | Override auth_token cookie |
--ct0 <token> | Override ct0 cookie |
--cookie-source <src> | Cookie source browser |
--chrome-profile <name> | Chrome profile name |
--proxy <url> | Proxy URL (http://user:pass@host:port) |
--proxy-file <path> | File with proxy URLs for rotation |
--timeout <ms> | Request timeout (default: 30000) |
--delay <ms> | Delay between requests (default: 500) |
--no-color | Disable colored output |
--format jsonl for streaming output (avoids buffering entire result set in memory).--max-pages instead of --all when you only need a sample — it's faster and avoids rate limits.xfetch query-ids --refresh to update cached query IDs — X periodically rotates these.jq for filtering: xfetch tweets @handle | jq '.[].text'--db: xfetch tweets @handle --format sqlite --db data.db--delay 2000 or higher.