Bird twitter
Skill codingSamss/all-my-ai-needs/platforms/claude/skills/bird-twitter
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.From its SKILL.md
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.
SKILL.md
12.7 KB, ~3.9k tokens by cl100k_base, 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
What ships with it: 3 files
29.8 KB alongside SKILL.md, 1 of them executable
scripts/
- device_follow_timeline.pyruns27.4 KB
- README.md2.4 KB
- skill.config.json86 B