OpenClaw LogoOpenClaw AI

bird

X/Twitter CLI for reading, searching, posting, and engagement via cookies.64

bird 🐦

Fast X/Twitter CLI using GraphQL + cookie auth.

Install

# npm/pnpm/bunnpm install -g @steipete/bird
# Homebrew (macOS, prebuilt binary)brew install steipete/tap/bird
# One-shot (no install)bunx @steipete/bird whoami

Authentication

bird uses cookie-based auth.

Use --auth-token / --ct0 to pass cookies directly, or --cookie-source for browser cookies.

Run bird check to see which source is active. For Arc/Brave, use --chrome-profile-dir <path>.

Commands

Account & Auth

bird whoami                    # Show logged-in accountbird check                     # Show credential sourcesbird query-ids --fresh         # Refresh GraphQL query ID cache

Reading Tweets

bird read <url-or-id>          # Read a single tweetbird <url-or-id>               # Shorthand for readbird thread <url-or-id>        # Full conversation threadbird replies <url-or-id>       # List replies to a tweet

Timelines

bird home                      # Home timeline (For You)bird home --following          # Following timelinebird user-tweets @handle -n 20 # User's profile timelinebird mentions                  # Tweets mentioning youbird mentions --user @handle   # Mentions of another user

Search

bird search "query" -n 10bird search "from:steipete" --all --max-pages 3

News & Trending

bird news -n 10                # AI-curated from Explore tabsbird news --ai-only            # Filter to AI-curated onlybird news --sports             # Sports tabbird news --with-tweets        # Include related tweetsbird trending                  # Alias for news

Lists

bird lists                     # Your listsbird lists --member-of         # Lists you're a member ofbird list-timeline <id> -n 20  # Tweets from a list

Bookmarks & Likes

bird bookmarks -n 10bird bookmarks --folder-id <id>           # Specific folderbird bookmarks --include-parent           # Include parent tweetbird bookmarks --author-chain             # Author's self-reply chainbird bookmarks --full-chain-only          # Full reply chainbird unbookmark <url-or-id>bird likes -n 10

Social Graph

bird following -n 20           # Users you followbird followers -n 20           # Users following youbird following --user <id>     # Another user's followingbird about @handle             # Account origin/location info

Engagement Actions

bird follow @handle            # Follow a userbird unfollow @handle          # Unfollow a user

Posting

bird tweet "hello world"bird reply <url-or-id> "nice thread!"bird tweet "check this out" --media image.png --alt "description"

⚠️ Posting risks : Posting is more likely to be rate limited; if blocked, use the browser tool instead.

Media Uploads

bird tweet "hi" --media img.png --alt "description"bird tweet "pics" --media a.jpg --media b.jpg  # Up to 4 imagesbird tweet "video" --media clip.mp4            # Or 1 video

Pagination

Commands supporting pagination: replies, thread, search, bookmarks, likes, list-timeline, following, followers, user-tweets

bird bookmarks --all                    # Fetch all pagesbird bookmarks --max-pages 3            # Limit pagesbird bookmarks --cursor <cursor>        # Resume from cursorbird replies <id> --all --delay 1000    # Delay between pages (ms)

Output Options

--json          # JSON output--json-full     # JSON with raw API response--plain         # No emoji, no color (script-friendly)--no-emoji      # Disable emoji--no-color      # Disable ANSI colors (or set NO_COLOR=1)--quote-depth n # Max quoted tweet depth in JSON (default: 1)

Global Options

--auth-token <token>       # Set auth_token cookie--ct0 <token>              # Set ct0 cookie--cookie-source <source>   # Cookie source for browser cookies (repeatable)--chrome-profile <name>    # Chrome profile name--chrome-profile-dir <path> # Chrome/Chromium profile dir or cookie DB path--firefox-profile <name>   # Firefox profile--timeout <ms>             # Request timeout--cookie-timeout <ms>      # Cookie extraction timeout

Config File

~/.config/bird/config.json5 (global) or ./.birdrc.json5 (project):

{  cookieSource: ["chrome"],  chromeProfileDir: "/path/to/Arc/Profile",  timeoutMs: 20000,  quoteDepth: 1,}

Environment variables: BIRD_TIMEOUT_MS, BIRD_COOKIE_TIMEOUT_MS, BIRD_QUOTE_DEPTH

Troubleshooting

Query IDs stale (404 errors)

bird query-ids --fresh

Cookie extraction fails

  • Check browser is logged into X
  • Try different --cookie-source
  • For Arc/Brave: use --chrome-profile-dir

TL;DR : Read/search/engage with CLI. Post carefully or use browser. 🐦