Agent Browser
quran/quran.com-frontend-next
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
Test autoconsent rules across geographic regions using Oxylabs Agent Browser remote browsers.
$ npx skills add duckduckgo/autoconsent --skill oxylabs-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install duckduckgo/autoconsent oxylabs-testing --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/duckduckgo/autoconsent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/oxylabs-testing .claude/skills/oxylabs-testing && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "oxylabs-testing" agent skill from https://github.com/duckduckgo/autoconsent/tree/main/.agents/skills/oxylabs-testing into .claude/skills/oxylabs-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oxylabs-testing", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/duckduckgo/autoconsent/tree/main/.agents/skills/oxylabs-testingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add duckduckgo/autoconsent --skill oxylabs-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install duckduckgo/autoconsent oxylabs-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duckduckgo/autoconsent.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/oxylabs-testing .agents/skills/oxylabs-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "oxylabs-testing" agent skill from https://github.com/duckduckgo/autoconsent/tree/main/.agents/skills/oxylabs-testing into .agents/skills/oxylabs-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oxylabs-testing", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add duckduckgo/autoconsent --skill oxylabs-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install duckduckgo/autoconsent oxylabs-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duckduckgo/autoconsent.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/oxylabs-testing .cursor/skills/oxylabs-testing && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "oxylabs-testing" agent skill from https://github.com/duckduckgo/autoconsent/tree/main/.agents/skills/oxylabs-testing into .cursor/skills/oxylabs-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oxylabs-testing", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/duckduckgo/autoconsent.git --path .agents/skills/oxylabs-testing--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add duckduckgo/autoconsent --skill oxylabs-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install duckduckgo/autoconsent oxylabs-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duckduckgo/autoconsent.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/oxylabs-testing .gemini/skills/oxylabs-testing && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "oxylabs-testing" agent skill from https://github.com/duckduckgo/autoconsent/tree/main/.agents/skills/oxylabs-testing into .gemini/skills/oxylabs-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oxylabs-testing", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install duckduckgo/autoconsent oxylabs-testingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add duckduckgo/autoconsent --skill oxylabs-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/duckduckgo/autoconsent.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/oxylabs-testing .github/skills/oxylabs-testing && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "oxylabs-testing" agent skill from https://github.com/duckduckgo/autoconsent/tree/main/.agents/skills/oxylabs-testing into .github/skills/oxylabs-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oxylabs-testing", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add duckduckgo/autoconsent --skill oxylabs-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install duckduckgo/autoconsent oxylabs-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duckduckgo/autoconsent.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/oxylabs-testing .opencode/skills/oxylabs-testing && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "oxylabs-testing" agent skill from https://github.com/duckduckgo/autoconsent/tree/main/.agents/skills/oxylabs-testing into .opencode/skills/oxylabs-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "oxylabs-testing", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
oxylabs-testingTest autoconsent rules across geographic regions using Oxylabs Agent Browser remote browsers.
Oxylabs Testing is an agent skill from duckduckgo/autoconsent. Test autoconsent rules across geographic regions using Oxylabs Agent Browser remote browsers. Use when a site shows our regional proxies a bot wall (captcha, challenge page, access denied), when a region has no regional proxy (e.g. pt, br), or for US state/city targeting. Default to proxy-testing otherwise.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts.
It sits in Productivity & Automation, covering Browser automation. The licence is MPL-2.0.
Read from SKILL.md and the folder at commit 46be17f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
wohnen.deAlso links to:
developers.oxylabs.ioFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OXYLABS_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Oxylabs Testing loads about 1.9k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 750 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from duckduckgo/autoconsent at commit 46be17f, republished under its MPL-2.0 licence (© duckduckgo). 750 words, ~1,860 tokens.
.claude/skills/oxylabs-testing/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.This skill runs autoconsent in Oxylabs Agent Browser sessions in a chosen country.
Default to the proxy-testing skill. Oxylabs costs money per session. Use this skill when:
pt);us-california).The region policy (core and expanded sets) is the one in the proxy-testing skill. Results have the same shape, and the same rule applies: autoconsent results can have false positives, so always inspect the screenshots and confirm that opt-out was successful.
npm run prepublish # builds dist/autoconsent.playwright.js and rules/rules.jsonEnvironment variables:
OXYLABS_USER — the Agent Browser username, including its account suffix (e.g. user_ab12)OXYLABS_PASSWORDOXYLABS_HOST (optional, defaults to hb.oxylabs.io. The older ubc.oxylabs.io endpoint is deprecated.)The endpoint URL contains the credentials: never log it. Errors returned by this library are already redacted.
The library is at scripts/oxylabs.mjs. It exports the same functions as proxy-testing (testUrl, testRegions, testPage, injectAutoconsent, formatResult, region sets), so a script can switch providers by changing the import.
import { formatResult, testRegions } from './.agents/skills/oxylabs-testing/scripts/oxylabs.mjs';
for (const result of await testRegions('https://www.wohnen.de/', ['us', 'gb', 'de', 'pt'])) {
console.log(formatResult(result));
}Use an existing page (one Oxylabs session; the callback's page is closed afterwards):
import { testPage, withOxylabsPage } from './.agents/skills/oxylabs-testing/scripts/oxylabs.mjs';
const result = await withOxylabsPage('de', { device: 'mobile' }, async (page) => {
const result = await testPage(page, 'https://www.wohnen.de/', 'de');
await page.screenshot({ path: 'test-results/oxylabs/after-de-mobile.png' });
return result;
});testUrl(url, regionKey, options?) — open an Oxylabs session in the region, run autoconsent, screenshot, close; returns a TestResult.testRegions(url, regions?, options?) — testUrl for each region (defaults to CORE_REGIONS), a fresh session per region.testPage(page, url, regionKey, options?) — run a full test on a page from an Oxylabs session you opened.withOxylabsPage(regionKey, options, fn) — open a session, call fn(page), close the session; returns what fn returns. Throws if the session cannot be opened.connectOxylabs(regionKey, options?) — the raw Playwright Browser (chromium.connectOverCDP). Close it yourself.injectAutoconsent(page, options?) — low level; call before page.goto(). Returns the proxy-testing context plus captcha ({ detected, solved }, the Oxylabs solver state) and captchaPromise (resolves when solving ends).isOxylabsConfigured() — whether OXYLABS_USER and OXYLABS_PASSWORD are set.formatResult(result), CORE_REGIONS, EXPANDED_REGIONS, ALL_REGIONS — same as proxy-testing.Options: everything testPage takes in proxy-testing (action, screenshotsDir, navigationTimeout, completionTimeout, detectionTimeout), plus:
| Option | Default | Description |
|---|---|---|
device | 'desktop' | 'desktop' | 'mobile' — sets ?p_device= (viewport, touch, headers, User-Agent). Use it for mobile tests instead of Playwright device descriptors, which would contradict the Oxylabs fingerprint. |
solveCaptcha | false | Sends ?solve_captcha=true so Oxylabs solves captchas on the page, and waits for the solver (see Gotchas). Accounts without the feature get HTTP 400 for every session, so leave it off unless captcha solving is enabled. |
Screenshots default to test-results/oxylabs, named <domain>-<region>-oxylabs-final.jpg.
Any two-letter country code maps to ?p_cc= (e.g. de → p_cc=DE), per the geolocation docs. State- and city-targeted keys (OXYLABS_LOCAL_REGIONS):
| Key | Location | Query params |
|---|---|---|
us-california | United States (California) | p_state=california |
us-newyork | United States (New York) | p_cc=US&p_city=new_york |
us-losangeles | United States (Los Angeles) | p_cc=US&p_city=los_angeles |
Injection and result collection are shared with proxy-testing in .agents/lib/regional-testing/harness.mjs: autoconsent runs in an isolated world of every frame (including out-of-process iframes) and talks to Node over CDP bindings, and eval snippets run in the page's main world. This skill only adds the Oxylabs connection and the captcha handling.
With solveCaptcha: true, a listener in autoconsent's isolated world forwards the Oxylabs runtime's captcha window messages to Node over the same CDP binding, so they arrive even if the page navigates right after.
window.postMessage, not CDP. With solveCaptcha: true, autoconsent's wait pauses whenever a start event arrives, until oxylabs-captcha-end, oxylabs-captcha-solve-end or oxylabs-captcha-error, for at most 60s from the first start (the timeout in Oxylabs' example). Oxylabs documents no deadline for the start event, so captcha-free pages aren't held up waiting for one. Agent Browser sends oxylabs-captcha-solve-start with a captchaType (e.g. turnstile); the documented oxylabs-captcha-start is accepted too. A Cloudflare Turnstile took about 35-40s to solve. Hard blocks without a captcha (e.g. DataDome "Access is temporarily restricted", Akamai "Access denied") send no events, so solving doesn't help there.page.exposeBinding, and Runtime.addBinding without executionContextName, never reach the page. Bindings scoped to an isolated world (what the harness uses) work, and window messages reach isolated-world listeners, so listen there.page.goto, so autoconsent is in place before page scripts run.proxy-testing gotchas.© duckduckgo, MPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in .agents/skills/oxylabs-testing of duckduckgo/autoconsent.
Open the folder on GitHubat commit 46be17f
Oxylabs Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Oxylabs Testing this skillduckduckgo/autoconsent | 130 | — | ~1.9k | Automated safety check: Pass | MPL-2.0 | |
| Agent Browserquran/quran.com-frontend-next | 1.9k | 42 repos | ~3.3k | Automated safety check: Pass | None | |
| Dev-Browser CLI AutomationSawyerHood/dev-browser | 6.7k | 1 repos | ~455 | Automated safety check: Pass | MIT | |
| Agent Browsersuperagent-ai/grok-cli | 3.5k | 1 repos | ~633 | Automated safety check: Pass | MIT | |
| Browser Automationopenclaw/openclaw | 392k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Camoufox CLIBin-Huang/camoufox-cli | 350 | 1 repos | ~4.5k | Automated safety check: Pass | MIT |
quran/quran.com-frontend-next
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
SawyerHood/dev-browser
Browser automation with persistent named pages via the dev-browser CLI. Use when users ask to navigate websites, fill forms, take screenshots, extract web…
superagent-ai/grok-cli
Use the host-side agent-browser CLI for local browser smoke tests, screenshots, snapshots, and simple UI validation against forwarded localhost URLs.
openclaw/openclaw
A skill your agent uses when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.
Bin-Huang/camoufox-cli
Anti-detect browser automation CLI & Skills for AI agents. An agent skill from Bin-Huang/camoufox-cli.
VibiumDev/vibium
Automate browsers with the Vibium CLI. An agent skill from VibiumDev/vibium.
duckduckgo/autoconsent
Test autoconsent via regional proxies in Playwright. An agent skill from duckduckgo/autoconsent.
duckduckgo/autoconsent
Search PublicWWW to find websites using specific HTML/JS/CSS snippets.
duckduckgo/autoconsent
Verifies an autoconsent pull request by running local CI checks, reviewing rule quality, and inspecting Jenkins E2E results.
Categories
Test autoconsent rules across geographic regions using Oxylabs Agent Browser remote browsers. Oxylabs Testing is an agent skill from duckduckgo/autoconsent. Test autoconsent rules across geographic regions using Oxylabs Agent Browser remote browsers.
Oxylabs Testing fits situations like: A site shows our regional proxies a bot wall (captcha; A region has no regional proxy (e.g.
Run `npx skills add duckduckgo/autoconsent --skill oxylabs-testing -a claude-code`. Or copy the skill folder (.agents/skills/oxylabs-testing in duckduckgo/autoconsent) into .claude/skills/oxylabs-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add duckduckgo/autoconsent --skill oxylabs-testing -a codex`. Or copy the skill folder (.agents/skills/oxylabs-testing in duckduckgo/autoconsent) into .agents/skills/oxylabs-testing in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add duckduckgo/autoconsent --skill oxylabs-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/oxylabs-testing, .gemini/skills/oxylabs-testing, .github/skills/oxylabs-testing and .opencode/skills/oxylabs-testing in your project.
Going by SKILL.md and its folder, Oxylabs Testing needs JavaScript for the scripts in its folder, the command-line tools its instructions call (npm) and credentials named OXYLABS_PASSWORD. Our summary lists: Node.js.
SKILL.md names 2 domains. In commands or code: wohnen.de; the agent is likely to contact it when it follows the instructions. As links in the text: developers.oxylabs.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Oxylabs Testing is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Oxylabs Testing: Agent Browser (quran/quran.com-frontend-next, 1.9k stars), Dev-Browser CLI Automation (SawyerHood/dev-browser, 6.7k stars), Agent Browser (superagent-ai/grok-cli, 3.5k stars) and Browser Automation (openclaw/openclaw, 392k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
duckduckgo (a GitHub organization) maintains it in duckduckgo/autoconsent, which has 130 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 8, 2026.
Source: duckduckgo/autoconsent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.