AI agent skill · by @antoniolg
Bird Cli
Read-only usage of the bird CLI for X/Twitter accounts (timelines, mentions, and analysis). Trigger when asked to inspect whoami, timelines, mentions, replies, search, or reporting tasks without account mutations.
Archived 2026-10-23 · Source updated 2026-05-18. Check the original repository for the latest version.
SKILL.md instructions
# Bird CLI ## Safety Policy (Hard Rules) This skill is **read-only** with respect to X/Twitter account state. - Never use commands that publish or mutate account state. - If a request asks for posting or account mutations, refuse that part and offer a read-only alternative. ### CRITICAL: bird's default subcommand is `tweet` (PUBLISH) - Running `bird <any-text>` without a subcommand will PUBLISH that text as a tweet - To READ a tweet, ALWAYS use `bird read <id-or-url>` — never just `bird <id>` - This is the #1 source of accidental tweets. Triple-check every bird command. ### Forbidden Commands (never run) - `bird tweet` - `bird reply` - `bird follow` - `bird unfollow` - `bird unbookmark` ### Allowed Commands (query/inspection only) - `bird whoami` - `bird check` - `bird read` - `bird replies` - `bird thread` - `bird search` - `bird mentions` - `bird bookmarks` - `bird likes` - `bird home` - `bird following` - `bird followers` - `bird lists` - `bird list-timeline` - `bird about` - `bird user-tweets` - `bird news` / `bird trending` - `bird query-ids` (including `--fresh`) - NEVER run `bird <id-or-url>` without a subcommand — bird's default subcommand is `tweet` (publish), NOT `read`. Always use `bird read <id-or-url>` explicitly. ## Quick Start - Prefer explicit cookie source and browser profile to avoid Safari auto-detection. - If multiple accounts exist, pass `--chrome-profile` and `--username` explicitly. - Defaults can be set in `~/.config/skills/config.json` under `bird` (`chrome_profile`, `username`). ## Task: List unanswered mentions (most recent first) - Run `scripts/unanswered_mentions.py` with the target profile. - If auto-detection fails, pass `--username`. - The script checks `bird replies <tweet>` for a reply authored by the target username (heuristic). Examples: ```bash python scripts/unanswered_mentions.py --cookie-source chrome --chrome-profile "<Profile>" --json-out /tmp/bird-unanswered.json --numbered ``` ```bash python scripts/unanswered_mentions.py --cookie-source chrome --chrome-profile "<Profile>" --show-text --limit 10 ``` Output format: ``` <createdAt> | @author | https://x.com/<author>/status/<id> ``` ## Resources - `scripts/unanswered_mentions.py`: lists unanswered mentions in descending date order. - `scripts/daily_brief.py`: daily brief of AI/dev news + home candidates. ## Task: Daily brief (AI + dev) Run: ```bash python scripts/daily_brief.py ``` Defaults: AI news + Home following, prints 5 news items and 10 home candidates. Optional flags: ```bash python scripts/daily_brief.py --news-count 5 --home-results 10 python scripts/daily_brief.py --allow-for-you # use For You instead of Following python scripts/daily_brief.py --json-out /tmp/bird-daily.json ``` - `scripts/ignore_mentions.py`: mark mention IDs as ignored so they stop appearing.