Bird twitter
Skill codingSamss/all-my-ai-needs/platforms/claude/skills/bird-twitter
Claude Code + Codex 双平台 AI dotfiles:统一管理 skills/agents/hooks,并一键同步到 ~/.claude 与 ~/.codex。
npx -y skills add codingSamss/all-my-ai-needs --skill bird-twitterAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 11 stars11 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Read X/Twitter content via Bird CLI. Actions: read tweets, search, view all bookmarks or bookmark folders, trending, news, timeline, mentions, lists. Keywords: twitter, x, tweet, trending, bookmarks, bookmark folder, 收藏夹, timeline.
SKILL.md
12.7 KB, as published. Nobody here has run it
Bird Twitter Skill (Read-Only)
Read X/Twitter content using the Bird CLI tool. This skill only exposes read-only operations to avoid account suspension risks.
When to Use This Skill
Triggered by:
- "read tweet [id/url]", "show tweet [id/url]"
- "search twitter [query]", "search x [query]"
- "my bookmarks", "twitter bookmarks"
- "bookmark folder", "收藏夹文件夹", "待办收藏夹", "推特收藏夹中的[folder name]"
- "trending", "twitter trends", "what's trending"
- "twitter news", "x news"
- "timeline", "i/timeline", "通知时间线", "device follow"
- "for you", "home", "home timeline", "首页推荐"
- "following", "following timeline", "首页关注流"
- "user timeline [username]", "timeline [username]", "user tweets [username]"
- "my mentions", "twitter mentions"
- "twitter lists", "my lists"
- "my feed"
Terminology Mapping (Unified)
timeline->x.com/i/timeline(device_followendpoint)for you/首页推荐/home->bird home -n 20following/首页关注流->bird home --following -n 100timeline [username]->bird user-tweets <username> -n 20
Default rule: if user says only timeline with no qualifier, treat it as i/timeline.
Prerequisites
- Bird CLI must be installed: 优先使用仓库内置包
vendor/bird-macos-universal-v0.8.0.tar.gz;外部来源可用时可选brew install steipete/tap/bird - Must be logged into X/Twitter in Chrome browser
- In this environment, network access to X should go through local proxy:
HTTP_PROXY=http://127.0.0.1:7897HTTPS_PROXY=http://127.0.0.1:7897
- Run
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 whoamito verify authentication - If Python requests fail with SSL certificate verification behind proxy, ensure
certifiis available (python3 -c "import certifi; print(certifi.where())"); when needed, pass the CA bundle explicitly via--cafile.
Global Options
All commands should use:
- proxy env (
HTTP_PROXY/HTTPS_PROXY) --cookie-source chrometo only use Chrome cookies (skip Safari/Firefox)--timeout 15000to avoid hanging requests
Recommended command prefix:
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:
- In this proxy environment, prefer a single-shot command with explicit
--cafile; do not first try a bare command and then retry. - Script now auto-detects
certifiCA bundle and logsSSL trust source. - You can explicitly force trust source with
--cafile <path>/--capath <dir>; environment variablesSSL_CERT_FILE/SSL_CERT_DIRare still supported. - Emergency fallback only: set
BIRD_INSECURE_SSL=1to 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
Commands
1. Check Auth Status
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
2. Read Tweet
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
Notes:
--plain仅用于临时阅读/命令行快速查看,不得用于“收录/归档/完整保存”任务。- 归档任务必须使用
--json-full,并从article.article_results.result.content_state(正文结构)+media_entities(图片资源)恢复图文顺序。
2b. Archive Tweet/Article (Text + Media)
Use when: 用户要求“收录/归档/完整保存/原文保留(含图)”
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 read --json-full <tweet-id-or-url>
Requirements:
- 保留原文结构(标题、列表、引用、代码块)
- 图片按原文顺序本地化并在文内原位引用
- 必做三数一致校验:预期图片数 = 下载成功数 = 文内引用数
- 结构重建必须以
content_state.blocks为唯一顺序源,禁止用--plain文本推断结构 atomic块类型必须从entityMap.value.type判定(MEDIA/MARKDOWN/DIVIDER),禁止猜测MEDIA必须通过mediaItems[].mediaId -> media_entities[].media_info.original_img_url映射原图- 下载前先清理目标目录中“同编号不同扩展名”的旧文件,避免
img-N.jpg/png并存 - 收尾必须做块级一致性校验:
MEDIA=标准图片引用数、MARKDOWN=代码块数、DIVIDER=分隔线数 - 若存在人工补充图,必须显式标注“补充内容,非 X 原文正文”
- 最后执行一次未引用资产扫描,删除
assets/hitw93-*/下未被任何.md引用的冗余文件
3. Read Thread
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>
4. Read Replies
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:
repliesdoes not support-n/--countin current Bird CLI versions.- Use
--max-pages <number>or--allto control pagination when needed.
5. Search
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
6. View Bookmarks
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
Notes:
bookmarkswithout--folder-idreads All Bookmarks, not a user-created bookmark folder.- If the user names a folder such as
待办, do not summarize All Bookmarks as a substitute. Resolve the folder id first, then read that folder.
6b. View Bookmark Folder
Triggers: "bookmark folder [name/id]", "收藏夹文件夹", "待办收藏夹", "推特收藏夹中的代办/待办"
If the folder URL or numeric id is known:
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 bookmarks --folder-id <folder-id-or-url> -n 20
For a complete folder read:
HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 bird --cookie-source chrome --timeout 15000 bookmarks --folder-id <folder-id-or-url> --all --max-pages 5 --json
Folder-id workflow:
- Prefer a visible folder URL such as
https://x.com/i/bookmarks/<id>;birdaccepts either the numeric id or the full URL. - If only the folder name is known, try
opencli twitter bookmark-foldersto list folder ids. This command is read-only, but it may fail with HTTP 404 when X rotates the GraphQL operation. - If
opencli twitter bookmark-foldersfails, do not fall back to All Bookmarks. Get candidate ids from an already-open Chrome/X URL, browser history/cache, or by inspecting X frontend bundles forBookmarkFoldersSlice; then validate candidates withbird ... bookmarks --folder-id <id> -n 3 --plain. - Match the candidate folder by comparing the first returned tweets with the user's screenshot or named folder context before producing a summary.
- After
--all --max-pages N --json, inspectnextCursor; if it is non-empty and the user asked for exhaustive results, increase--max-pages.
7. View Trending/News
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
8. View Home Timeline
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
8b. View Following Timeline
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
8c. View i/timeline (Device Follow)
Triggers: "timeline", "i/timeline", "notified timeline", "device follow", "通知时间线"
x.com/i/timeline 与 home --following 不是同一数据源。该命令直接请求 device_follow REST endpoint,默认读取 20 条。
SKILLS_HOME="$HOME/.claude/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/.claude/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"
9. View User Tweets
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
10. View Likes
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
11. View Mentions
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
12. View Lists
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
13. View List Timeline
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
14. View Following
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
15. View Followers
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
16. User Info
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>
Output Options (Command-Specific)
Global output flag:
--plain- Stable output without emoji or color (good for parsing)--plain不可作为归档源(会丢失图文结构/媒体信息)
Count flags (supported by many but not all commands):
-n <number>or--count <number>- Limit number of results- Commonly supported:
home,search,bookmarks,likes,mentions,user-tweets,list-timeline,following,followers,lists,news
Pagination-only commands:
replies/threaduse--max-pages <number>or--allinstead of-n/--count
When 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
Important Notes
- This skill is READ-ONLY to avoid account suspension
- Uses unofficial X GraphQL API - may break without notice
- Requires browser login to X for cookie authentication
- If authentication fails, log into X in your browser and try again
Excluded Commands (High Risk)
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 bookmarks