TestMu AI Browser Cloud — agent skill. Give any AI agent a real browser. No local Chrome. No infrastructure. Just agents that can actually use the web.
This repo contains a ready-to-use agent skill for TestMu AI Browser Cloud — a cloud browser infrastructure built for AI agents. Drop the skill into Claude, Cursor, or any LLM tool that supports custom skills/instructions, and your agent will write production-grade browser automation code on demand.
The browser-cloud skill is a structured instruction file (browser-cloud/SKILL.md) that tells an LLM assistant exactly how to generate code for this domain. When you load this skill into your AI tool, it gains the ability to:
- Spin up isolated cloud browser sessions via
@testmuai/browser-cloud - Connect via Puppeteer, Playwright, or Selenium
- Handle stealth, auth persistence, tunnels, file transfer, and observability
- Wrap browser actions into LangChain, CrewAI, OpenAI function calling, or any custom agent loop
The skill is agent-agnostic — it works with any LLM or agent framework, not just Claude.
Install browser-cloud from the LambdaTest browser-cloud-skills repo with the Skills CLI:
npx skills add https://github.com/LambdaTest/browser-cloud-skills --skill browser-cloudRequires Node.js and network access. After it finishes, your environment should pick up the skill where supported; you can still open SKILL.md manually if your tool does not integrate with the CLI.
Claude / Claude.ai (Projects):
Copy the contents of browser-cloud/SKILL.md into a Project instruction or system prompt.
Cursor:
Add to .cursor/rules/browser-cloud.mdc or paste into Cursor Settings → Rules for AI.
Any other LLM tool:
Paste browser-cloud/SKILL.md as a system prompt or instruction file. The skill is plain markdown — it works anywhere.
npm i @testmuai/browser-cloudNode.js 16+ required. Playwright adapter requires Node.js 18+.
# .env
LT_USERNAME=your_testmuai_username
LT_ACCESS_KEY=your_testmuai_access_keyGet credentials at testmuai.com → Settings → Account Settings.
Once the skill is loaded, ask naturally:
"Write me an agent that scrapes competitor pricing from three URLs in parallel"
"Build a LangChain tool that gives my agent access to a real browser"
"Create a browser agent that logs into our staging app and extracts the dashboard data"
"Set up a cloud browser session with stealth mode and Playwright"
The agent reads the skill, picks the right pattern, and writes complete, runnable TypeScript.
├── package.json ← npm scripts and SDK dependency
├── README.md
│
└── browser-cloud/ ← Skill bundle (copy or symlink this folder into your skills dir)
├── SKILL.md ← Load this into your AI tool
├── examples/ ← Runnable TypeScript examples
│ ├── scrape-agent.ts ← Batch scraping with concurrency control
│ ├── form-fill-agent.ts ← Form interaction with Playwright + stealth
│ ├── auth-persist-agent.ts ← Login once, reuse session across runs
│ ├── parallel-research.ts ← Parallel sessions with progress tracking
│ └── langchain-browser-tool.ts ← Four LangChain tool variants
└── references/ ← Skill reference library
├── patterns/
│ ├── quick-actions.md ← Scrape / screenshot / PDF one-liners
│ ├── session-navigate.md ← Multi-step navigation and interaction
│ ├── auth-profile.md ← Auth persistence patterns
│ ├── parallel-sessions.md ← Concurrent agent sessions
│ ├── tunnel.md ← Localhost and internal network access
│ └── files.md ← Upload/download between agent and browser
└── integrations/
├── openai-functions.md ← OpenAI + Anthropic function calling
└── crewai.md ← CrewAI BaseTool (Python + Node bridge)
import { scrapeWithAgent, batchScrape } from './browser-cloud/examples/scrape-agent';
// Single URL
const result = await scrapeWithAgent('https://example.com');
// Multiple URLs, 3 concurrent sessions
const results = await batchScrape(['https://a.com', 'https://b.com', 'https://c.com'], 3);import { fetchDashboard } from './browser-cloud/examples/auth-persist-agent';
// First run: logs in, saves session to .profiles/myapp-login.json
// All future runs: loads saved session, skips login entirely
const data = await fetchDashboard('https://app.example.com/dashboard');import { buildBrowserAgent } from './browser-cloud/examples/langchain-browser-tool';
const agent = await buildBrowserAgent();
const result = await agent.invoke({
input: 'Research the latest pricing for our top three competitors.',
});import { parallelResearch } from './browser-cloud/examples/parallel-research';
const results = await parallelResearch([
'https://competitor-a.com/pricing',
'https://competitor-b.com/pricing',
'https://competitor-c.com/pricing',
], 3);| Framework | Language | Status | Reference |
|---|---|---|---|
| LangChain | TypeScript | Ready | browser-cloud/examples/langchain-browser-tool.ts |
| OpenAI function calling | TypeScript | Ready | browser-cloud/references/integrations/openai-functions.md |
| Anthropic tool use | TypeScript | Ready | browser-cloud/references/integrations/openai-functions.md |
| CrewAI | Python | Ready (subprocess bridge) | browser-cloud/references/integrations/crewai.md |
| AutoGen | Python | Use OpenAI pattern | browser-cloud/references/integrations/openai-functions.md |
| Custom agent loop | Any | Drop-in function | Any file in browser-cloud/examples/ |
| Capability | What it does |
|---|---|
| Stealth mode | 15+ fingerprint patches (Puppeteer) / 6 init scripts (Playwright). Humanized click/type timing. Randomized UA and viewport. |
| Auth persistence | Save login state to disk. Reload on every run. Zero re-logins for scheduled agents. |
| Context transfer | Pass cookies and storage between sessions in the same script run. |
| Tunnel | Access localhost, staging, or VPN-gated URLs from cloud browsers. |
| Parallel sessions | Multiple isolated browsers running concurrently. Batching support. |
| File transfer | Upload local files to cloud browser. Download exports, receipts, reports back to disk. |
| Extensions | Load Chrome extensions into sessions from S3 URLs. |
| Quick Actions | One-liner scrape, screenshot, and PDF — no session management required. |
| Observability | Every session gets video recording, console logs, and network capture in your TestMu AI automation session history. |
- Node.js 16+ (18+ for Playwright adapter)
- A TestMu AI account (free tier available)
@testmuai/browser-cloudnpm package
Contributions welcome. The most useful additions are:
- New pattern files in
browser-cloud/references/patterns/for use cases not currently covered - New integration files in
browser-cloud/references/integrations/for frameworks not yet supported - New runnable examples in
browser-cloud/examples/ - Improvements to
browser-cloud/SKILL.mdthat make the LLM output more correct or more concise
Keep browser-cloud/SKILL.md under 500 lines. Every addition should remove something or replace something weaker. The skill is a decision engine, not a tutorial.
MIT