bird-twitter

Read X/Twitter timelines, tweets, and threads using the bird CLI (cookie-based GraphQL). Use when the user mentions "bird", wants to read their Following/For You timeline, fetch tweets, search X, or pull timeline data for summarization. Prefer over xitter (x-cli) for read-heavy workflows — bird uses browser cookies (zero API cost) while x-cli uses the paid official API.

9 stars

Best use case

bird-twitter is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Read X/Twitter timelines, tweets, and threads using the bird CLI (cookie-based GraphQL). Use when the user mentions "bird", wants to read their Following/For You timeline, fetch tweets, search X, or pull timeline data for summarization. Prefer over xitter (x-cli) for read-heavy workflows — bird uses browser cookies (zero API cost) while x-cli uses the paid official API.

Teams using bird-twitter should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/bird-twitter/SKILL.md --create-dirs "https://raw.githubusercontent.com/exiao/skills/main/external-services/bird-twitter/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/bird-twitter/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How bird-twitter Compares

Feature / Agentbird-twitterStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Read X/Twitter timelines, tweets, and threads using the bird CLI (cookie-based GraphQL). Use when the user mentions "bird", wants to read their Following/For You timeline, fetch tweets, search X, or pull timeline data for summarization. Prefer over xitter (x-cli) for read-heavy workflows — bird uses browser cookies (zero API cost) while x-cli uses the paid official API.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Bird — X/Twitter Cookie-Based CLI

`bird` is a fast X/Twitter CLI that uses browser cookies (GraphQL API) instead of the paid official API. It's the preferred tool for **reading** timelines, tweets, threads, and searches at zero API cost.

## When to Use

- Reading the home timeline (Following or For You feed)
- Fetching individual tweets by ID or URL
- Searching tweets
- Reading threads and replies
- Pulling timeline data for summarization or digest pipelines
- Any read-heavy X/Twitter workflow

## When NOT to Use

- Posting tweets, replying, or write operations (use xitter/x-cli instead for API-backed writes)
- When the user explicitly asks for x-cli or official API

## Cookie Auth

bird extracts cookies automatically from the user's browser. It checks Chrome by default.

Config file: `~/.config/bird/config.json5` or `./.birdrc.json5`

Supported config keys:
- `chromeProfile` — Chrome profile name
- `chromeProfileDir` — Chrome/Chromium profile directory or cookie DB path
- `firefoxProfile` — Firefox profile name
- `cookieSource` — Cookie source for browser extraction
- `cookieTimeoutMs` — Cookie extraction timeout
- `timeoutMs` — Request timeout
- `quoteDepth` — Max quoted tweet nesting depth

### Auth Failure Detection

If bird returns authentication errors (401, "not logged in", cookie extraction failures):
1. Check that the user is logged into X/Twitter in their browser
2. Try specifying a profile: `bird --chrome-profile "Profile 1" whoami`
3. Try Firefox: `bird --firefox-profile default-release whoami`
4. Cookies may have expired — user needs to visit x.com in their browser to refresh

**Important:** When running as a cron job, if auth fails, send a re-auth alert to the user rather than failing silently.

## Key Commands

### Timeline (most common for digest workflows)

```bash
# "Following" feed (chronological) — preferred for digests
bird home --following -n 50 --json --plain

# "For You" feed (algorithmic)
bird home -n 30 --json

# Specific user's tweets
bird user-tweets <handle> -n 20 --json
```

### Reading Tweets

```bash
# Read a single tweet (by URL or ID)
bird read <tweet-id-or-url> --json

# Read a thread
bird thread <tweet-id-or-url> --json

# Read replies
bird replies <tweet-id-or-url> --json
```

### Search

```bash
bird search "AI agents" -n 20 --json
```

### User Info

```bash
bird whoami                    # Check which account is authenticated
bird about <username> --json   # User profile info
bird following -n 50 --json    # Who you follow
bird followers -n 50 --json    # Who follows you
```

### Other Reads

