repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources16d ago| #1 | --- |
| #2 | name: bird |
| #3 | description: X/Twitter CLI for reading, searching, posting, and engagement via cookies. |
| #4 | homepage: https://bird.fast |
| #5 | metadata: {"clawdbot":{"emoji":"🐦","requires":{"bins":["bird"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/bird","bins":["bird"],"label":"Install bird (brew)"},{"id":"npm","kind":"node","package":"@steipete/bird","bins":["bird"],"label":"Install bird (npm)"}]}} |
| #6 | --- |
| #7 | |
| #8 | # bird 🐦 |
| #9 | |
| #10 | Fast X/Twitter CLI using GraphQL + cookie auth. |
| #11 | |
| #12 | ## Install |
| #13 | |
| #14 | ```bash |
| #15 | # npm/pnpm/bun |
| #16 | npm install -g @steipete/bird |
| #17 | |
| #18 | # Homebrew (macOS, prebuilt binary) |
| #19 | brew install steipete/tap/bird |
| #20 | |
| #21 | # One-shot (no install) |
| #22 | bunx @steipete/bird whoami |
| #23 | ``` |
| #24 | |
| #25 | ## Authentication |
| #26 | |
| #27 | `bird` uses cookie-based auth. |
| #28 | |
| #29 | Use `--auth-token` / `--ct0` to pass cookies directly, or `--cookie-source` for browser cookies. |
| #30 | |
| #31 | Run `bird check` to see which source is active. For Arc/Brave, use `--chrome-profile-dir <path>`. |
| #32 | |
| #33 | ## Commands |
| #34 | |
| #35 | ### Account & Auth |
| #36 | |
| #37 | ```bash |
| #38 | bird whoami # Show logged-in account |
| #39 | bird check # Show credential sources |
| #40 | bird query-ids --fresh # Refresh GraphQL query ID cache |
| #41 | ``` |
| #42 | |
| #43 | ### Reading Tweets |
| #44 | |
| #45 | ```bash |
| #46 | bird read <url-or-id> # Read a single tweet |
| #47 | bird <url-or-id> # Shorthand for read |
| #48 | bird thread <url-or-id> # Full conversation thread |
| #49 | bird replies <url-or-id> # List replies to a tweet |
| #50 | ``` |
| #51 | |
| #52 | ### Timelines |
| #53 | |
| #54 | ```bash |
| #55 | bird home # Home timeline (For You) |
| #56 | bird home --following # Following timeline |
| #57 | bird user-tweets @handle -n 20 # User's profile timeline |
| #58 | bird mentions # Tweets mentioning you |
| #59 | bird mentions --user @handle # Mentions of another user |
| #60 | ``` |
| #61 | |
| #62 | ### Search |
| #63 | |
| #64 | ```bash |
| #65 | bird search "query" -n 10 |
| #66 | bird search "from:steipete" --all --max-pages 3 |
| #67 | ``` |
| #68 | |
| #69 | ### News & Trending |
| #70 | |
| #71 | ```bash |
| #72 | bird news -n 10 # AI-curated from Explore tabs |
| #73 | bird news --ai-only # Filter to AI-curated only |
| #74 | bird news --sports # Sports tab |
| #75 | bird news --with-tweets # Include related tweets |
| #76 | bird trending # Alias for news |
| #77 | ``` |
| #78 | |
| #79 | ### Lists |
| #80 | |
| #81 | ```bash |
| #82 | bird lists # Your lists |
| #83 | bird lists --member-of # Lists you're a member of |
| #84 | bird list-timeline <id> -n 20 # Tweets from a list |
| #85 | ``` |
| #86 | |
| #87 | ### Bookmarks & Likes |
| #88 | |
| #89 | ```bash |
| #90 | bird bookmarks -n 10 |
| #91 | bird bookmarks --folder-id <id> # Specific folder |
| #92 | bird bookmarks --include-parent # Include parent tweet |
| #93 | bird bookmarks --author-chain # Author's self-reply chain |
| #94 | bird bookmarks --full-chain-only # Full reply chain |
| #95 | bird unbookmark <url-or-id> |
| #96 | bird likes -n 10 |
| #97 | ``` |
| #98 | |
| #99 | ### Social Graph |
| #100 | |
| #101 | ```bash |
| #102 | bird following -n 20 # Users you follow |
| #103 | bird followers -n 20 # Users following you |
| #104 | bird following --user <id> # Another user's following |
| #105 | bird about @handle # Account origin/location info |
| #106 | ``` |
| #107 | |
| #108 | ### Engagement Actions |
| #109 | |
| #110 | ```bash |
| #111 | bird follow @handle # Follow a user |
| #112 | bird unfollow @handle # Unfollow a user |
| #113 | ``` |
| #114 | |
| #115 | ### Posting |
| #116 | |
| #117 | ```bash |
| #118 | bird tweet "hello world" |
| #119 | bird reply <url-or-id> "nice thread!" |
| #120 | bird tweet "check this out" --media image.png --alt "description" |
| #121 | ``` |
| #122 | |
| #123 | **⚠️ Posting risks**: Posting is more likely to be rate limited; if blocked, use the browser tool instead. |
| #124 | |
| #125 | ## Media Uploads |
| #126 | |
| #127 | ```bash |
| #128 | bird tweet "hi" --media img.png --alt "description" |
| #129 | bird tweet "pics" --media a.jpg --media b.jpg # Up to 4 images |
| #130 | bird tweet "video" --media clip.mp4 # Or 1 video |
| #131 | ``` |
| #132 | |
| #133 | ## Pagination |
| #134 | |
| #135 | Commands supporting pagination: `replies`, `thread`, `search`, `bookmarks`, `likes`, `list-timeline`, `following`, `followers`, `user-tweets` |
| #136 | |
| #137 | ```bash |
| #138 | bird bookmarks --all # Fetch all pages |
| #139 | bird bookmarks --max-pages 3 # Limit pages |
| #140 | bird bookmarks --cursor <cursor> # Resume from cursor |
| #141 | bird replies <id> --all --delay 1000 # Delay between pages (ms) |
| #142 | ``` |
| #143 | |
| #144 | ## Output Options |
| #145 | |
| #146 | ```bash |
| #147 | --json # JSON output |
| #148 | --json-full # JSON with raw API response |
| #149 | --plain # No emoji, no color (script-friendly) |
| #150 | --no-emoji # Disable emoji |
| #151 | --no-color # Disable ANSI colors (or set NO_COLOR=1) |
| #152 | --quote-depth n # Max quoted tweet depth in JSON (default: 1) |
| #153 | ``` |
| #154 | |
| #155 | ## Global Options |
| #156 | |
| #157 | ```bash |
| #158 | --auth-token <token> # Set auth_token cookie |
| #159 | --ct0 <token> # Set ct0 cookie |
| #160 | --cookie-source <source> # Cookie source for browser cookies (repeatable) |
| #161 | --chrome-profile <name> # Chrome profile name |
| #162 | --chrome-profile-dir <path> # Chrome/Chromium profile dir or cookie DB path |
| #163 | --firefox-profile <name> # Firefox profile |
| #164 | --timeout <ms> # Request timeout |
| #165 | --cookie-timeout <ms> # Cookie extraction timeout |
| #166 | ``` |
| #167 | |
| #168 | ## Config File |
| #169 | |
| #170 | `~/.config/bird/config.json5` (global) or `./.birdrc.json5` (project): |
| #171 | |
| #172 | ```json5 |
| #173 | { |
| #174 | cookieSource: ["chrome"], |
| #175 | chromeProfileDir: "/path/to/Arc/Profile", |
| #176 | timeoutMs: 20000, |
| #177 | quoteDepth: 1 |
| #178 | } |
| #179 | ``` |
| #180 | |
| #181 | Environment variables: `BIRD_TIMEOUT_MS`, `BIRD_COOKIE_TIMEOUT_MS`, `BIRD_QUOTE_DEPTH` |
| #182 | |
| #183 | ## Troubleshooting |
| #184 | |
| #185 | ### Query IDs stale (404 errors) |
| #186 | ```bash |
| #187 | bird query-ids --fresh |
| #188 | ``` |
| #189 | |
| #190 | ### Cookie extraction fails |
| #191 | - Check browser is logged into X |
| #192 | - Try different `--cookie-source` |
| #193 | - For Arc/Brave: use `--chrome-profile-dir` |
| #194 | |
| #195 | --- |
| #196 | |
| #197 | **TL;DR**: Read/search/engage with CLI. Post carefully or use browser. 🐦 |
| #198 |