{
  "schemaVersion": "1.0",
  "item": {
    "slug": "xvfb-chrome",
    "name": "xvfb-chrome",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/CodingLink/xvfb-chrome",
    "canonicalUrl": "https://clawhub.ai/CodingLink/xvfb-chrome",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/xvfb-chrome",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=xvfb-chrome",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "_meta.json",
      "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/xvfb-chrome"
    },
    "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/xvfb-chrome",
    "agentPageUrl": "https://openagent3.xyz/skills/xvfb-chrome/agent",
    "manifestUrl": "https://openagent3.xyz/skills/xvfb-chrome/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/xvfb-chrome/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": "XVFB + Chrome 浏览器自动化",
        "body": "在无GUI的Linux服务器上运行Chrome浏览器的完整指南，支持配合 chrome-devtools MCP 使用。"
      },
      {
        "title": "模式选择",
        "body": "场景推荐方式快速爬取、截图、自动化脚本--headless=new (无头)需要调试/连接DevTools MCPxvfb-run + 非无头 + --remote-debugging-port=9222需要看到浏览器窗口(VNC截图等)xvfb-run + 非无头"
      },
      {
        "title": "1. 无头模式 (常规自动化)",
        "body": "google-chrome --headless=new --no-sandbox --disable-gpu --user-data-dir=/tmp/chrome-data"
      },
      {
        "title": "2. 有头 + xvfb + DevTools (推荐 MCP 用户)",
        "body": "xvfb-run -a google-chrome --no-sandbox \\\n  --disable-gpu --remote-debugging-port=9222 \\\n  --user-data-dir=/tmp/chrome-profile\n\n关键点：\n\n-a = 自动分配 display 编号\n去掉 --headless 就是有头模式\nDevTools 监听 ws://127.0.0.1:9222/devtools/browser/xxx"
      },
      {
        "title": "3. 重启 Chrome (杀旧进程)",
        "body": "pkill -f \"chrome.*remote-debugging-port=9222\" 2>/dev/null\nsleep 1\nxvfb-run -a google-chrome --no-sandbox \\\n  --disable-gpu --remote-debugging-port=9222 \\\n  --user-data-dir=/tmp/chrome-profile &"
      },
      {
        "title": "Chrome DevTools MCP 配合使用",
        "body": "MCP server chrome-devtools 已安装，连接 http://127.0.0.1:9222：\n\nmcporter list chrome-devtools --schema   # 查看可用工具\nmcporter call chrome-devtools.list_pages # 列出页面"
      },
      {
        "title": "常用 MCP 工具",
        "body": "工具功能new_page url:\"https://xxx\"打开新页面navigate_page type:\"url\" url:\"https://xxx\"导航take_screenshot filePath:\"/path/xxx.png\"截图take_snapshot获取页面元素快照click uid:\"xxx\"点击元素fill uid:\"xxx\" value:\"xxx\"填入表单type_text text:\"xxx\"输入文本list_network_requests查看网络请求evaluate_script function:\"() => { return document.title }\"执行JS"
      },
      {
        "title": "完整示例",
        "body": "# 1. 启动浏览器\nxvfb-run -a google-chrome --no-sandbox \\\n  --disable-gpu --remote-debugging-port=9222 \\\n  --user-data-dir=/tmp/chrome-profile &\n\n# 2. 检查是否就绪\ncurl -s http://127.0.0.1:9222/json/version\n\n# 3. 用 MCP 操作\nmcporter call chrome-devtools.new_page url:\"https://www.baidu.com\"\nmcporter call chrome-devtools.take_screenshot filePath:\"/root/screenshot.png\""
      },
      {
        "title": "参数解释",
        "body": "参数作用--headless=new无头模式(不显示窗口)--remote-debugging-port=9222开启调试端口，供MCP连接--no-sandbox跳过沙箱(服务器必加)--disable-gpu禁用GPU(服务器必加)--user-data-dir=/tmp/xxx用户数据目录(避免冲突)-a (xvfb-run)自动分配 display 编号DISPLAY=:99指定使用某个 Xvfb 显示编号"
      },
      {
        "title": "查看当前 Xvfb",
        "body": "ps aux | grep Xvfb | grep -v grep\n\n输出示例：\n\nXvfb :99 -screen 0 1280x720x24\nXvfb :100 -screen 0 640x480x24"
      },
      {
        "title": "启动指定分辨率的 Xvfb",
        "body": "# 1280x720 分辨率\nXvfb :99 -screen 0 1280x720x24 -nolisten tcp &\n\n# 1920x1080 分辨率\nXvfb :99 -screen 0 1920x1080x24 -nolisten tcp &"
      },
      {
        "title": "绑定 Chrome 到指定 Xvfb",
        "body": "# 方式1：使用 xvfb-run 自动分配\nxvfb-run -a google-chrome --no-sandbox ...\n\n# 方式2：手动指定 display 编号\nDISPLAY=:99 google-chrome --no-sandbox ..."
      },
      {
        "title": "常用分辨率",
        "body": "分辨率适用场景640x480轻量爬取、简单截图1280x720 (720p)常规浏览、推荐配置1920x1080 (1080p)高清截图、复杂页面"
      },
      {
        "title": "常用操作",
        "body": "# 查看当前运行的 Xvfb\nps aux | grep Xvfb | grep -v grep\n\n# 杀掉所有 Chrome 进程\nkillall chrome\n\n# 杀掉所有 Xvfb\npkill Xvfb\n\n# 重启 Chrome（绑定到 :99）\nkillall chrome 2>/dev/null\nsleep 1\nDISPLAY=:99 google-chrome --no-sandbox \\\n  --disable-gpu --remote-debugging-port=9222 \\\n  --user-data-dir=/tmp/chrome-profile &"
      }
    ],
    "body": "XVFB + Chrome 浏览器自动化\n\n在无GUI的Linux服务器上运行Chrome浏览器的完整指南，支持配合 chrome-devtools MCP 使用。\n\n模式选择\n场景\t推荐方式\n快速爬取、截图、自动化脚本\t--headless=new (无头)\n需要调试/连接DevTools MCP\txvfb-run + 非无头 + --remote-debugging-port=9222\n需要看到浏览器窗口(VNC截图等)\txvfb-run + 非无头\n启动命令\n1. 无头模式 (常规自动化)\ngoogle-chrome --headless=new --no-sandbox --disable-gpu --user-data-dir=/tmp/chrome-data\n\n2. 有头 + xvfb + DevTools (推荐 MCP 用户)\nxvfb-run -a google-chrome --no-sandbox \\\n  --disable-gpu --remote-debugging-port=9222 \\\n  --user-data-dir=/tmp/chrome-profile\n\n\n关键点：\n\n-a = 自动分配 display 编号\n去掉 --headless 就是有头模式\nDevTools 监听 ws://127.0.0.1:9222/devtools/browser/xxx\n3. 重启 Chrome (杀旧进程)\npkill -f \"chrome.*remote-debugging-port=9222\" 2>/dev/null\nsleep 1\nxvfb-run -a google-chrome --no-sandbox \\\n  --disable-gpu --remote-debugging-port=9222 \\\n  --user-data-dir=/tmp/chrome-profile &\n\nChrome DevTools MCP 配合使用\n\nMCP server chrome-devtools 已安装，连接 http://127.0.0.1:9222：\n\nmcporter list chrome-devtools --schema   # 查看可用工具\nmcporter call chrome-devtools.list_pages # 列出页面\n\n常用 MCP 工具\n工具\t功能\nnew_page url:\"https://xxx\"\t打开新页面\nnavigate_page type:\"url\" url:\"https://xxx\"\t导航\ntake_screenshot filePath:\"/path/xxx.png\"\t截图\ntake_snapshot\t获取页面元素快照\nclick uid:\"xxx\"\t点击元素\nfill uid:\"xxx\" value:\"xxx\"\t填入表单\ntype_text text:\"xxx\"\t输入文本\nlist_network_requests\t查看网络请求\nevaluate_script function:\"() => { return document.title }\"\t执行JS\n完整示例\n# 1. 启动浏览器\nxvfb-run -a google-chrome --no-sandbox \\\n  --disable-gpu --remote-debugging-port=9222 \\\n  --user-data-dir=/tmp/chrome-profile &\n\n# 2. 检查是否就绪\ncurl -s http://127.0.0.1:9222/json/version\n\n# 3. 用 MCP 操作\nmcporter call chrome-devtools.new_page url:\"https://www.baidu.com\"\nmcporter call chrome-devtools.take_screenshot filePath:\"/root/screenshot.png\"\n\n参数解释\n参数\t作用\n--headless=new\t无头模式(不显示窗口)\n--remote-debugging-port=9222\t开启调试端口，供MCP连接\n--no-sandbox\t跳过沙箱(服务器必加)\n--disable-gpu\t禁用GPU(服务器必加)\n--user-data-dir=/tmp/xxx\t用户数据目录(避免冲突)\n-a (xvfb-run)\t自动分配 display 编号\nDISPLAY=:99\t指定使用某个 Xvfb 显示编号\n分辨率配置\n查看当前 Xvfb\nps aux | grep Xvfb | grep -v grep\n\n\n输出示例：\n\nXvfb :99 -screen 0 1280x720x24\nXvfb :100 -screen 0 640x480x24\n\n启动指定分辨率的 Xvfb\n# 1280x720 分辨率\nXvfb :99 -screen 0 1280x720x24 -nolisten tcp &\n\n# 1920x1080 分辨率\nXvfb :99 -screen 0 1920x1080x24 -nolisten tcp &\n\n绑定 Chrome 到指定 Xvfb\n# 方式1：使用 xvfb-run 自动分配\nxvfb-run -a google-chrome --no-sandbox ...\n\n# 方式2：手动指定 display 编号\nDISPLAY=:99 google-chrome --no-sandbox ...\n\n常用分辨率\n分辨率\t适用场景\n640x480\t轻量爬取、简单截图\n1280x720 (720p)\t常规浏览、推荐配置\n1920x1080 (1080p)\t高清截图、复杂页面\n常用操作\n# 查看当前运行的 Xvfb\nps aux | grep Xvfb | grep -v grep\n\n# 杀掉所有 Chrome 进程\nkillall chrome\n\n# 杀掉所有 Xvfb\npkill Xvfb\n\n# 重启 Chrome（绑定到 :99）\nkillall chrome 2>/dev/null\nsleep 1\nDISPLAY=:99 google-chrome --no-sandbox \\\n  --disable-gpu --remote-debugging-port=9222 \\\n  --user-data-dir=/tmp/chrome-profile &"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/CodingLink/xvfb-chrome",
    "publisherUrl": "https://clawhub.ai/CodingLink/xvfb-chrome",
    "owner": "CodingLink",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/xvfb-chrome",
    "downloadUrl": "https://openagent3.xyz/downloads/xvfb-chrome",
    "agentUrl": "https://openagent3.xyz/skills/xvfb-chrome/agent",
    "manifestUrl": "https://openagent3.xyz/skills/xvfb-chrome/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/xvfb-chrome/agent.md"
  }
}