```bash
bird mentions --json           # Your mentions
bird bookmarks --json          # Your bookmarks
bird likes --json              # Your liked tweets
bird lists --json              # Your lists
bird list-timeline <list-id-or-url> -n 30 --json
bird news --json               # Trending/Explore
```

## Output Modes

- `--json` — Machine-readable JSON (required for pipeline processing)
- `--json-full` — JSON with raw API response in `_raw` field
- `--plain` — No emoji, no color (stable for parsing)
- Default — Human-readable with emoji

**For pipelines, always use `--json --plain`.**

## JSON Output Structure

Each tweet in the JSON array contains:
```json
{
  "id": "tweet_id",
  "text": "tweet text content",
  "createdAt": "Thu Apr 30 12:02:10 +0000 2026",
  "replyCount": 0,
  "retweetCount": 5,
  "likeCount": 42,
  "conversationId": "thread_root_id",
  "inReplyToStatusId": "parent_tweet_id",
  "author": { "username": "handle", "name": "Display Name" },
  "authorId": "user_id",
  "media": [{ "type": "photo|video|animated_gif", "url": "..." }],
  "quotedTweet": { ... }
}
```

Key fields for filtering:
- `inReplyToStatusId` — present only on replies (filter these out for top-level-only digests)
- `text` starting with `RT @` — retweets
- `quotedTweet` — nested quote tweet object
- `media` — attached images/videos

## Timeline Digest Pipeline Pattern

Typical cron workflow for summarizing a timeline:

```bash
# 1. Pull timeline
bird home --following -n 50 --json --plain > /tmp/timeline.json

# 2. Filter to last 24h and deduplicate (in Python/jq)
# 3. Categorize and summarize tweets by topic
# 4. Deliver summary to Signal/Telegram/iMessage
```

When summarizing, group tweets by theme:
- Markets & Finance (tickers, earnings, macro)
- AI & Tech (models, tools, launches)
- Business & Strategy (positioning, growth, startups)
- Notable/Culture (viral tweets, observations)

## Combining with signal-cli for Delivery

See the signal-cli-daemon skill for sending summaries to Signal groups via JSON-RPC.

Related Skills

xurl

5
from vamseeachanta/workspace-hub

X/Twitter via xurl CLI: post, search, DM, media, v2 API.

xitter

5
from vamseeachanta/workspace-hub

Interact with X/Twitter via the x-cli terminal client using official X API credentials. Use for posting, reading timelines, searching tweets, liking, retweeting, bookmarks, mentions, and user lookups.

research-paper-writing

5
from vamseeachanta/workspace-hub

End-to-end pipeline for writing ML/AI research papers — from experiment design through analysis, drafting, revision, and submission. Covers NeurIPS, ICML, ICLR, ACL, AAAI, COLM. Integrates automated experiment monitoring, statistical analysis, iterative writing, and citation verification.

cli-productivity

5
from vamseeachanta/workspace-hub

Essential CLI tools and shell productivity patterns for efficient terminal workflows

usage-tracker

5
from vamseeachanta/workspace-hub

Track and analyze usage metrics with timestamped logging, reporting, and trend detection

state-directory-manager

5
from vamseeachanta/workspace-hub

Manage persistent state directories with XDG-compliant paths and cleanup for bash scripts

parallel-batch-executor

5
from vamseeachanta/workspace-hub

Parallel task execution patterns using xargs and job control for significant performance gains

json-config-loader

5
from vamseeachanta/workspace-hub

Configuration file parsing patterns for bash scripts (INI, key=value, JSON)

interactive-menu-builder

5
from vamseeachanta/workspace-hub

Build multi-level interactive CLI menus with navigation and selection for bash scripts

git-sync-manager

5
from vamseeachanta/workspace-hub

Multi-repository git synchronization and fetch-pull-push patterns for batch operations across workspaces

complexity-scorer

5
from vamseeachanta/workspace-hub

Score task complexity using keyword matching, heuristic analysis, and configurable threshold rules

bash-cli-framework

5
from vamseeachanta/workspace-hub

Universal bash CLI patterns for colors, logging, headers, and error handling