X/Twitter CLI for reading, searching, and posting tweets. Uses browser cookies for authentication.
Use bird to read, search, and post on X/Twitter. Cookie-based authentication.
# Check authentication
bird whoami
# Read a tweet
bird read <url-or-id>
# Read a thread
bird thread <url-or-id>
# Search tweets
bird search "query" -n 10
Bird uses browser cookies. Login to x.com in Chrome or Firefox first.
# Check credential sources
bird check
# If needed, set cookies manually
bird whoami --auth-token YOUR_TOKEN --ct0 YOUR_CT0
bird read <url-or-id> # Read single tweet
bird thread <url-or-id> # Full conversation thread
bird replies <url-or-id> # List replies to a tweet
bird home # Home timeline (For You)
bird home --following # Following timeline
bird mentions # Tweets mentioning you
bird user-tweets @handle -n 20 # User's profile timeline
bird search "query" -n 10 # Basic search
bird search "from:username" --all # Search from user
bird search "query" --max-pages 3 # Paginated search
bird news -n 10 # AI-curated trending news
bird trending # Alias for news
bird lists # Your lists
bird list-timeline <id> -n 20 # Tweets from a list
bird bookmarks -n 10 # Your bookmarks
bird likes -n 10 # Your likes
bird following -n 20 # Users you follow
bird followers -n 20 # Users following you
bird about @handle # Account info
bird follow @handle # Follow a user
bird unfollow @handle # Unfollow a user
bird tweet "hello world"
bird reply <url-or-id> "nice thread!"
bird tweet "check this" --media image.png --alt "description"
--auth-token <token> # Set auth_token cookie
--ct0 <token> # Set ct0 cookie
--cookie-source <source> # Cookie source: chrome, firefox, arc, brave
--chrome-profile <name> # Chrome profile name
--firefox-profile <name> # Firefox profile name
-n, --count <n> # Number of results
--json # Output as JSON
Location: ~/.config/bird/config.json5
{
cookieSource: ["chrome"],
timeoutMs: 20000,
quoteDepth: 1,
}
404 errors / stale query IDs:
bird query-ids --fresh
Cookie extraction fails:
--cookie-sourcebird whoami --cookie-source chrome --chrome-profile "Default"--json for programmatic output parsing