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 justbird <id> - This is the #1 source of accidental tweets. Triple-check every bird command.
Forbidden Commands (never run)
bird tweetbird replybird followbird unfollowbird unbookmark
Allowed Commands (query/inspection only)
bird whoamibird checkbird readbird repliesbird threadbird searchbird mentionsbird bookmarksbird likesbird homebird followingbird followersbird listsbird list-timelinebird aboutbird user-tweetsbird news/bird trendingbird query-ids(including--fresh)- NEVER run
bird <id-or-url>without a subcommand — bird's default subcommand istweet(publish), NOTread. Always usebird 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-profileand--usernameexplicitly. - Defaults can be set in
~/.config/skills/config.jsonunderbird(chrome_profile,username).
Task: List unanswered mentions (most recent first)
- Run
scripts/unanswered_mentions.pywith 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:
python scripts/unanswered_mentions.py --cookie-source chrome --chrome-profile "<Profile>" --json-out /tmp/bird-unanswered.json --numbered
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:
python scripts/daily_brief.py
Defaults: AI news + Home following, prints 5 news items and 10 home candidates.
Optional flags:
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.