{"id":"56a66ffd-ba86-45c8-ac1b-6857f4579ba2","entityType":"agent","slug":"clawhub-felipegoulu-browser-control","name":"Browser Control","canonicalUrl":"https://www.xpersona.co/agent/clawhub-felipegoulu-browser-control","canonicalPath":"/agent/clawhub-felipegoulu-browser-control","generatedAt":"2026-10-10T10:43:52.192Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T06:12:40.777Z","emptyReason":null},"description":"Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need t... Skill: Browser Control Owner: felipegoulu Summary: Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need t... Tags: automation:1.0.0, browser:1.0.0, latest:1.0.3, oauth:1.0.0, remote:1.0.0, vnc:1.0.0 Version history: v1.0.3 | 2026-02-18T19:10:37.239Z | user - Added installation instructions to SKILL.md, including how","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.6K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s1790e5zrrh7cqh93c0cvhvd0h884x1r:browser-control","sourceUrl":"https://clawhub.ai/felipegoulu/browser-control","homepage":"https://clawhub.ai/felipegoulu/skills/browser-control","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/felipegoulu/browser-control","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/felipegoulu/skills/browser-control","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need t..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T06:12:40.777Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T06:12:40.777Z","emptyReason":null},"stars":null,"forks":null,"downloads":1627,"packageName":null,"latestVersion":"1.0.3","tractionLabel":"1.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T06:12:40.777Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T06:12:40.777Z","lastCrawledAt":"2026-10-10T06:12:40.777Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T06:12:40.777Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.3","createdAt":"2026-02-18T19:10:37.239Z","changelog":"- Added installation instructions to SKILL.md, including how to run the installer and configure ngrok and Google OAuth. - Clarified that installation is required only once per machine. - No changes to skill logic; documentation update only.","fileCount":7,"zipByteSize":11163},{"version":"1.0.2","createdAt":"2026-02-18T19:08:32.612Z","changelog":"- Added install.sh script for easier setup and installation. - No changes to existing documentation or functionality.","fileCount":7,"zipByteSize":10966},{"version":"1.0.1","createdAt":"2026-02-18T18:11:07.603Z","changelog":"- Removed config.json and ngrok-config.json files from the repository. - No changes to documentation or workflow; references to these files remain for runtime use only.","fileCount":6,"zipByteSize":5274},{"version":"1.0.0","createdAt":"2026-02-18T18:08:42.064Z","changelog":"Initial release of browser-control skill. - Provides secure remote browser access for user login, 2FA, captcha, or manual verification. - Access is protected by Google OAuth and restricted to a configured email. - Includes scripts for checking status, starting/stopping the tunnel, and retrieving connection details. - Reminds users to always read the fresh config.json for the latest access URL. - Offers a guided workflow and example user message for seamless manual intervention. - Emphasizes security and explicit tunnel management.","fileCount":8,"zipByteSize":5769}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1790e5zrrh7cqh93c0cvhvd0h884x1r:browser-control","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-felipegoulu-browser-control/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-felipegoulu-browser-control/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-felipegoulu-browser-control/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-felipegoulu-browser-control/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-felipegoulu-browser-control/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-felipegoulu-browser-control/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T10:43:52.192Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-felipegoulu-browser-control/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-felipegoulu-browser-control/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-felipegoulu-browser-control/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-felipegoulu-browser-control/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T06:12:40.777Z","emptyReason":null},"readme":"Skill: Browser Control\n\nOwner: felipegoulu\n\nSummary: Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need t...\n\nTags: automation:1.0.0, browser:1.0.0, latest:1.0.3, oauth:1.0.0, remote:1.0.0, vnc:1.0.0\n\nVersion history:\n\nv1.0.3 | 2026-02-18T19:10:37.239Z | user\n\n- Added installation instructions to SKILL.md, including how to run the installer and configure ngrok and Google OAuth.\n- Clarified that installation is required only once per machine.\n- No changes to skill logic; documentation update only.\n\nv1.0.2 | 2026-02-18T19:08:32.612Z | user\n\n- Added install.sh script for easier setup and installation.\n- No changes to existing documentation or functionality.\n\nv1.0.1 | 2026-02-18T18:11:07.603Z | user\n\n- Removed config.json and ngrok-config.json files from the repository.\n- No changes to documentation or workflow; references to these files remain for runtime use only.\n\nv1.0.0 | 2026-02-18T18:08:42.064Z | user\n\nInitial release of browser-control skill.\n\n- Provides secure remote browser access for user login, 2FA, captcha, or manual verification.\n- Access is protected by Google OAuth and restricted to a configured email.\n- Includes scripts for checking status, starting/stopping the tunnel, and retrieving connection details.\n- Reminds users to always read the fresh config.json for the latest access URL.\n- Offers a guided workflow and example user message for seamless manual intervention.\n- Emphasizes security and explicit tunnel management.\n\nArchive index:\n\nArchive v1.0.3: 7 files, 11163 bytes\n\nFiles: install.sh (18564b), SKILL.md (3643b), start-chrome.sh (519b), start-tunnel.sh (5634b), status.sh (1236b), stop-tunnel.sh (446b), _meta.json (134b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: browser-control\ndescription: Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need the user to log into a website, complete 2FA/MFA, solve a captcha, or do any manual browser action.\n---\n\n# Browser Control\n\nRemote browser access for login, 2FA, captcha, and manual verification.\nProtected by Google OAuth - the user must login with their Google account.\n\n## Installation (First Time Only)\n\nBefore using this skill, run the installer to configure ngrok and Google OAuth:\n\n```bash\nbash ~/.openclaw/skills/browser-control/install.sh\n```\n\nThe installer will:\n1. Install dependencies (VNC, noVNC, ngrok)\n2. Ask for your **ngrok authtoken** (get it from https://dashboard.ngrok.com/get-started/your-authtoken)\n3. Verify your **Google account** (only this email will be able to access the browser)\n\nThis only needs to be done once per machine.\n\n## When to use\n\nWhen you need the user to:\n- Log into a website\n- Complete 2FA / MFA\n- Solve a captcha\n- Do any manual browser action\n\n## Check if running\n\n```bash\n~/.openclaw/skills/browser-control/status.sh\n```\n\nReturns JSON with status of VNC, noVNC, and ngrok tunnel.\n\n## Start if not running\n\n```bash\n~/.openclaw/skills/browser-control/start-tunnel.sh\n```\n\nStarts VNC + noVNC + ngrok tunnel with Google OAuth. Takes ~30 seconds.\n\n## Get URL\n\n**⚠️ ALWAYS read this file fresh before sending the URL to the user. Never use cached values.**\n\n```bash\ncat ~/.openclaw/skills/browser-control/config.json\n```\n\nReturns:\n```json\n{\n  \"novncUrl\": \"https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\",\n  \"tunnelUrl\": \"https://xxx.ngrok.app\",\n  \"allowedEmail\": \"user@gmail.com\",\n  \"cdpUrl\": \"http://localhost:9222\"\n}\n```\n\nThe URL changes every time the tunnel restarts. Always read the file, don't trust memory.\n\n## Workflow\n\n1. Check status with `status.sh`\n2. If not running, start with `start-tunnel.sh`\n3. **Read `config.json` NOW** (not from memory!) for URL\n4. Send user the link\n5. User logs in with their Google account\n6. User does the manual action (login, 2FA, etc.)\n7. Wait for user to say \"done\"\n8. Continue using browser via CDP (localhost:9222)\n\n**Important:** The tunnel URL changes frequently. Always `cat config.json` right before sending the link.\n\n## Example message to user\n\n```\n🔐 I need you to log in.\n\nOpen: https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\n\nYou'll need to sign in with your Google account.\nLet me know when you're done!\n```\n\n**Note:** Do NOT mention passwords. The link includes auto-login. The user just needs to:\n1. Click the link\n2. Login with Google\n3. Do the action\n4. Tell you \"done\"\n\n## Security\n\n- Protected by Google OAuth\n- Only the email configured during install can access\n- No password to leak - authentication is via Google\n- Tunnel URL changes on restart (adds obscurity)\n\n## Stop when done (optional)\n\n```bash\n~/.openclaw/skills/browser-control/stop-tunnel.sh\n```\n\n## After server reboot\n\n**The tunnel does NOT auto-start on reboot.** You must run `start-tunnel.sh` again.\n\nAlways check `status.sh` first before assuming the tunnel is running.\n\n## Files\n\n```\n~/.openclaw/skills/browser-control/\n├── SKILL.md           # This file\n├── start-tunnel.sh    # Start everything\n├── stop-tunnel.sh     # Stop everything\n├── status.sh          # Check status\n├── config.json        # Current URL (read this before sending to user!)\n├── ngrok-config.json  # Configured email\n├── vnc-password       # VNC password (auto-included in URL)\n└── ngrok.log          # ngrok logs\n```\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn78y3ghv60s6m2j5e41gc8bfd81c41m\",\n  \"slug\": \"browser-control\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1771441837239\n}\n\nArchive v1.0.2: 7 files, 10966 bytes\n\nFiles: install.sh (18564b), SKILL.md (3160b), start-chrome.sh (519b), start-tunnel.sh (5634b), status.sh (1236b), stop-tunnel.sh (446b), _meta.json (134b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: browser-control\ndescription: Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need the user to log into a website, complete 2FA/MFA, solve a captcha, or do any manual browser action.\n---\n\n# Browser Control\n\nRemote browser access for login, 2FA, captcha, and manual verification.\nProtected by Google OAuth - the user must login with their Google account.\n\n## When to use\n\nWhen you need the user to:\n- Log into a website\n- Complete 2FA / MFA\n- Solve a captcha\n- Do any manual browser action\n\n## Check if running\n\n```bash\n~/.openclaw/skills/browser-control/status.sh\n```\n\nReturns JSON with status of VNC, noVNC, and ngrok tunnel.\n\n## Start if not running\n\n```bash\n~/.openclaw/skills/browser-control/start-tunnel.sh\n```\n\nStarts VNC + noVNC + ngrok tunnel with Google OAuth. Takes ~30 seconds.\n\n## Get URL\n\n**⚠️ ALWAYS read this file fresh before sending the URL to the user. Never use cached values.**\n\n```bash\ncat ~/.openclaw/skills/browser-control/config.json\n```\n\nReturns:\n```json\n{\n  \"novncUrl\": \"https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\",\n  \"tunnelUrl\": \"https://xxx.ngrok.app\",\n  \"allowedEmail\": \"user@gmail.com\",\n  \"cdpUrl\": \"http://localhost:9222\"\n}\n```\n\nThe URL changes every time the tunnel restarts. Always read the file, don't trust memory.\n\n## Workflow\n\n1. Check status with `status.sh`\n2. If not running, start with `start-tunnel.sh`\n3. **Read `config.json` NOW** (not from memory!) for URL\n4. Send user the link\n5. User logs in with their Google account\n6. User does the manual action (login, 2FA, etc.)\n7. Wait for user to say \"done\"\n8. Continue using browser via CDP (localhost:9222)\n\n**Important:** The tunnel URL changes frequently. Always `cat config.json` right before sending the link.\n\n## Example message to user\n\n```\n🔐 I need you to log in.\n\nOpen: https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\n\nYou'll need to sign in with your Google account.\nLet me know when you're done!\n```\n\n**Note:** Do NOT mention passwords. The link includes auto-login. The user just needs to:\n1. Click the link\n2. Login with Google\n3. Do the action\n4. Tell you \"done\"\n\n## Security\n\n- Protected by Google OAuth\n- Only the email configured during install can access\n- No password to leak - authentication is via Google\n- Tunnel URL changes on restart (adds obscurity)\n\n## Stop when done (optional)\n\n```bash\n~/.openclaw/skills/browser-control/stop-tunnel.sh\n```\n\n## After server reboot\n\n**The tunnel does NOT auto-start on reboot.** You must run `start-tunnel.sh` again.\n\nAlways check `status.sh` first before assuming the tunnel is running.\n\n## Files\n\n```\n~/.openclaw/skills/browser-control/\n├── SKILL.md           # This file\n├── start-tunnel.sh    # Start everything\n├── stop-tunnel.sh     # Stop everything\n├── status.sh          # Check status\n├── config.json        # Current URL (read this before sending to user!)\n├── ngrok-config.json  # Configured email\n├── vnc-password       # VNC password (auto-included in URL)\n└── ngrok.log          # ngrok logs\n```\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn78y3ghv60s6m2j5e41gc8bfd81c41m\",\n  \"slug\": \"browser-control\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1771441712612\n}\n\nArchive v1.0.1: 6 files, 5274 bytes\n\nFiles: SKILL.md (3160b), start-chrome.sh (519b), start-tunnel.sh (5634b), status.sh (1236b), stop-tunnel.sh (446b), _meta.json (134b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: browser-control\ndescription: Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need the user to log into a website, complete 2FA/MFA, solve a captcha, or do any manual browser action.\n---\n\n# Browser Control\n\nRemote browser access for login, 2FA, captcha, and manual verification.\nProtected by Google OAuth - the user must login with their Google account.\n\n## When to use\n\nWhen you need the user to:\n- Log into a website\n- Complete 2FA / MFA\n- Solve a captcha\n- Do any manual browser action\n\n## Check if running\n\n```bash\n~/.openclaw/skills/browser-control/status.sh\n```\n\nReturns JSON with status of VNC, noVNC, and ngrok tunnel.\n\n## Start if not running\n\n```bash\n~/.openclaw/skills/browser-control/start-tunnel.sh\n```\n\nStarts VNC + noVNC + ngrok tunnel with Google OAuth. Takes ~30 seconds.\n\n## Get URL\n\n**⚠️ ALWAYS read this file fresh before sending the URL to the user. Never use cached values.**\n\n```bash\ncat ~/.openclaw/skills/browser-control/config.json\n```\n\nReturns:\n```json\n{\n  \"novncUrl\": \"https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\",\n  \"tunnelUrl\": \"https://xxx.ngrok.app\",\n  \"allowedEmail\": \"user@gmail.com\",\n  \"cdpUrl\": \"http://localhost:9222\"\n}\n```\n\nThe URL changes every time the tunnel restarts. Always read the file, don't trust memory.\n\n## Workflow\n\n1. Check status with `status.sh`\n2. If not running, start with `start-tunnel.sh`\n3. **Read `config.json` NOW** (not from memory!) for URL\n4. Send user the link\n5. User logs in with their Google account\n6. User does the manual action (login, 2FA, etc.)\n7. Wait for user to say \"done\"\n8. Continue using browser via CDP (localhost:9222)\n\n**Important:** The tunnel URL changes frequently. Always `cat config.json` right before sending the link.\n\n## Example message to user\n\n```\n🔐 I need you to log in.\n\nOpen: https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\n\nYou'll need to sign in with your Google account.\nLet me know when you're done!\n```\n\n**Note:** Do NOT mention passwords. The link includes auto-login. The user just needs to:\n1. Click the link\n2. Login with Google\n3. Do the action\n4. Tell you \"done\"\n\n## Security\n\n- Protected by Google OAuth\n- Only the email configured during install can access\n- No password to leak - authentication is via Google\n- Tunnel URL changes on restart (adds obscurity)\n\n## Stop when done (optional)\n\n```bash\n~/.openclaw/skills/browser-control/stop-tunnel.sh\n```\n\n## After server reboot\n\n**The tunnel does NOT auto-start on reboot.** You must run `start-tunnel.sh` again.\n\nAlways check `status.sh` first before assuming the tunnel is running.\n\n## Files\n\n```\n~/.openclaw/skills/browser-control/\n├── SKILL.md           # This file\n├── start-tunnel.sh    # Start everything\n├── stop-tunnel.sh     # Stop everything\n├── status.sh          # Check status\n├── config.json        # Current URL (read this before sending to user!)\n├── ngrok-config.json  # Configured email\n├── vnc-password       # VNC password (auto-included in URL)\n└── ngrok.log          # ngrok logs\n```\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn78y3ghv60s6m2j5e41gc8bfd81c41m\",\n  \"slug\": \"browser-control\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1771438267603\n}\n\nArchive v1.0.0: 8 files, 5769 bytes\n\nFiles: config.json (262b), ngrok-config.json (92b), SKILL.md (3160b), start-chrome.sh (519b), start-tunnel.sh (5634b), status.sh (1236b), stop-tunnel.sh (446b), _meta.json (134b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: browser-control\ndescription: Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need the user to log into a website, complete 2FA/MFA, solve a captcha, or do any manual browser action.\n---\n\n# Browser Control\n\nRemote browser access for login, 2FA, captcha, and manual verification.\nProtected by Google OAuth - the user must login with their Google account.\n\n## When to use\n\nWhen you need the user to:\n- Log into a website\n- Complete 2FA / MFA\n- Solve a captcha\n- Do any manual browser action\n\n## Check if running\n\n```bash\n~/.openclaw/skills/browser-control/status.sh\n```\n\nReturns JSON with status of VNC, noVNC, and ngrok tunnel.\n\n## Start if not running\n\n```bash\n~/.openclaw/skills/browser-control/start-tunnel.sh\n```\n\nStarts VNC + noVNC + ngrok tunnel with Google OAuth. Takes ~30 seconds.\n\n## Get URL\n\n**⚠️ ALWAYS read this file fresh before sending the URL to the user. Never use cached values.**\n\n```bash\ncat ~/.openclaw/skills/browser-control/config.json\n```\n\nReturns:\n```json\n{\n  \"novncUrl\": \"https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\",\n  \"tunnelUrl\": \"https://xxx.ngrok.app\",\n  \"allowedEmail\": \"user@gmail.com\",\n  \"cdpUrl\": \"http://localhost:9222\"\n}\n```\n\nThe URL changes every time the tunnel restarts. Always read the file, don't trust memory.\n\n## Workflow\n\n1. Check status with `status.sh`\n2. If not running, start with `start-tunnel.sh`\n3. **Read `config.json` NOW** (not from memory!) for URL\n4. Send user the link\n5. User logs in with their Google account\n6. User does the manual action (login, 2FA, etc.)\n7. Wait for user to say \"done\"\n8. Continue using browser via CDP (localhost:9222)\n\n**Important:** The tunnel URL changes frequently. Always `cat config.json` right before sending the link.\n\n## Example message to user\n\n```\n🔐 I need you to log in.\n\nOpen: https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\n\nYou'll need to sign in with your Google account.\nLet me know when you're done!\n```\n\n**Note:** Do NOT mention passwords. The link includes auto-login. The user just needs to:\n1. Click the link\n2. Login with Google\n3. Do the action\n4. Tell you \"done\"\n\n## Security\n\n- Protected by Google OAuth\n- Only the email configured during install can access\n- No password to leak - authentication is via Google\n- Tunnel URL changes on restart (adds obscurity)\n\n## Stop when done (optional)\n\n```bash\n~/.openclaw/skills/browser-control/stop-tunnel.sh\n```\n\n## After server reboot\n\n**The tunnel does NOT auto-start on reboot.** You must run `start-tunnel.sh` again.\n\nAlways check `status.sh` first before assuming the tunnel is running.\n\n## Files\n\n```\n~/.openclaw/skills/browser-control/\n├── SKILL.md           # This file\n├── start-tunnel.sh    # Start everything\n├── stop-tunnel.sh     # Stop everything\n├── status.sh          # Check status\n├── config.json        # Current URL (read this before sending to user!)\n├── ngrok-config.json  # Configured email\n├── vnc-password       # VNC password (auto-included in URL)\n└── ngrok.log          # ngrok logs\n```\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn78y3ghv60s6m2j5e41gc8bfd81c41m\",\n  \"slug\": \"browser-control\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1771438122064\n}\n\nFile v1.0.0:config.json\n\n{\n    \"novncUrl\": \"https://694055f6c23e.ngrok.app/vnc.html?autoconnect=true\",\n    \"tunnelUrl\": \"https://694055f6c23e.ngrok.app\",\n    \"allowedEmail\": \"felipegoulu16@gmail.com\",\n    \"cdpUrl\": \"http://localhost:9222\",\n    \"updatedAt\": \"2026-02-15T17:41:26-03:00\"\n}\n\nFile v1.0.0:ngrok-config.json\n\n{\n    \"email\": \"felipegoulu16@gmail.com\",\n    \"configuredAt\": \"2026-02-15T17:34:18-03:00\"\n}","readmeExcerpt":"Skill: Browser Control Owner: felipegoulu Summary: Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need t... Tags: automation:1.0.0, browser:1.0.0, latest:1.0.3, oauth:1.0.0, remote:1.0.0, vnc:1.0.0 Version history: v1.0.3 | 2026-02-18T19:10:37.239Z | user - Added installation instructions to SKILL.md, including how","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"bash ~/.openclaw/skills/browser-control/install.sh"},{"language":"bash","snippet":"~/.openclaw/skills/browser-control/status.sh"},{"language":"bash","snippet":"~/.openclaw/skills/browser-control/start-tunnel.sh"},{"language":"bash","snippet":"cat ~/.openclaw/skills/browser-control/config.json"},{"language":"json","snippet":"{\n  \"novncUrl\": \"https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\",\n  \"tunnelUrl\": \"https://xxx.ngrok.app\",\n  \"allowedEmail\": \"user@gmail.com\",\n  \"cdpUrl\": \"http://localhost:9222\"\n}"},{"language":"text","snippet":"🔐 I need you to log in.\n\nOpen: https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\n\nYou'll need to sign in with your Google account.\nLet me know when you're done!"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: browser-control\ndescription: Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need the user to log into a website, complete 2FA/MFA, solve a captcha, or do any manual browser action.\n---\n\n# Browser Control\n\nRemote browser access for login, 2FA, captcha, and manual verification.\nProtected by Google OAuth - the user must login with their Google account.\n\n## Installation (First Time Only)\n\nBefore using this skill, run the installer to configure ngrok and Google OAuth:\n\n```bash\nbash ~/.openclaw/skills/browser-control/install.sh\n```\n\nThe installer will:\n1. Install dependencies (VNC, noVNC, ngrok)\n2. Ask for your **ngrok authtoken** (get it from https://dashboard.ngrok.com/get-started/your-authtoken)\n3. Verify your **Google account** (only this email will be able to access the browser)\n\nThis only needs to be done once per machine.\n\n## When to use\n\nWhen you need the user to:\n- Log into a website\n- Complete 2FA / MFA\n- Solve a captcha\n- Do any manual browser action\n\n## Check if running\n\n```bash\n~/.openclaw/skills/browser-control/status.sh\n```\n\nReturns JSON with status of VNC, noVNC, and ngrok tunnel.\n\n## Start if not running\n\n```bash\n~/.openclaw/skills/browser-control/start-tunnel.sh\n```\n\nStarts VNC + noVNC + ngrok tunnel with Google OAuth. Takes ~30 seconds.\n\n## Get URL\n\n**⚠️ ALWAYS read this file fresh before sending the URL to the user. Never use cached values.**\n\n```bash\ncat ~/.openclaw/skills/browser-control/config.json\n```\n\nReturns:\n```json\n{\n  \"novncUrl\": \"https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\",\n  \"tunnelUrl\": \"https://xxx.ngrok.app\",\n  \"allowedEmail\": \"user@gmail.com\",\n  \"cdpUrl\": \"http://localhost:9222\"\n}\n```\n\nThe URL changes every time the tunnel restarts. Always read the file, don't trust memory.\n\n## Workflow\n\n1. Check status with `status.sh`\n2. If not running, start with `start-tunnel.sh`\n3. **Read `config.json` NOW** (not from memory!) for URL\n4. Send user the link\n5. User logs in with their Google account\n6. User does the manual action (login, 2FA, etc.)\n7. Wait for user to say \"done\"\n8. Continue using browser via CDP (localhost:9222)\n\n**Important:** The tunnel URL changes frequently. Always `cat config.json` right before sending the link.\n\n## Example message to user\n\n```\n🔐 I need you to log in.\n\nOpen: https://xxx.ngrok.app/vnc.html?password=xxx&autoconnect=true\n\nYou'll need to sign in with your Google account.\nLet me know when you're done!\n```\n\n**Note:** Do NOT mention passwords. The link includes auto-login. The user just needs to:\n1. Click the link\n2. Login with Google\n3. Do the action\n4. Tell you \"done\"\n\n## Security\n\n- Protected by Google OAuth\n- Only the email configured during install can access\n- No password to leak - authentication is via Google\n- Tunnel URL changes on restart (adds obscurity)\n\n## Stop when done (optional)\n\n```bash\n~/.openclaw/skills/browser-control/stop-tunnel.sh\n```\n\n## After serv"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn78y3ghv60s6m2j5e41gc8bfd81c41m\",\n  \"slug\": \"browser-control\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1771441837239\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need t... Skill: Browser Control Owner: felipegoulu Summary: Remote browser access for login, 2FA, captcha, and manual verification. Protected by Google OAuth - only the configured email can access. Use when you need t... Tags: automation:1.0.0, browser:1.0.0, latest:1.0.3, oauth:1.0.0, remote:1.0.0, vnc:1.0.0 Version history: v1.0.3 | 2026-02-18T19:10:37.239Z | user - Added installation instructions to SKILL.md, including how","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":902,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T06:12:40.777Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T06:12:40.777Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:43:52.192Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}