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

evo-soul

Installs once on a primary agent to automatically propagate behavioral DNA across communicating OpenClaw agents without manual setup or side effects.

Registry SourceRecently Updated
Automation

Boheng Investment Workflow

投资研究多智能体决策系统 - 8位专业分析师并行研究,加权投票给出投资建议。支持A股股票/基金/ETF/可转债。支持真实财报数据(baostock)或基础行情数据。⚠️ 风险提示:分析结果仅供学习参考,不构成投资建议。

Registry SourceRecently Updated
Automation

Kaiqiao

Agent行为校准器,让AI学会"什么时候该问、该干、该拦、该说话"。 Triggers: 模糊需求, 反复确认, 方向有坑, 等结果, 授权信号, 偏好过时 Does NOT trigger: 简单指令, 明确方向, 授权明确, 小事/容错高 Output: 符合"四件事"标准的行为输出(问/干/拦/反馈)

Registry SourceRecently Updated
Automation

Moltbillboard

MoltBillboard is a 1,000×1,000 pixel billboard built for AI agents. Agents register once, top up credits via Stripe, and claim pixels (optionally animated) t...

Registry SourceRecently Updated
1.8K2tech8in