Fetch, summarize, and manage X/Twitter bookmarks via bird CLI or X API v2. Use when: (1) user says "check my bookmarks", "what did I bookmark", "bookmark dig...
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install x-bookmarks或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install x-bookmarks⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/x-bookmarks/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: x-bookmarks version: 1.1.0 description: > Fetch, summarize, and manage X/Twitter bookmarks via bird CLI or X API v2. Use when: (1) user says "check my bookmarks", "what did I bookmark", "bookmark digest", "summarize my bookmarks", "x bookmarks", "twitter bookmarks", (2) user wants a periodic digest of saved tweets, (3) user wants to categorize, search, or analyze their bookmarks, (4) scheduled bookmark digests via cron. Auth: bird CLI with browser cookies, OR X API v2 with OAuth 2.0 tokens. requires: env: - AUTH_TOKEN: "X/Twitter auth token (from browser cookies, for bird CLI auth)" - CT0: "X/Twitter CSRF token (from browser cookies, for bird CLI auth)" - X_API_BEARER_TOKEN: "Optional: X API v2 Bearer token (alternative to bird CLI)" bins: - bird: "bird-cli (npm i -g bird-cli) - preferred backend" files: - .env.bird: "Optional: stores AUTH_TOKEN and CT0 for bird CLI" - ~/.config/x-bookmarks/tokens.json: "OAuth 2.0 tokens for X API v2 backend" security: credentials: > This skill accesses X/Twitter bookmarks, which requires authentication. Two methods are supported: (1) bird CLI using browser cookies (AUTH_TOKEN/CT0 env vars sourced from .env.bird), or (2) X API v2 with OAuth 2.0 tokens stored locally. All credentials are stored locally on the user's machine and never transmitted to third parties. The user must explicitly provide or authorize credentials. permissions: - read: "X/Twitter bookmarks (read-only access)" - write: "Local files only (bookmark state, token storage)" ---
Turn X/Twitter bookmarks from a graveyard of good intentions into actionable work.
Core philosophy: Don't just summarize — propose actions the agent can execute.
This skill supports two backends. Pick the first one that works:
npm install -g bird-clibird whoami — if this prints a username, you're good1. Check if `bird` command exists → try `bird whoami`
2. If bird works → use bird CLI path
3. If not → check for X API tokens (~/.config/x-bookmarks/tokens.json)
4. If tokens exist → use X API path (auto-refresh)
5. If neither → guide user through setup (offer both options)
# Latest 20 bookmarks (default)
bird bookmarks --json
# Specific count
bird bookmarks -n 50 --json
# All bookmarks (paginated)
bird bookmarks --all --json
# With thread context
bird bookmarks --include-parent --thread-meta --json
# With Chrome cookie auth
bird --chrome-profile "Default" bookmarks --json
# With manual tokens
bird --auth-token "$AUTH_TOKEN" --ct0 "$CT0" bookmarks --json
If user has a .env.bird file or env vars AUTH_TOKEN/CT0, source them first: source .env.bird
# First-time setup (opens browser for OAuth)
python3 scripts/x_api_auth.py --client-id "YOUR_CLIENT_ID" --client-secret "YOUR_SECRET"
# Fetch bookmarks (auto-refreshes token)
python3 scripts/fetch_bookmarks_api.py -n 20
# All bookmarks
python3 scripts/fetch_bookmarks_api.py --all
# Since a specific tweet
python3 scripts/fetch_bookmarks_api.py --since-id "1234567890"
# Pretty print
python3 scripts/fetch_bookmarks_api.py -n 50 --pretty
The API script outputs the same JSON format as bird CLI, so all downstream workflows work identically.
Token management is automatic: tokens are stored in ~/.config/x-bookmarks/tokens.json and refreshed via the saved refresh_token. If refresh fails, the agent should guide the user to re-run x_api_auth.py.
If the user already has a Bearer token (e.g., from another tool), they can skip the OAuth dance:
X_API_BEARER_TOKEN="your_token" python3 scripts/fetch_bookmarks_api.py -n 20
Each bookmark returns:
{
"id": "tweet_id",
"text": "tweet content",
"createdAt": "2026-02-11T01:00:06.000Z",
"replyCount": 46,
"retweetCount": 60,
"likeCount": 801,
"bookmarkCount": 12,
"viewCount": 50000,
"author": { "username": "handle", "name": "Display Name" },
"media": [{ "type": "photo|video", "url": "..." }],
"quotedTweet": { "id": "..." }
}
The key differentiator: don't just summarize, propose actions the agent can execute.
- Tool/repo bookmarks → "I can test this, set it up, or analyze the code" - Strategy/advice bookmarks → "Here are the actionable steps extracted — want me to implement any?" - News/trends → "This connects to [user's work]. Here's the angle for content" - Content ideas → "This would make a great tweet/video in your voice. Here's a draft" - Questions/discussions → "I can research this deeper and give you a summary"
Format output as:
📂 CATEGORY (count)
• Bookmark summary (@author)
→ 🤖 I CAN: [specific action the agent can take]
Set up a recurring bookmark check. Suggest this cron config to the user:
Schedule: daily or weekly
Payload: "Check my X bookmarks for new saves since last check.
Fetch bookmarks, compare against last digest, summarize only NEW ones.
Categorize and propose actions. Deliver to me."
Track state by saving the most recent bookmark ID processed. Store in workspace: memory/bookmark-state.json → { "lastSeenId": "...", "lastDigestAt": "..." }
When user asks for content ideas from bookmarks:
When user has enough bookmark history:
--all)For stale bookmarks:
bird unbookmark (bird only)| Error | Cause | Fix | |-------|-------|-----| | bird: command not found | bird CLI not installed | Use X API path instead, or npm i -g bird-cli | | "No Twitter cookies found" | Not logged into X in browser | Log into x.com in Chrome/Firefox, or use X API | | EPERM on Safari cookies | macOS permissions | Use Chrome/Firefox or X API instead | | Empty results | Cookies/token expired | Re-login or re-run x_api_auth.py | | Rate limit (429) | Too many API requests | Wait and retry, use --count to limit | | "No X API token found" | Haven't run auth setup | Run x_api_auth.py --client-id YOUR_ID | | Token refresh failed | Refresh token expired | Re-run x_api_auth.py to re-authorize |
-n 20 for quick digests, --all for deep analysis--include-parent for thread context on repliesbookmarkCount and viewCount (bird may not)--folder-id 安装 X Bookmarks 后,可以对 AI 说这些话来触发它
Help me get started with X Bookmarks
Explains what X Bookmarks does, walks through the setup, and runs a quick demo based on your current project
Use X Bookmarks to fetch, summarize, and manage X/Twitter bookmarks via bird CLI or X ...
Invokes X Bookmarks with the right parameters and returns the result directly in the conversation
What can I do with X Bookmarks in my marketing & growth workflow?
Lists the top use cases for X Bookmarks, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/x-bookmarks/ 目录(个人级,所有项目可用),或 .claude/skills/x-bookmarks/(项目级)。重启 AI 客户端后,用 /x-bookmarks 主动调用,或让 AI 根据上下文自动发现并使用。
X Bookmarks 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
X Bookmarks 可免费安装使用。请查阅仓库了解许可证信息。
Fetch, summarize, and manage X/Twitter bookmarks via bird CLI or X API v2. Use when: (1) user says "check my bookmarks", "what did I bookmark", "bookmark dig...
X Bookmarks 属于「Marketing & Growth」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my marketing & growth tasks using X Bookmarks
Identifies repetitive steps in your workflow and sets up X Bookmarks to handle them automatically