xpull
v1.0.1Pull tweets, threads, articles, and replies from X/Twitter. FxTwitter API primary (free), Grok x_search fallback (paid).
xpull
Scripts
node {baseDir}/scripts/fx-fetch.mjs "<url>"— single tweet or articlenode {baseDir}/scripts/fx-fetch.mjs "<url>" --thread— thread (OP only, walks upward)node {baseDir}/scripts/grok-x-search.mjs thread "<url>"— full thread from root (requires XAI_API_KEY)node {baseDir}/scripts/grok-x-search.mjs replies "<url>"— replies (requires XAI_API_KEY)node {baseDir}/scripts/grok-x-search.mjs search "<query>"— search (requires XAI_API_KEY)node {baseDir}/scripts/grok-x-search.mjs search "<query>" --from <handle>— search by author (requires XAI_API_KEY)
Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
XAI_API_KEY | For Grok features | — | xAI API key. Get one at console.x.ai. |
GROK_DAILY_CAP | No | 20 | Max Grok calls per day. Resets at midnight UTC. |
Set XAI_API_KEY as an environment variable or in a .env file in the working directory.
Notes
fx-fetch.mjs— free, no credentials, no state. Callsapi.fxtwitter.comonly.grok-x-search.mjs— requiresXAI_API_KEY. Writes.grok-state.jsonnext to the script to enforce the daily cap. Callsapi.x.aionly.- Grok calls cost $5 per 1,000
x_searchtool uses + token costs.
Version tags
latest
Runtime requirements
Binsnode
EnvXAI_API_KEY
Primary envXAI_API_KEY
