[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KW0J69PPWSCVSR6JVJ0P1F":3,"skill-same:01M6KW0J69PPWSCVSR6JVJ0P1F":82},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":61,"commitSha":62,"skillDirectory":63,"forksCount":64,"repositoryHtmlUrl":65,"repositoryHomepageUrl":66,"ownerHtmlUrl":67,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":68,"install":69,"resources":81},"01M6KW0J69PPWSCVSR6JVJ0P1F","x_intel",null,"Read X (Twitter) posts, search, timelines and user profiles via the official xurl CLI.","mateaix\u002Fmateclaw","mateaix","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F57164338?v=4","01M6KVQ3JXJP7M6D3BKS2BAMFF","01M6KVQ3Q8YG7DT57AY22TBXGG",1196,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmateaix\u002Fmateclaw\u002Fblob\u002Fdev\u002Fmateclaw-server\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fx_intel\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"x intel","xurl","execute","shell","via","research","true","linux","twitter","profiles","social-media","macos","read","command","cli","social","search","official","Media","posts","2026-11-10 10:12:30",false,"---\nname: x_intel\ndescription: \"Read X (Twitter) posts, search, timelines and user profiles via the official xurl CLI.\"\nnameZh: X 情报采集\nnameEn: X Intel\nversion: 1.0.0\nicon: 🐦\nauthor: MateClaw\noptional: true\ntags:\n  - x\n  - twitter\n  - social-media\n  - research\n  - xurl\nplatforms:\n  - linux\n  - macos\ndependencies:\n  commands:\n    - xurl\n  tools:\n    - execute_shell_command\n---\n\n# x_intel — X (Twitter) information gathering\n\n`x_intel` lets an agent pull posts, search results, timelines and user profiles from X (Twitter) through `xurl`, the X developer platform's official CLI. **This skill is read-only by design** — it intentionally omits posting, replying, deleting, DM-sending and any other write surface. For a separate publishing skill, see follow-up work.\n\nUse this skill for:\n\n- looking up a single post by ID or URL\n- searching posts with the X search query syntax (`from:user`, `lang:en`, `#hashtag`, ...)\n- reading the agent operator's home timeline, mentions, bookmarks, likes\n- inspecting a user profile by handle\n- walking the social graph (who someone follows \u002F is followed by)\n- raw read access to any X API v2 GET endpoint when the shortcuts don't fit\n\n---\n\n## Credential safety (mandatory)\n\nCritical rules when invoked inside an agent session:\n\n- **Never** read, print, parse, summarize, upload or quote `~\u002F.xurl` into chat context. It is a YAML token store.\n- **Never** ask the user to paste credentials\u002Ftokens into the conversation.\n- **Never** suggest or run the auth commands with inline secrets in an agent session.\n- **Never** pass `--verbose` \u002F `-v` — it prints auth headers to stdout.\n- The only credential-touching command this skill ever runs is `xurl auth status` (status only, no secrets).\n\nForbidden flags in any agent-issued command (each accepts inline secrets):\n`--bearer-token`, `--consumer-key`, `--consumer-secret`, `--access-token`, `--token-secret`, `--client-id`, `--client-secret`.\n\nApp registration and the OAuth 2.0 PKCE flow must be performed by the user **outside** the agent session (see \"User setup\" below). Tokens persist in `~\u002F.xurl` (YAML); OAuth 2.0 refreshes automatically.\n\n---\n\n## Install\n\nThe agent should verify, not install. Direct the user to install if missing.\n\nUse the pinned [upstream v1.3.4 release](https:\u002F\u002Fgithub.com\u002Fxdevplatform\u002Fxurl\u002Freleases\u002Ftag\u002Fv1.3.4). The Go option requires Go 1.24.2 or newer (see the release's [go.mod](https:\u002F\u002Fgithub.com\u002Fxdevplatform\u002Fxurl\u002Fblob\u002Fv1.3.4\u002Fgo.mod)); ensure `$(go env GOPATH)\u002Fbin` is on `PATH`, or `GOBIN` if explicitly configured. Do not download and execute remote shell installers.\n\n```bash\n# Go (Linux + macOS, exact release)\ngo install github.com\u002Fxdevplatform\u002Fxurl@v1.3.4\n\n# Alternative: Homebrew (macOS, version managed by the upstream tap)\nbrew install --cask xdevplatform\u002Ftap\u002Fxurl\n```\n\nVerify:\n\n```bash\nxurl --help\nxurl auth status\n```\n\n---\n\n## User setup (user runs these, NOT the agent)\n\nThe agent must not perform these steps — they involve pasting secrets. Direct the user to this section verbatim.\n\n1. Open the X developer dashboard: \u003Chttps:\u002F\u002Fdeveloper.x.com\u002Fen\u002Fportal\u002Fdashboard>\n2. In the app's User Authentication Settings, set the redirect URI to `http:\u002F\u002Flocalhost:8080\u002Fcallback` and the app type to **Web app, automated app or bot**.\n3. Copy the app's Client ID and Client Secret.\n4. Register the app locally:\n   ```bash\n   xurl auth apps add my-app --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET\n   ```\n5. Authenticate (this opens a browser for OAuth 2.0 PKCE):\n   ```bash\n   xurl auth oauth2 --app my-app\n   ```\n   If X returns `UsernameNotFound` or a 403 on the post-OAuth `\u002F2\u002Fusers\u002Fme` lookup, pass the handle explicitly (xurl v1.1.0+):\n   ```bash\n   xurl auth oauth2 --app my-app YOUR_HANDLE\n   ```\n6. Mark this app as the default so all commands use it:\n   ```bash\n   xurl auth default my-app\n   ```\n7. Verify:\n   ```bash\n   xurl auth status\n   xurl whoami\n   ```\n\n> **Most common mistake:** omitting `--app my-app` from `xurl auth oauth2`. The OAuth token then lands in the built-in `default` profile, which has no client-id\u002Fclient-secret, and every later read fails. Re-run `xurl auth oauth2 --app my-app` and `xurl auth default my-app` to fix.\n\n---\n\n## Read-only command reference\n\nAll commands return JSON to stdout. The agent parses JSON directly; no extra tooling needed.\n\n| Action | Command |\n| --- | --- |\n| Who is the bound account | `xurl whoami` |\n| Look up a user | `xurl user @handle` |\n| Read one post (ID or URL) | `xurl read POST_ID` |\n| Search posts | `xurl search \"QUERY\" -n 10` |\n| Home timeline | `xurl timeline -n 20` |\n| Mentions of bound account | `xurl mentions -n 20` |\n| Bookmarks list | `xurl bookmarks -n 20` |\n| Likes list | `xurl likes -n 20` |\n| Following list | `xurl following -n 50` |\n| Followers list | `xurl followers -n 50` |\n| Another user's graph | `xurl following --of HANDLE -n 20` |\n| Auth status | `xurl auth status` |\n\nNotes:\n\n- `POST_ID` accepts a full `https:\u002F\u002Fx.com\u002Fuser\u002Fstatus\u002F...` URL — xurl extracts the ID.\n- Handles work with or without the leading `@`.\n\n### Search query language\n\nX's search supports operators inside the quoted query string:\n\n```bash\nxurl search \"from:elonmusk -is:retweet\" -n 20\nxurl search \"#buildinpublic lang:en since:2026-01-01\" -n 25\nxurl search \"OR\" -n 10                        # literal OR — must be quoted\nxurl search \"(rust OR go) lang:en\" -n 10\nxurl search \"to:NASA -is:reply\" -n 10\n```\n\nCommon operators: `from:`, `to:`, `@`, `#`, `is:retweet`, `is:reply`, `is:quote`, `lang:`, `since:`, `until:`, `has:media`, `has:links`. See the X search syntax docs for the full list.\n\n---\n\n## Raw v2 read access\n\nFor anything beyond the shortcuts, hit any v2 GET endpoint directly:\n\n```bash\n# Public user fields\nxurl \u002F2\u002Fusers\u002Fby\u002Fusername\u002Felonmusk?user.fields=public_metrics,description,verified\n\n# Single tweet with metrics + author expansion\nxurl \u002F2\u002Ftweets\u002F1234567890?tweet.fields=public_metrics,created_at&expansions=author_id\n\n# Recent search with extra fields (paid tier)\nxurl \u002F2\u002Ftweets\u002Fsearch\u002Frecent?query=langchain&tweet.fields=created_at,public_metrics&max_results=25\n\n# Full URLs also work\nxurl https:\u002F\u002Fapi.x.com\u002F2\u002Fusers\u002Fme\n```\n\nStreaming endpoints are auto-detected; force with `-s` if needed. **Streaming endpoints can be expensive — do not start one without confirming intent with the user.**\n\n---\n\n## Common workflows\n\n### Profile a user\n\n```bash\nxurl user @handle\nxurl \u002F2\u002Fusers\u002Fby\u002Fusername\u002Fhandle?user.fields=public_metrics,description,verified,created_at\nxurl following --of handle -n 20    # who they pay attention to\n```\n\n### Triage a trending term\n\n```bash\nxurl search \"topic lang:en -is:retweet\" -n 25\n# Pick interesting IDs from the JSON, then drill in:\nxurl read 1234567890\nxurl user @ORIGINAL_POSTER\n```\n\n### Catch up on activity\n\n```bash\nxurl whoami\nxurl mentions -n 20\nxurl timeline -n 20\nxurl bookmarks -n 10\n```\n\n### Conversation context\n\n```bash\nxurl read https:\u002F\u002Fx.com\u002Fuser\u002Fstatus\u002F1234567890\n# Conversation expansion via raw v2\nxurl \u002F2\u002Ftweets\u002Fsearch\u002Frecent?query=conversation_id:1234567890&max_results=25\n```\n\n---\n\n## Output format\n\nEvery command emits X API v2 shape JSON to stdout:\n\n```json\n{\n  \"data\": { \"id\": \"1234567890\", \"text\": \"Hello world!\" },\n  \"includes\": { \"users\": [{ \"id\": \"...\", \"username\": \"...\" }] }\n}\n```\n\nErrors are also JSON:\n\n```json\n{ \"errors\": [ { \"message\": \"Not authorized\", \"code\": 403 } ] }\n```\n\nThe non-zero exit code distinguishes errors from empty results.\n\n---\n\n## Agent workflow\n\n1. Verify prerequisites: `xurl --help` (the command exists) and `xurl auth status` (the user has at least one app with `oauth2` tokens, marked `▸` as default).\n2. **Parse `auth status` output before any other command.** If the default app shows `oauth2: (none)` but a non-default app has valid tokens, instruct the user to run `xurl auth default \u003Cthat-app>` — this is the most common config glitch and does not require a re-login.\n3. If `auth status` shows no apps or no tokens, **stop**. Tell the user to follow the \"User setup\" section. Do not attempt to register apps or run any auth flow yourself.\n4. Start with the cheapest read first (`xurl whoami` \u002F `xurl user @handle` \u002F `xurl search ... -n 3`) to confirm reachability and the request shape.\n5. Treat 401 \u002F 403 \u002F 429 distinctly: 401 → re-auth needed, 403 → scope or plan, 429 → wait and retry (X rate-limits per-endpoint).\n6. Never paste `~\u002F.xurl` content back into the conversation, even when troubleshooting.\n7. When in doubt about cost: X's API has paid tiers and per-endpoint rate limits. Do not run unbounded loops or streams without the user's explicit confirmation.\n\n---\n\n## Troubleshooting\n\n| Symptom | Cause | Fix |\n| --- | --- | --- |\n| `auth status` shows `oauth2: (none)` on default | Token saved to built-in `default` profile (no client-id\u002Fsecret) | Re-run `xurl auth oauth2 --app my-app` then `xurl auth default my-app` |\n| `unauthorized_client` during OAuth | App type set to \"Native App\" in X dashboard | Change to \"Web app, automated app or bot\" |\n| `UsernameNotFound` \u002F 403 right after OAuth | X not returning username from `\u002F2\u002Fusers\u002Fme` | `xurl auth oauth2 --app my-app YOUR_HANDLE` (xurl v1.1.0+) |\n| 401 on every read | Token expired or wrong default app | Check `xurl auth status` — verify `▸` points to the app with oauth2 tokens |\n| `client-forbidden` \u002F `client-not-enrolled` | X platform enrollment | Developer dashboard → Apps → Manage → Production environment |\n| `CreditsDepleted` | $0 balance on X API | Buy credits in Developer Console → Billing |\n| 429 on search\u002Ftimeline | Hit per-endpoint rate limit | Pause, retry with smaller `-n`, or wait for the reset window |\n\n---\n\n## Notes\n\n- **Cost:** X API access is paid for meaningful usage. Many failures are plan or rate-limit problems, not skill problems.\n- **Scopes:** OAuth 2.0 tokens use broad scopes; a 403 on a specific read usually means the token is missing a scope — have the user re-run `xurl auth oauth2`.\n- **Token refresh:** OAuth 2.0 tokens auto-refresh; nothing to do.\n- **Multiple apps:** `xurl --app NAME ...` runs one read against a specific app without changing the default.\n- **Token storage:** `~\u002F.xurl` is YAML. Treat it like a private key. Never read or send it to LLM context.\n\n---\n\n## Attribution\n\n- Underlying CLI: \u003Chttps:\u002F\u002Fgithub.com\u002Fxdevplatform\u002Fxurl> (X developer platform).\n- This skill wraps the CLI's read commands and documents agent-side safety rules. No code is shipped beyond this SKILL.md.\n","# x_intel — X (Twitter) information gathering\n\n`x_intel` lets an agent pull posts, search results, timelines and user profiles from X (Twitter) through `xurl`, the X developer platform's official CLI. **This skill is read-only by design** — it intentionally omits posting, replying, deleting, DM-sending and any other write surface. For a separate publishing skill, see follow-up work.\n\nUse this skill for:\n\n- looking up a single post by ID or URL\n- searching posts with the X search query syntax (`from:user`, `lang:en`, `#hashtag`, ...)\n- reading the agent operator's home timeline, mentions, bookmarks, likes\n- inspecting a user profile by handle\n- walking the social graph (who someone follows \u002F is followed by)\n- raw read access to any X API v2 GET endpoint when the shortcuts don't fit\n\n---\n\n## Credential safety (mandatory)\n\nCritical rules when invoked inside an agent session:\n\n- **Never** read, print, parse, summarize, upload or quote `~\u002F.xurl` into chat context. It is a YAML token store.\n- **Never** ask the user to paste credentials\u002Ftokens into the conversation.\n- **Never** suggest or run the auth commands with inline secrets in an agent session.\n- **Never** pass `--verbose` \u002F `-v` — it prints auth headers to stdout.\n- The only credential-touching command this skill ever runs is `xurl auth status` (status only, no secrets).\n\nForbidden flags in any agent-issued command (each accepts inline secrets):\n`--bearer-token`, `--consumer-key`, `--consumer-secret`, `--access-token`, `--token-secret`, `--client-id`, `--client-secret`.\n\nApp registration and the OAuth 2.0 PKCE flow must be performed by the user **outside** the agent session (see \"User setup\" below). Tokens persist in `~\u002F.xurl` (YAML); OAuth 2.0 refreshes automatically.\n\n---\n\n## Install\n\nThe agent should verify, not install. Direct the user to install if missing.\n\nUse the pinned [upstream v1.3.4 release](https:\u002F\u002Fgithub.com\u002Fxdevplatform\u002Fxurl\u002Freleases\u002Ftag\u002Fv1.3.4). The Go option requires Go 1.24.2 or newer (see the release's [go.mod](https:\u002F\u002Fgithub.com\u002Fxdevplatform\u002Fxurl\u002Fblob\u002Fv1.3.4\u002Fgo.mod)); ensure `$(go env GOPATH)\u002Fbin` is on `PATH`, or `GOBIN` if explicitly configured. Do not download and execute remote shell installers.\n\n```bash\n# Go (Linux + macOS, exact release)\ngo install github.com\u002Fxdevplatform\u002Fxurl@v1.3.4\n\n# Alternative: Homebrew (macOS, version managed by the upstream tap)\nbrew install --cask xdevplatform\u002Ftap\u002Fxurl\n```\n\nVerify:\n\n```bash\nxurl --help\nxurl auth status\n```\n\n---\n\n## User setup (user runs these, NOT the agent)\n\nThe agent must not perform these steps — they involve pasting secrets. Direct the user to this section verbatim.\n\n1. Open the X developer dashboard: \u003Chttps:\u002F\u002Fdeveloper.x.com\u002Fen\u002Fportal\u002Fdashboard>\n2. In the app's User Authentication Settings, set the redirect URI to `http:\u002F\u002Flocalhost:8080\u002Fcallback` and the app type to **Web app, automated app or bot**.\n3. Copy the app's Client ID and Client Secret.\n4. Register the app locally:\n   ```bash\n   xurl auth apps add my-app --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET\n   ```\n5. Authenticate (this opens a browser for OAuth 2.0 PKCE):\n   ```bash\n   xurl auth oauth2 --app my-app\n   ```\n   If X returns `UsernameNotFound` or a 403 on the post-OAuth `\u002F2\u002Fusers\u002Fme` lookup, pass the handle explicitly (xurl v1.1.0+):\n   ```bash\n   xurl auth oauth2 --app my-app YOUR_HANDLE\n   ```\n6. Mark this app as the default so all commands use it:\n   ```bash\n   xurl auth default my-app\n   ```\n7. Verify:\n   ```bash\n   xurl auth status\n   xurl whoami\n   ```\n\n> **Most common mistake:** omitting `--app my-app` from `xurl auth oauth2`. The OAuth token then lands in the built-in `default` profile, which has no client-id\u002Fclient-secret, and every later read fails. Re-run `xurl auth oauth2 --app my-app` and `xurl auth default my-app` to fix.\n\n---\n\n## Read-only command reference\n\nAll commands return JSON to stdout. The agent parses JSON directly; no extra tooling needed.\n\n| Action | Command |\n| --- | --- |\n| Who is the bound account | `xurl whoami` |\n| Look up a user | `xurl user @handle` |\n| Read one post (ID or URL) | `xurl read POST_ID` |\n| Search posts | `xurl search \"QUERY\" -n 10` |\n| Home timeline | `xurl timeline -n 20` |\n| Mentions of bound account | `xurl mentions -n 20` |\n| Bookmarks list | `xurl bookmarks -n 20` |\n| Likes list | `xurl likes -n 20` |\n| Following list | `xurl following -n 50` |\n| Followers list | `xurl followers -n 50` |\n| Another user's graph | `xurl following --of HANDLE -n 20` |\n| Auth status | `xurl auth status` |\n\nNotes:\n\n- `POST_ID` accepts a full `https:\u002F\u002Fx.com\u002Fuser\u002Fstatus\u002F...` URL — xurl extracts the ID.\n- Handles work with or without the leading `@`.\n\n### Search query language\n\nX's search supports operators inside the quoted query string:\n\n```bash\nxurl search \"from:elonmusk -is:retweet\" -n 20\nxurl search \"#buildinpublic lang:en since:2026-01-01\" -n 25\nxurl search \"OR\" -n 10                        # literal OR — must be quoted\nxurl search \"(rust OR go) lang:en\" -n 10\nxurl search \"to:NASA -is:reply\" -n 10\n```\n\nCommon operators: `from:`, `to:`, `@`, `#`, `is:retweet`, `is:reply`, `is:quote`, `lang:`, `since:`, `until:`, `has:media`, `has:links`. See the X search syntax docs for the full list.\n\n---\n\n## Raw v2 read access\n\nFor anything beyond the shortcuts, hit any v2 GET endpoint directly:\n\n```bash\n# Public user fields\nxurl \u002F2\u002Fusers\u002Fby\u002Fusername\u002Felonmusk?user.fields=public_metrics,description,verified\n\n# Single tweet with metrics + author expansion\nxurl \u002F2\u002Ftweets\u002F1234567890?tweet.fields=public_metrics,created_at&expansions=author_id\n\n# Recent search with extra fields (paid tier)\nxurl \u002F2\u002Ftweets\u002Fsearch\u002Frecent?query=langchain&tweet.fields=created_at,public_metrics&max_results=25\n\n# Full URLs also work\nxurl https:\u002F\u002Fapi.x.com\u002F2\u002Fusers\u002Fme\n```\n\nStreaming endpoints are auto-detected; force with `-s` if needed. **Streaming endpoints can be expensive — do not start one without confirming intent with the user.**\n\n---\n\n## Common workflows\n\n### Profile a user\n\n```bash\nxurl user @handle\nxurl \u002F2\u002Fusers\u002Fby\u002Fusername\u002Fhandle?user.fields=public_metrics,description,verified,created_at\nxurl following --of handle -n 20    # who they pay attention to\n```\n\n### Triage a trending term\n\n```bash\nxurl search \"topic lang:en -is:retweet\" -n 25\n# Pick interesting IDs from the JSON, then drill in:\nxurl read 1234567890\nxurl user @ORIGINAL_POSTER\n```\n\n### Catch up on activity\n\n```bash\nxurl whoami\nxurl mentions -n 20\nxurl timeline -n 20\nxurl bookmarks -n 10\n```\n\n### Conversation context\n\n```bash\nxurl read https:\u002F\u002Fx.com\u002Fuser\u002Fstatus\u002F1234567890\n# Conversation expansion via raw v2\nxurl \u002F2\u002Ftweets\u002Fsearch\u002Frecent?query=conversation_id:1234567890&max_results=25\n```\n\n---\n\n## Output format\n\nEvery command emits X API v2 shape JSON to stdout:\n\n```json\n{\n  \"data\": { \"id\": \"1234567890\", \"text\": \"Hello world!\" },\n  \"includes\": { \"users\": [{ \"id\": \"...\", \"username\": \"...\" }] }\n}\n```\n\nErrors are also JSON:\n\n```json\n{ \"errors\": [ { \"message\": \"Not authorized\", \"code\": 403 } ] }\n```\n\nThe non-zero exit code distinguishes errors from empty results.\n\n---\n\n## Agent workflow\n\n1. Verify prerequisites: `xurl --help` (the command exists) and `xurl auth status` (the user has at least one app with `oauth2` tokens, marked `▸` as default).\n2. **Parse `auth status` output before any other command.** If the default app shows `oauth2: (none)` but a non-default app has valid tokens, instruct the user to run `xurl auth default \u003Cthat-app>` — this is the most common config glitch and does not require a re-login.\n3. If `auth status` shows no apps or no tokens, **stop**. Tell the user to follow the \"User setup\" section. Do not attempt to register apps or run any auth flow yourself.\n4. Start with the cheapest read first (`xurl whoami` \u002F `xurl user @handle` \u002F `xurl search ... -n 3`) to confirm reachability and the request shape.\n5. Treat 401 \u002F 403 \u002F 429 distinctly: 401 → re-auth needed, 403 → scope or plan, 429 → wait and retry (X rate-limits per-endpoint).\n6. Never paste `~\u002F.xurl` content back into the conversation, even when troubleshooting.\n7. When in doubt about cost: X's API has paid tiers and per-endpoint rate limits. Do not run unbounded loops or streams without the user's explicit confirmation.\n\n---\n\n## Troubleshooting\n\n| Symptom | Cause | Fix |\n| --- | --- | --- |\n| `auth status` shows `oauth2: (none)` on default | Token saved to built-in `default` profile (no client-id\u002Fsecret) | Re-run `xurl auth oauth2 --app my-app` then `xurl auth default my-app` |\n| `unauthorized_client` during OAuth | App type set to \"Native App\" in X dashboard | Change to \"Web app, automated app or bot\" |\n| `UsernameNotFound` \u002F 403 right after OAuth | X not returning username from `\u002F2\u002Fusers\u002Fme` | `xurl auth oauth2 --app my-app YOUR_HANDLE` (xurl v1.1.0+) |\n| 401 on every read | Token expired or wrong default app | Check `xurl auth status` — verify `▸` points to the app with oauth2 tokens |\n| `client-forbidden` \u002F `client-not-enrolled` | X platform enrollment | Developer dashboard → Apps → Manage → Production environment |\n| `CreditsDepleted` | $0 balance on X API | Buy credits in Developer Console → Billing |\n| 429 on search\u002Ftimeline | Hit per-endpoint rate limit | Pause, retry with smaller `-n`, or wait for the reset window |\n\n---\n\n## Notes\n\n- **Cost:** X API access is paid for meaningful usage. Many failures are plan or rate-limit problems, not skill problems.\n- **Scopes:** OAuth 2.0 tokens use broad scopes; a 403 on a specific read usually means the token is missing a scope — have the user re-run `xurl auth oauth2`.\n- **Token refresh:** OAuth 2.0 tokens auto-refresh; nothing to do.\n- **Multiple apps:** `xurl --app NAME ...` runs one read against a specific app without changing the default.\n- **Token storage:** `~\u002F.xurl` is YAML. Treat it like a private key. Never read or send it to LLM context.\n\n---\n\n## Attribution\n\n- Underlying CLI: \u003Chttps:\u002F\u002Fgithub.com\u002Fxdevplatform\u002Fxurl> (X developer platform).\n- This skill wraps the CLI's read commands and documents agent-side safety rules. No code is shipped beyond this SKILL.md.\n",{"icon":48,"name":5,"tags":49,"author":51,"nameEn":52,"nameZh":53,"version":54,"optional":55,"platforms":56,"description":7,"dependencies":57},"🐦",[50,31,33,28,24],"x","MateClaw","X Intel","X 情报采集","1.0.0",true,[30,34],{"tools":58,"commands":60},[59],"execute_shell_command",[24],"dev","50ecba3e3a6b4e60b35eb9b59d663ee0a1a0afbb","mateclaw-server\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fx_intel",361,"https:\u002F\u002Fgithub.com\u002Fmateaix\u002Fmateclaw","https:\u002F\u002Fclaw.mate.vip","https:\u002F\u002Fgithub.com\u002Fmateaix","2026-11-13 15:43:14",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":55},[71,74,77],{"tool":72,"command":73},"npx","npx skills add mateaix\u002Fmateclaw --skill x_intel",{"tool":75,"command":76},"bunx","bunx skills add mateaix\u002Fmateclaw --skill x_intel",{"tool":78,"command":79},"pnpm","pnpm dlx skills add mateaix\u002Fmateclaw --skill x_intel","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmateaix\u002Fmateclaw\u002Fblob\u002Fdev\u002Fmateclaw-server\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fx_intel\u002FSKILL.md",[],[83,94,125,152,171,195],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":90,"publishedAt":43},"01M6KW155AABG05Q3FR8CN3D9H","sample","Test fixture for SkillBundleMaterializer.","https:\u002F\u002Fgithub.com\u002Fmateaix\u002Fmateclaw\u002Fblob\u002Fdev\u002Fmateclaw-server\u002Fsrc\u002Ftest\u002Fresources\u002Ftest-bundles\u002Fsample\u002FSKILL.md",[89],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[85,91,92,93],"test","fixture","for",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":105,"publishedAt":43},"01M6KW0P1T4EGBRN0HYZKJSHGB","xhs_note","小红书图文创作 \u002F 笔记 \u002F 种草文案 (xiaohongshu \u002F red note) — 端到端：成文→配图(≥3 张竖版)→去AI化→在线预览打包交付。以图为主、文字辅助：标题四件套 + 碎句正文 + 话题标签，配 3:4 竖版卡片，最少 3 张图。honors user persona & style memory.","https:\u002F\u002Fgithub.com\u002Fmateaix\u002Fmateclaw\u002Fblob\u002Fdev\u002Fmateclaw-server\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fxhs_note\u002FSKILL.md",[100],{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[106,107,108,109,110,30,34,111,112,113,114,115,116,117,118,119,120,121,122,123,124],"note","xhs","xhs note","memory","persona","windows","去AI化","文字","user","xiaohongshu","创作","red","style","文案","笔记","内容创作","图文","红书","小红书",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":139,"publishedAt":43},"01M6KW0DEPAYEF2JQ70PGN0Y8D","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002Fmateaix\u002Fmateclaw\u002Fblob\u002Fdev\u002Fmateclaw-server\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fwriting-plans\u002FSKILL.md",[131,134,137,138],{"categoryNo":132,"categoryName":133,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":135,"categoryName":136,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},[140,141,142,143,144,145,146,147,148,149,150,151],"writing plans","writing","plans","paths","implementation","write","planning","code","tasks","design","workflow","documentation",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":159,"publishedAt":43},"01M6KW08Q6EEN0ZSH5JRMAFH0B","webhook-subscriptions","Webhook subscriptions: event-driven agent runs.","https:\u002F\u002Fgithub.com\u002Fmateaix\u002Fmateclaw\u002Fblob\u002Fdev\u002Fmateclaw-server\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fwebhook-subscriptions\u002FSKILL.md",[158],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[160,161,162,163,164,165,166,167,168,169,170],"webhook","subscriptions","webhook subscriptions","automation","push","notifications","integrations","driven","events","event-driven","event",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":184,"publishedAt":43},"01M6KW04W8S4EMJHSNHY3HWAY3","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002Fmateaix\u002Fmateclaw\u002Fblob\u002Fdev\u002Fmateclaw-server\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[177,180,183],{"categoryNo":178,"categoryName":179,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":181,"categoryName":182,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[167,185,186,91,187,188,189,147,190,191,192,193,194,117],"development","test driven development","red-green-refactor","testing","tdd","refactor","quality","enforce","green","tests",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":199,"categories":200,"keywords":203,"publishedAt":43},"01M6KW009V93VNK82KR9VE4SDJ","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002Fmateaix\u002Fmateclaw\u002Fblob\u002Fdev\u002Fmateclaw-server\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fsystematic-debugging\u002FSKILL.md",[201,202],{"categoryNo":181,"categoryName":182,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[204,205,206,207,208,209,210,211,212,213,214,215,216],"debugging","systematic","systematic debugging","investigation","troubleshooting","root-cause","problem-solving","problem","understand","root","bugs","phase","root cause"]