agentgo-stealth-browser

Automate websites using AgentGo’s cloud browser cluster via Playwright (pinned to playwright@1.51.0), with stealth-friendly configuration intended to reduce automation detection. Use for navigation, form filling, screenshots, testing flows, and data extraction on remote Chromium instead of a local browser. Requires AGENTGO_API_KEY.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "agentgo-stealth-browser" with this command: npx skills add agentgostealthbrowser/official

AgentGo Stealth Browser: Cloud Playwright Automation

AgentGo provides a distributed cloud browser cluster. You connect via WebSocket using chromium.connect() from playwright@1.51.0.

“Stealth” refers to configuration intended to reduce automation detection. Results depend on the target site and cannot be guaranteed.

Important: Pin Playwright to 1.51.0. Newer versions may be protocol-incompatible with AgentGo’s server.

When to use / When not to use

Use this skill when you want:

  • A remote browser (cloud) instead of running Chromium locally
  • Reliable automation for navigation, form filling, screenshots, testing, scraping/extraction
  • Parallel multi-page workflows

Don’t use this skill when:

  • A simple HTTP fetch is enough (no JS / no interactions)
  • You can’t pin Playwright to 1.51.0

Prerequisites

  • Node.js environment to run Playwright code
  • An AgentGo account (free credits available)
  • Environment variable: AGENTGO_API_KEY

Get an API key

Register at https://app.agentgo.live/

export AGENTGO_API_KEY="your_api_key_here"

Install (must pin Playwright)

npm install playwright@1.51.0
# or
pnpm add playwright@1.51.0

# Optional: for session management
npm install @agentgo-dev/sdk

Minimal example (open → screenshot → save)

This saves a full-page screenshot to example.png in your current working directory.

import { chromium } from "playwright"; // must be playwright@1.51.0

const options = { _apikey: process.env.AGENTGO_API_KEY };
const serverUrl = `wss://app.browsers.live?launch-options=${encodeURIComponent(
  JSON.stringify(options)
)}`;

const browser = await chromium.connect(serverUrl);
try {
  const page = await browser.newPage();
  await page.goto("https://example.com", { waitUntil: "domcontentloaded" });
  await page.screenshot({ path: "example.png", fullPage: true });
} finally {
  await browser.close();
}

Quick start

import { chromium } from "playwright"; // must be playwright@1.51.0

const options = { _apikey: process.env.AGENTGO_API_KEY };
const serverUrl = `wss://app.browsers.live?launch-options=${encodeURIComponent(
  JSON.stringify(options)
)}`;

const browser = await chromium.connect(serverUrl);
try {
  const page = await browser.newPage();

  await page.goto("https://example.com");
  console.log(await page.title());
} finally {
  await browser.close();
}

Browser sessions (recommended)

If you need better control over lifecycle, concurrency, or reuse, use AgentGo browser sessions.

Docs:

Typical flow:

  1. Create a browser session using the official SDK (@agentgo-dev/sdk)
  2. The SDK returns a connectionUrl (WebSocket)
  3. Connect with Playwright using that URL
  4. Run automation, then close the browser to end the session

Session connect example using the SDK:

import { AgentGo } from "@agentgo-dev/sdk";
import { chromium } from "playwright"; // must be playwright@1.51.0

const client = new AgentGo({ apiKey: process.env.AGENTGO_API_KEY! });
const session = await client.sessions.create({ region: "us" });

const browser = await chromium.connect(session.connectionUrl);
try {
  const page = await browser.newPage();
  await page.goto("https://example.com", { waitUntil: "domcontentloaded" });
  await page.screenshot({ path: "session-example.png", fullPage: true });
} finally {
  await browser.close();
}

Note: Session creation/usage details can change on the AgentGo side. Always follow the two official docs above for the latest parameters and lifecycle steps.

Connection helper (recommended)

The examples below use this helper. Copy it into your project, or inline the connection logic.

import { chromium } from "playwright";

export async function connectAgentGo() {
  if (!process.env.AGENTGO_API_KEY) {
    throw new Error("AGENTGO_API_KEY is not set");
  }
  const opts = encodeURIComponent(
    JSON.stringify({ _apikey: process.env.AGENTGO_API_KEY })
  );
  return chromium.connect(`wss://app.browsers.live?launch-options=${opts}`);
}

Pass _disable_proxy: true in launch options to bypass the default proxy. See session-management.md for all connection options.

Basic interactions

const browser = await connectAgentGo(); // see "Connection helper" section above
const page = await browser.newPage();

await page.goto("https://example.com");
await page.click("button#submit");
await page.fill("input[name=email]", "user@example.com"); // for anti-detection, use keyboard.type() instead — see tips-general.md
await page.press("input[name=email]", "Enter");
await page.screenshot({ path: "screenshot.png" });

await browser.close();

Extract data

const browser = await connectAgentGo(); // see "Connection helper" section above
const page = await browser.newPage();
await page.goto("https://news.ycombinator.com");

const items = await page.$$eval(".titleline a", els =>
  els.map(a => ({
    title: a.textContent,
    href: a.href,
  }))
);

await browser.close();
console.log(items);

Multiple pages (parallel)

const browser = await connectAgentGo(); // see "Connection helper" section above
const [page1, page2] = await Promise.all([browser.newPage(), browser.newPage()]);

await Promise.all([
  page1.goto("https://site-a.com"),
  page2.goto("https://site-b.com"),
]);

await browser.close();

Always close in finally

const browser = await connectAgentGo(); // see "Connection helper" section above
try {
  const page = await browser.newPage();
  await doWork(page);
} finally {
  await browser.close();
}

References (deep dive)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Crabwalk

Real-time companion monitor for OpenClaw agents

Registry SourceRecently Updated
2.7K4luccast
Automation

Crabwalk

Real-time companion monitor for OpenClaw agents

Registry SourceRecently Updated
1.9K2luccast
Automation

Homeassistant N8n Agent

Bridge OpenClaw with your n8n instance for Home Assistant automation.

Registry SourceRecently Updated
Automation

Moltext

Compile legacy documentation on internet into agent-native memory context using the Moltext.

Registry SourceRecently Updated