{
  "schemaVersion": "1.0",
  "item": {
    "slug": "twitterapi-research-skill",
    "name": "TwitterApi Research",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/blascokoa/twitterapi-research-skill",
    "canonicalUrl": "https://clawhub.ai/blascokoa/twitterapi-research-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/twitterapi-research-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=twitterapi-research-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "lib/api.ts",
      "lib/cache.ts",
      "lib/format.ts",
      "package.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "twitterapi-research-skill",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-10T07:55:41.365Z",
      "expiresAt": "2026-05-17T07:55:41.365Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=twitterapi-research-skill",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=twitterapi-research-skill",
        "contentDisposition": "attachment; filename=\"twitterapi-research-skill-0.1.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "twitterapi-research-skill"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/twitterapi-research-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/twitterapi-research-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/twitterapi-research-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/twitterapi-research-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/twitterapi-research-skill/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "X Research",
        "body": "General-purpose agentic research over X/Twitter. Decompose any research question into targeted searches, iteratively refine, follow threads, deep-dive linked content, and synthesize into a sourced briefing.\n\nFor twitterapi.io API details (endpoints, operators, response format): read references/x-api.md."
      },
      {
        "title": "CLI Tool",
        "body": "All commands run from this skill directory:\n\ncd ~/clawd/skills/x-research\nsource ~/.config/env/global.env  # needs TWITTERAPI_IO_KEY"
      },
      {
        "title": "Search",
        "body": "bun run x-search.ts search \"<query>\" [options]\n\nOptions:\n\n--sort likes|impressions|retweets|recent — sort order (default: likes)\n--since 1h|3h|12h|1d|7d — time filter (default: last 7 days). Also accepts minutes (30m) or ISO timestamps.\n--min-likes N — filter by minimum likes\n--min-impressions N — filter by minimum impressions\n--pages N — pages to fetch, 1-25 (default: 5, ~20 tweets/page)\n--limit N — max results to display (default: 15)\n--quick — quick mode: 1 page, max 10 results, auto noise filter (-is:retweet -is:reply), 1hr cache, cost summary\n--from <username> — shorthand for from:username in query\n--quality — filter low-engagement tweets (≥10 likes, post-hoc)\n--no-replies — exclude replies\n--save — save results to ~/clawd/drafts/x-research-{slug}-{date}.md\n--json — raw JSON output\n--markdown — markdown output for research docs\n\nAuto-adds -is:retweet unless query already includes it. All searches display estimated API cost.\n\nNote: twitterapi.io search covers full archive (not limited to 7 days). Time filtering uses since: operator in the query.\n\nExamples:\n\nbun run x-search.ts search \"BNKR\" --sort likes --limit 10\nbun run x-search.ts search \"from:frankdegods\" --sort recent\nbun run x-search.ts search \"(opus 4.6 OR claude) trading\" --pages 2 --save\nbun run x-search.ts search \"$BNKR (revenue OR fees)\" --min-likes 5\nbun run x-search.ts search \"BNKR\" --quick\nbun run x-search.ts search \"BNKR\" --from voidcider --quick\nbun run x-search.ts search \"AI agents\" --quality --quick"
      },
      {
        "title": "Profile",
        "body": "bun run x-search.ts profile <username> [--count N] [--replies] [--json]\n\nFetches recent tweets from a specific user (excludes replies by default)."
      },
      {
        "title": "Thread",
        "body": "bun run x-search.ts thread <tweet_id> [--pages N]\n\nFetches full conversation thread by root tweet ID."
      },
      {
        "title": "Single Tweet",
        "body": "bun run x-search.ts tweet <tweet_id> [--json]"
      },
      {
        "title": "Watchlist",
        "body": "bun run x-search.ts watchlist                       # Show all\nbun run x-search.ts watchlist add <user> [note]     # Add account\nbun run x-search.ts watchlist remove <user>          # Remove account\nbun run x-search.ts watchlist check                  # Check recent from all\n\nWatchlist stored in data/watchlist.json. Use for heartbeat integration — check if key accounts posted anything important."
      },
      {
        "title": "Cache",
        "body": "bun run x-search.ts cache clear    # Clear all cached results\n\n15-minute TTL. Avoids re-fetching identical queries."
      },
      {
        "title": "Research Loop (Agentic)",
        "body": "When doing deep research (not just a quick search), follow this loop:"
      },
      {
        "title": "1. Decompose the Question into Queries",
        "body": "Turn the research question into 3-5 keyword queries using X search operators:\n\nCore query: Direct keywords for the topic\nExpert voices: from: specific known experts\nPain points: Keywords like (broken OR bug OR issue OR migration)\nPositive signal: Keywords like (shipped OR love OR fast OR benchmark)\nLinks: url:github.com or url: specific domains\nNoise reduction: -is:retweet (auto-added), add -is:reply if needed\nCrypto spam: Add -airdrop -giveaway -whitelist if crypto topics flooding"
      },
      {
        "title": "2. Search and Extract",
        "body": "Run each query via CLI. After each, assess:\n\nSignal or noise? Adjust operators.\nKey voices worth searching from: specifically?\nThreads worth following via thread command?\nLinked resources worth deep-diving with web_fetch?"
      },
      {
        "title": "3. Follow Threads",
        "body": "When a tweet has high engagement or is a thread starter:\n\nbun run x-search.ts thread <tweet_id>"
      },
      {
        "title": "4. Deep-Dive Linked Content",
        "body": "When tweets link to GitHub repos, blog posts, or docs, fetch with web_fetch. Prioritize links that:\n\nMultiple tweets reference\nCome from high-engagement tweets\nPoint to technical resources directly relevant to the question"
      },
      {
        "title": "5. Synthesize",
        "body": "Group findings by theme, not by query:\n\n### [Theme/Finding Title]\n\n[1-2 sentence summary]\n\n- @username: \"[key quote]\" (NL, NI) [Tweet](url)\n- @username2: \"[another perspective]\" (NL, NI) [Tweet](url)\n\nResources shared:\n- [Resource title](url) — [what it is]"
      },
      {
        "title": "6. Save",
        "body": "Use --save flag or save manually to ~/clawd/drafts/x-research-{topic-slug}-{YYYY-MM-DD}.md."
      },
      {
        "title": "Refinement Heuristics",
        "body": "Too much noise? Add -is:reply, use --sort likes, narrow keywords\nToo few results? Broaden with OR, remove restrictive operators\nCrypto spam? Add -$ -airdrop -giveaway -whitelist\nExpert takes only? Use from: or --min-likes 50\nSubstance over hot takes? Search with has:links"
      },
      {
        "title": "Heartbeat Integration",
        "body": "On heartbeat, can run watchlist check to see if key accounts posted anything notable. Flag to Frank only if genuinely interesting/actionable — don't report routine tweets."
      },
      {
        "title": "File Structure",
        "body": "skills/x-research/\n├── SKILL.md           (this file)\n├── x-search.ts        (CLI entry point)\n├── lib/\n│   ├── api.ts         (twitterapi.io wrapper: search, thread, profile, tweet)\n│   ├── cache.ts       (file-based cache, 15min TTL)\n│   └── format.ts      (Telegram + markdown formatters)\n├── data/\n│   ├── watchlist.json  (accounts to monitor)\n│   └── cache/          (auto-managed)\n└── references/\n    └── x-api.md        (twitterapi.io endpoint reference)"
      }
    ],
    "body": "X Research\n\nGeneral-purpose agentic research over X/Twitter. Decompose any research question into targeted searches, iteratively refine, follow threads, deep-dive linked content, and synthesize into a sourced briefing.\n\nFor twitterapi.io API details (endpoints, operators, response format): read references/x-api.md.\n\nCLI Tool\n\nAll commands run from this skill directory:\n\ncd ~/clawd/skills/x-research\nsource ~/.config/env/global.env  # needs TWITTERAPI_IO_KEY\n\nSearch\nbun run x-search.ts search \"<query>\" [options]\n\n\nOptions:\n\n--sort likes|impressions|retweets|recent — sort order (default: likes)\n--since 1h|3h|12h|1d|7d — time filter (default: last 7 days). Also accepts minutes (30m) or ISO timestamps.\n--min-likes N — filter by minimum likes\n--min-impressions N — filter by minimum impressions\n--pages N — pages to fetch, 1-25 (default: 5, ~20 tweets/page)\n--limit N — max results to display (default: 15)\n--quick — quick mode: 1 page, max 10 results, auto noise filter (-is:retweet -is:reply), 1hr cache, cost summary\n--from <username> — shorthand for from:username in query\n--quality — filter low-engagement tweets (≥10 likes, post-hoc)\n--no-replies — exclude replies\n--save — save results to ~/clawd/drafts/x-research-{slug}-{date}.md\n--json — raw JSON output\n--markdown — markdown output for research docs\n\nAuto-adds -is:retweet unless query already includes it. All searches display estimated API cost.\n\nNote: twitterapi.io search covers full archive (not limited to 7 days). Time filtering uses since: operator in the query.\n\nExamples:\n\nbun run x-search.ts search \"BNKR\" --sort likes --limit 10\nbun run x-search.ts search \"from:frankdegods\" --sort recent\nbun run x-search.ts search \"(opus 4.6 OR claude) trading\" --pages 2 --save\nbun run x-search.ts search \"$BNKR (revenue OR fees)\" --min-likes 5\nbun run x-search.ts search \"BNKR\" --quick\nbun run x-search.ts search \"BNKR\" --from voidcider --quick\nbun run x-search.ts search \"AI agents\" --quality --quick\n\nProfile\nbun run x-search.ts profile <username> [--count N] [--replies] [--json]\n\n\nFetches recent tweets from a specific user (excludes replies by default).\n\nThread\nbun run x-search.ts thread <tweet_id> [--pages N]\n\n\nFetches full conversation thread by root tweet ID.\n\nSingle Tweet\nbun run x-search.ts tweet <tweet_id> [--json]\n\nWatchlist\nbun run x-search.ts watchlist                       # Show all\nbun run x-search.ts watchlist add <user> [note]     # Add account\nbun run x-search.ts watchlist remove <user>          # Remove account\nbun run x-search.ts watchlist check                  # Check recent from all\n\n\nWatchlist stored in data/watchlist.json. Use for heartbeat integration — check if key accounts posted anything important.\n\nCache\nbun run x-search.ts cache clear    # Clear all cached results\n\n\n15-minute TTL. Avoids re-fetching identical queries.\n\nResearch Loop (Agentic)\n\nWhen doing deep research (not just a quick search), follow this loop:\n\n1. Decompose the Question into Queries\n\nTurn the research question into 3-5 keyword queries using X search operators:\n\nCore query: Direct keywords for the topic\nExpert voices: from: specific known experts\nPain points: Keywords like (broken OR bug OR issue OR migration)\nPositive signal: Keywords like (shipped OR love OR fast OR benchmark)\nLinks: url:github.com or url: specific domains\nNoise reduction: -is:retweet (auto-added), add -is:reply if needed\nCrypto spam: Add -airdrop -giveaway -whitelist if crypto topics flooding\n2. Search and Extract\n\nRun each query via CLI. After each, assess:\n\nSignal or noise? Adjust operators.\nKey voices worth searching from: specifically?\nThreads worth following via thread command?\nLinked resources worth deep-diving with web_fetch?\n3. Follow Threads\n\nWhen a tweet has high engagement or is a thread starter:\n\nbun run x-search.ts thread <tweet_id>\n\n4. Deep-Dive Linked Content\n\nWhen tweets link to GitHub repos, blog posts, or docs, fetch with web_fetch. Prioritize links that:\n\nMultiple tweets reference\nCome from high-engagement tweets\nPoint to technical resources directly relevant to the question\n5. Synthesize\n\nGroup findings by theme, not by query:\n\n### [Theme/Finding Title]\n\n[1-2 sentence summary]\n\n- @username: \"[key quote]\" (NL, NI) [Tweet](url)\n- @username2: \"[another perspective]\" (NL, NI) [Tweet](url)\n\nResources shared:\n- [Resource title](url) — [what it is]\n\n6. Save\n\nUse --save flag or save manually to ~/clawd/drafts/x-research-{topic-slug}-{YYYY-MM-DD}.md.\n\nRefinement Heuristics\nToo much noise? Add -is:reply, use --sort likes, narrow keywords\nToo few results? Broaden with OR, remove restrictive operators\nCrypto spam? Add -$ -airdrop -giveaway -whitelist\nExpert takes only? Use from: or --min-likes 50\nSubstance over hot takes? Search with has:links\nHeartbeat Integration\n\nOn heartbeat, can run watchlist check to see if key accounts posted anything notable. Flag to Frank only if genuinely interesting/actionable — don't report routine tweets.\n\nFile Structure\nskills/x-research/\n├── SKILL.md           (this file)\n├── x-search.ts        (CLI entry point)\n├── lib/\n│   ├── api.ts         (twitterapi.io wrapper: search, thread, profile, tweet)\n│   ├── cache.ts       (file-based cache, 15min TTL)\n│   └── format.ts      (Telegram + markdown formatters)\n├── data/\n│   ├── watchlist.json  (accounts to monitor)\n│   └── cache/          (auto-managed)\n└── references/\n    └── x-api.md        (twitterapi.io endpoint reference)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/blascokoa/twitterapi-research-skill",
    "publisherUrl": "https://clawhub.ai/blascokoa/twitterapi-research-skill",
    "owner": "blascokoa",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/twitterapi-research-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/twitterapi-research-skill",
    "agentUrl": "https://openagent3.xyz/skills/twitterapi-research-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/twitterapi-research-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/twitterapi-research-skill/agent.md"
  }
}