{
  "schemaVersion": "1.0",
  "item": {
    "slug": "browsex",
    "name": "the skill to browse X",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/coding-commits/browsex",
    "canonicalUrl": "https://clawhub.ai/coding-commits/browsex",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/browsex",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=browsex",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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. 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. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/browsex"
    },
    "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/browsex",
    "agentPageUrl": "https://openagent3.xyz/skills/browsex/agent",
    "manifestUrl": "https://openagent3.xyz/skills/browsex/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/browsex/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "browsex",
        "body": "Manipulate X(formerly Twitter) using the OpenClaw browser tool. Browser-based alternative to bird CLI."
      },
      {
        "title": "Environment requirements",
        "body": "OpenClaw with browser tool enabled\nopenclaw browser profile\nX/Twitter account logged in (only required for posting, liking, retweeting, replying, following)\n\nRead-only browsing (viewing profiles, individual tweets, search) works without login.\nX may show login popups on unauthenticated sessions -- dismiss them or ignore."
      },
      {
        "title": "For headless servers",
        "body": "Xvfb virtual display required (see spool skill's Prerequisites)"
      },
      {
        "title": "Login (only needed for write actions)",
        "body": "browser action=start profile=openclaw\nbrowser action=open profile=openclaw targetUrl=\"https://x.com/login\"\n# Ask user to log in manually"
      },
      {
        "title": "Read-only (no login required)",
        "body": "These actions work without an X/Twitter account. X may show login modals after\na few pages -- look for close/dismiss buttons in the snapshot and click them."
      },
      {
        "title": "1. View a specific tweet",
        "body": "browser action=open profile=openclaw targetUrl=\"https://x.com/username/status/1234567890\"\nbrowser action=snapshot profile=openclaw compact=true"
      },
      {
        "title": "2. View profile",
        "body": "browser action=open profile=openclaw targetUrl=\"https://x.com/username\"\nbrowser action=snapshot profile=openclaw compact=true"
      },
      {
        "title": "3. Search",
        "body": "browser action=open profile=openclaw targetUrl=\"https://x.com/search?q=search_term&src=typed_query\"\nbrowser action=snapshot profile=openclaw compact=true"
      },
      {
        "title": "Login required",
        "body": "These actions require an authenticated session. Complete the login step in Prerequisites first."
      },
      {
        "title": "4. Read timeline",
        "body": "browser action=open profile=openclaw targetUrl=\"https://x.com/home\"\nbrowser action=snapshot profile=openclaw compact=true\n\nFor each article, you can see author, content, and like/retweet/reply counts."
      },
      {
        "title": "5. Post a tweet",
        "body": "Step 1: Find the textbox on home\n\nbrowser action=open profile=openclaw targetUrl=\"https://x.com/home\"\nbrowser action=snapshot profile=openclaw compact=true\n\n→ Find textbox \"Post text\" ref\n\nStep 2: Enter content\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<textbox-ref>\"}\nbrowser action=act profile=openclaw request={\"kind\":\"type\",\"ref\":\"<textbox-ref>\",\"text\":\"tweet content\"}\n\nStep 3: Click Post button\n\nbrowser action=snapshot profile=openclaw compact=true\n\n→ Find button \"Post\" ref (one that is not disabled)\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<post-ref>\"}"
      },
      {
        "title": "6. Like a tweet",
        "body": "From timeline, find button \"Like\" or button \"X Likes. Like\" ref within article:\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<like-ref>\"}"
      },
      {
        "title": "7. Retweet",
        "body": "Find button \"Repost\" or button \"X reposts. Repost\" ref:\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<repost-ref>\"}\nbrowser action=snapshot profile=openclaw compact=true\n# Select \"Repost\" option\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<repost-option-ref>\"}"
      },
      {
        "title": "8. Reply to a tweet",
        "body": "Method 1: From timeline\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<reply-button-ref>\"}\nbrowser action=snapshot profile=openclaw compact=true\n# Enter text in reply input box, then click Reply button\n\nMethod 2: From tweet page\n\nbrowser action=open profile=openclaw targetUrl=\"https://x.com/username/status/1234567890\"\nbrowser action=snapshot profile=openclaw compact=true\n# Find reply input box and enter text"
      },
      {
        "title": "9. Follow",
        "body": "On profile page, find button \"Follow\" ref:\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<follow-ref>\"}"
      },
      {
        "title": "Key points",
        "body": "Snapshot first - Check current state before any action\nref changes every time - Always find fresh ref from snapshot\ncompact=true - Save tokens\narticle structure - Each tweet is an article element with author/content/buttons inside\nConfirm before posting - Get user confirmation of content"
      },
      {
        "title": "Troubleshooting",
        "body": "ProblemSolutionBrowser not workingCheck Xvfb, DISPLAY=:99, restart GatewayLogin failedNavigate to /login and log in manuallyPost button disabledVerify text was enteredRate limitWait a moment and retryLogin popup blocking pageSnapshot, find close/dismiss button ref, click it. If persistent, log in or try a direct URL instead"
      },
      {
        "title": "vs bird CLI",
        "body": "Featurebird CLIbrowsex (browser)InstallationRequires brewOnly Xvfb neededAuthCookie extractionBrowser sessionStabilityAPI-basedUI-dependent (may change)SpeedFastSlightly slower"
      }
    ],
    "body": "browsex\n\nManipulate X(formerly Twitter) using the OpenClaw browser tool. Browser-based alternative to bird CLI.\n\nPrerequisites\nEnvironment requirements\nOpenClaw with browser tool enabled\nopenclaw browser profile\nX/Twitter account logged in (only required for posting, liking, retweeting, replying, following)\n\nRead-only browsing (viewing profiles, individual tweets, search) works without login. X may show login popups on unauthenticated sessions -- dismiss them or ignore.\n\nFor headless servers\n\nXvfb virtual display required (see spool skill's Prerequisites)\n\nLogin (only needed for write actions)\nbrowser action=start profile=openclaw\nbrowser action=open profile=openclaw targetUrl=\"https://x.com/login\"\n# Ask user to log in manually\n\nUsage\nRead-only (no login required)\n\nThese actions work without an X/Twitter account. X may show login modals after a few pages -- look for close/dismiss buttons in the snapshot and click them.\n\n1. View a specific tweet\nbrowser action=open profile=openclaw targetUrl=\"https://x.com/username/status/1234567890\"\nbrowser action=snapshot profile=openclaw compact=true\n\n2. View profile\nbrowser action=open profile=openclaw targetUrl=\"https://x.com/username\"\nbrowser action=snapshot profile=openclaw compact=true\n\n3. Search\nbrowser action=open profile=openclaw targetUrl=\"https://x.com/search?q=search_term&src=typed_query\"\nbrowser action=snapshot profile=openclaw compact=true\n\nLogin required\n\nThese actions require an authenticated session. Complete the login step in Prerequisites first.\n\n4. Read timeline\nbrowser action=open profile=openclaw targetUrl=\"https://x.com/home\"\nbrowser action=snapshot profile=openclaw compact=true\n\n\nFor each article, you can see author, content, and like/retweet/reply counts.\n\n5. Post a tweet\n\nStep 1: Find the textbox on home\n\nbrowser action=open profile=openclaw targetUrl=\"https://x.com/home\"\nbrowser action=snapshot profile=openclaw compact=true\n\n\n→ Find textbox \"Post text\" ref\n\nStep 2: Enter content\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<textbox-ref>\"}\nbrowser action=act profile=openclaw request={\"kind\":\"type\",\"ref\":\"<textbox-ref>\",\"text\":\"tweet content\"}\n\n\nStep 3: Click Post button\n\nbrowser action=snapshot profile=openclaw compact=true\n\n\n→ Find button \"Post\" ref (one that is not disabled)\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<post-ref>\"}\n\n6. Like a tweet\n\nFrom timeline, find button \"Like\" or button \"X Likes. Like\" ref within article:\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<like-ref>\"}\n\n7. Retweet\n\nFind button \"Repost\" or button \"X reposts. Repost\" ref:\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<repost-ref>\"}\nbrowser action=snapshot profile=openclaw compact=true\n# Select \"Repost\" option\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<repost-option-ref>\"}\n\n8. Reply to a tweet\n\nMethod 1: From timeline\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<reply-button-ref>\"}\nbrowser action=snapshot profile=openclaw compact=true\n# Enter text in reply input box, then click Reply button\n\n\nMethod 2: From tweet page\n\nbrowser action=open profile=openclaw targetUrl=\"https://x.com/username/status/1234567890\"\nbrowser action=snapshot profile=openclaw compact=true\n# Find reply input box and enter text\n\n9. Follow\n\nOn profile page, find button \"Follow\" ref:\n\nbrowser action=act profile=openclaw request={\"kind\":\"click\",\"ref\":\"<follow-ref>\"}\n\nKey points\nSnapshot first - Check current state before any action\nref changes every time - Always find fresh ref from snapshot\ncompact=true - Save tokens\narticle structure - Each tweet is an article element with author/content/buttons inside\nConfirm before posting - Get user confirmation of content\nTroubleshooting\nProblem\tSolution\nBrowser not working\tCheck Xvfb, DISPLAY=:99, restart Gateway\nLogin failed\tNavigate to /login and log in manually\nPost button disabled\tVerify text was entered\nRate limit\tWait a moment and retry\nLogin popup blocking page\tSnapshot, find close/dismiss button ref, click it. If persistent, log in or try a direct URL instead\nvs bird CLI\nFeature\tbird CLI\tbrowsex (browser)\nInstallation\tRequires brew\tOnly Xvfb needed\nAuth\tCookie extraction\tBrowser session\nStability\tAPI-based\tUI-dependent (may change)\nSpeed\tFast\tSlightly slower"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/coding-commits/browsex",
    "publisherUrl": "https://clawhub.ai/coding-commits/browsex",
    "owner": "coding-commits",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/browsex",
    "downloadUrl": "https://openagent3.xyz/downloads/browsex",
    "agentUrl": "https://openagent3.xyz/skills/browsex/agent",
    "manifestUrl": "https://openagent3.xyz/skills/browsex/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/browsex/agent.md"
  }
}