An open API service indexing awesome lists of open source software.

https://github.com/zaydiscold/bird

fast cli for twitter/x, by @steipete. mirrored here so the tool stays accessible after the original repo was removed.
https://github.com/zaydiscold/bird

bird cli homebrew safari-cookies twitter x

Last synced: 11 days ago
JSON representation

fast cli for twitter/x, by @steipete. mirrored here so the tool stays accessible after the original repo was removed.

Awesome Lists containing this project

README

          


banner

bird

fast cli for twitter/x. built by @steipete. mirrored here so it stays accessible.


cli
macos
site


what it does · install · usage · ai agents





·




## what it does

bird is a cli for reading and posting on twitter/x. no api keys. no oauth dance. it reads cookies directly from safari or chrome.

the original [steipete/bird](https://github.com/steipete/bird) repo was removed from github. this mirror exists so people who depend on the tool can still get it. all credit for the cli goes to [@steipete](https://x.com/steipete) (Peter Steinberger). i'm just keeping the lights on.





·




## install

```bash
# direct download — universal arm64/x86_64 binary from this mirror
curl -L https://github.com/zaydiscold/bird/releases/download/v0.8.0/bird -o bird
chmod +x bird
sudo mv bird /usr/local/bin/bird
```

or with wget:

```bash
wget -O bird https://github.com/zaydiscold/bird/releases/download/v0.8.0/bird
chmod +x bird
sudo mv bird /usr/local/bin/bird
```

> **note on homebrew:** steipete's tap (`brew install steipete/tap/bird`) was the original install method. i'm not sure if that tap is still maintained — it may be down. use the curl install above to be safe.

> steipete's original tap: `brew install steipete/tap/bird`

verify:

```bash
bird whoami # returns your twitter handle
```

requires being logged into x.com in safari or chrome.





·




## usage

bird auto-detects safari cookies. no setup.

```bash
bird whoami # confirm logged-in account
bird check # check cookie availability
bird --chrome-profile "Default" ... # use chrome instead of safari
```

### read

```bash
bird read # single tweet
bird thread # full conversation thread
bird thread --all # thread, all pages
bird replies # replies to a tweet
bird user-tweets @handle -n 20 # user's recent tweets
```

### search

```bash
bird search "query" -n 20
bird search "from:@handle keyword" -n 10
bird search "term" --all # paginate through everything
```

### timeline

```bash
bird home -n 20 # for you feed
bird home --following -n 20 # following, chronological
bird mentions -n 20 # your mentions
bird bookmarks -n 20 # saved bookmarks
bird likes -n 20 # liked tweets
bird lists # your lists
bird list-timeline # list timeline
bird about @handle # account origin and location
bird following -n 50 # who you follow
bird followers -n 50 # your followers
```

### post

```bash
bird tweet "text here"
bird reply "reply text"
bird follow @handle
bird unfollow @handle

# attach media — up to 4 images or 1 video
bird tweet "caption" --media /path/to/image.jpg --alt "alt text"
bird tweet "caption" --media /path/to/video.mp4

# long posts (X Premium): text over 280 weighted chars is auto-routed
# through CreateNoteTweet — no flag needed, just write a long tweet
bird tweet "$(cat my-long-post.txt)"
```

**long posts / note tweets (new in 0.9.0):** if your text exceeds the standard
280 weighted-char limit (URLs count as 23), `tweet`/`reply` automatically use
X's `CreateNoteTweet` mutation instead of `CreateTweet`. Requires X Premium on
the account. Short tweets are unaffected — they still use the cheap path. The
note-tweet request carries the distinct feature-flag set + `fieldToggles` that
X's web client sends, so it passes server-side validation.

### output

```bash
bird read --json # structured json
bird read --json-full # json + raw api response
bird search "query" --plain # no color, pipeable
```

flags: `-n` result count · `--all` paginate · `--following` filter · `--ai-only` curated news · `--with-tweets` include tweets · `--tweets-per-item N` · `--chrome-profile "Name"` · `--json` · `--json-full` · `--plain` · `--media path` · `--alt text`





·




## use with ai agents

for claude code, cursor, codex, and other ai agents: **[zaydiscold/bird-skill](https://github.com/zaydiscold/bird-skill)**

i built the skill myself. paste any x.com link into a claude code session and it reads the tweet directly — no browser, no webfetch. it also handles timelines, search, posting, all of it. homegrown, built to work on top of peter's binary.

```bash
npx skills add zaydiscold/bird-skill@bird -g -y
```





·









star history chart


mit. license





·




zayd / cold


zayd.wtf · twitter · github


icarus only fell because he flew


to do


☑ mirror binary + release

☑ homebrew formula

☑ bird-skill for ai agents

☐ auto-update check on install