platforms/hermes/skills/social-media/bird-twitter/SKILL.md
Default X/Twitter read skill for this environment (browser login session via Bird CLI). Prefer this for reading tweets/timelines/search/bookmarks/trending. Actions: read tweets, search, view bookmarks, trending, news, timeline, mentions, lists. Keywords: twitter, x, tweet, trending, bookmarks, timeline.
npx skillsauth add codingsamss/ai-dotfiles bird-twitterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Read X/Twitter content using the Bird CLI tool. This skill only exposes read-only operations to avoid account suspension risks.
Default routing note for this machine:
curl scraping, third-party mirrors (fx/vx/nitter), or ad-hoc HTTP parsing when Bird is available.xitter only when official API or write actions are explicitly needed.Triggered by:
timeline -> x.com/i/timeline (device_follow endpoint)for you / 首页推荐 / home -> bird home -n 20following / 首页关注流 -> bird home --following -n 100timeline [username] -> bird user-tweets <username> -n 20Default rule: if user says only timeline with no qualifier, treat it as i/timeline.
brew install steipete/tap/birdbird check --plainbird --cookie-source chrome --timeout 15000 whoamiHTTP_PROXY=http://127.0.0.1:7897HTTPS_PROXY=http://127.0.0.1:7897certifi is available (python3 -c "import certifi; print(certifi.where())"); when needed, pass the CA bundle explicitly via --cafile.All commands should use:
--cookie-source chrome to only use Chrome cookies (skip Safari/Firefox)--timeout 15000 to avoid hanging requestsHTTP_PROXY / HTTPS_PROXY) only if your network requires itRecommended command prefix (default, no proxy):
bird --cookie-source chrome --timeout 15000 <command>
If proxy is required in your environment:
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 <command>
For device_follow_timeline.py:
--cafile; do not first try a bare command and then retry.certifi CA bundle and logs SSL trust source.--cafile <path> / --capath <dir>; environment variables SSL_CERT_FILE / SSL_CERT_DIR are still supported.BIRD_INSECURE_SSL=1 to retry once without SSL verification.Example:
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 home -n 20
Triggers: "twitter auth", "bird whoami", "check twitter login"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 whoami
Triggers: "read tweet [id]", "show tweet [url]", "get tweet"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 read <tweet-id-or-url>
Options: --plain for stable output without emoji/color
Triggers: "read thread [id]", "show thread [url]"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 thread <tweet-id-or-url>
Triggers: "show replies to [id]", "tweet replies"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 replies <tweet-id-or-url>
Notes:
replies does not support -n / --count in current Bird CLI versions.--max-pages <number> or --all to control pagination when needed.Triggers: "search twitter [query]", "search x [query]", "find tweets about"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 search "<query>" -n 10
Triggers: "my bookmarks", "twitter bookmarks", "saved tweets"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 bookmarks -n 20
Triggers: "trending", "twitter trends", "what's trending", "twitter news", "x news"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 news
Triggers: "home", "home timeline", "my feed", "for you", "首页推荐"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 home -n 20
Triggers: "following", "following timeline", "首页关注流", "关注时间线"
Following 时间线按时间排序,是日常信息获取的主要入口。默认拉 100 条以覆盖近一天的内容,避免遗漏。
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 home --following -n 100
Triggers: "timeline", "i/timeline", "notified timeline", "device follow", "通知时间线"
x.com/i/timeline 与 home --following 不是同一数据源。该命令直接请求 device_follow REST endpoint,默认读取 20 条。
SKILLS_HOME="$HOME/.codex/skills"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 \
python3 "${SKILLS_HOME}/bird-twitter/scripts/device_follow_timeline.py" \
--count 20 \
--cafile "$(python3 -c 'import certifi; print(certifi.where())')"
如需严格对齐抓包参数,传入完整请求 URL:
SKILLS_HOME="$HOME/.codex/skills"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 \
python3 "${SKILLS_HOME}/bird-twitter/scripts/device_follow_timeline.py" \
--count 20 \
--request-url "$BIRD_DEVICE_FOLLOW_URL"
Triggers: "tweets from [username]", "timeline [username]", "[username]'s tweets"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 user-tweets <username> -n 20
Triggers: "my likes", "liked tweets"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 likes -n 20
Triggers: "my mentions", "twitter mentions", "who mentioned me"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 mentions -n 20
Triggers: "my lists", "twitter lists"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 lists
Triggers: "list timeline [id]", "tweets from list"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 list-timeline <list-id-or-url> -n 20
Triggers: "who do I follow", "my following"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 following -n 50
Triggers: "my followers", "who follows me"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 followers -n 50
Triggers: "about [username]", "user info [username]"
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 about <username>
Global output flag:
--plain - Stable output without emoji or color (good for parsing)Count flags (supported by many but not all commands):
-n <number> or --count <number> - Limit number of resultshome, search, bookmarks, likes, mentions, user-tweets, list-timeline, following, followers, lists, newsPagination-only commands:
replies / thread use --max-pages <number> or --all instead of -n / --countWhen in doubt, check command-specific help first:
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 <command> --help
bird ... bookmarks -n <N> --plain first to quickly scan authors, dates, and candidate URLs.bird read <tweet-url> --json.--json over --json-full for long article-style tweets during batch analysis. In real sessions, --json-full can become very large (full _raw payload / article blocks) and may get truncated by wrappers or downstream JSON parsers.--json-full for a long X Article in a scripted workflow, redirect stdout to a temporary file first, then parse that file locally. This avoids wrapper output caps corrupting JSON mid-payload.--json-full only when you specifically need raw article block structure, expanded metadata, or deep URL extraction from _raw.bird read <tweet-url> --json often exposes enough fields (for example article.title) to decide whether the item is already curated in a knowledge base.--json-full includes _raw.article.article_results.result.rest_id, you can construct a stable X Article URL as https://x.com/i/article/<rest_id> and share that as the longform original.The following commands are intentionally NOT exposed due to account suspension risk:
bird tweet - Post new tweetsbird reply - Reply to tweetsbird follow / bird unfollow - Follow/unfollow usersbird unbookmark - Remove bookmarksdevelopment
Query Midea MX / 美信 local message cache through the MX local HTTP query service from Codex. Use when the user asks to read MX sessions, search chat history, search messages globally or inside a group/session, list recent messages, or page message history. This is read-only and does not require send authorization. Never fall back to reading SQLite or app cache files directly.
development
Safely search MX users or groups and send Midea MX / 美信 IM messages from Codex. Use when the user asks to notify someone, send a message to a person or group, use a configured group alias, @ users, @ all, or send MX file/image messages. Read lookups need no extra authorization; every live send needs explicit user authorization for that exact target and message.
tools
MX channel output rules. Always active in MX conversations.
tools
Use the company WorkSpace `ws` CLI reliably as a delegated coding agent from Codex. Trigger when the user wants Codex to command `ws`, WorkSpace CLI, or the company opencode-derived coding tool to generate code, inspect a repo, run a bounded implementation task, or use a requested WorkSpace model while Codex reviews the output.