Open Browser
JasonHonKL/Openbrowser
A skill your agent uses whenever the task involves browsing web pages, extracting page content, clicking forms, or completing web workflows.
Generate working code that routes HTTP requests through Bright Data proxy networks (Datacenter, ISP, Residential, Mobile) and help users decide which network and IP pool type to use (shared pool…
$ npx skills add brightdata/skills --skill brightdata-proxy -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install brightdata/skills brightdata-proxy --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/brightdata/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/proxy .claude/skills/brightdata-proxy && 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 "brightdata-proxy" agent skill from https://github.com/brightdata/skills/tree/main/skills/proxy into .claude/skills/brightdata-proxy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brightdata-proxy", 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/brightdata/skills/tree/main/skills/proxyType 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 brightdata/skills --skill brightdata-proxy -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install brightdata/skills brightdata-proxy --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/brightdata/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/proxy .agents/skills/brightdata-proxy && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "brightdata-proxy" agent skill from https://github.com/brightdata/skills/tree/main/skills/proxy into .agents/skills/brightdata-proxy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brightdata-proxy", 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 brightdata/skills --skill brightdata-proxy -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install brightdata/skills brightdata-proxy --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/brightdata/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/proxy .cursor/skills/brightdata-proxy && 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 "brightdata-proxy" agent skill from https://github.com/brightdata/skills/tree/main/skills/proxy into .cursor/skills/brightdata-proxy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brightdata-proxy", 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/brightdata/skills.git --path skills/proxy--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 brightdata/skills --skill brightdata-proxy -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install brightdata/skills brightdata-proxy --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/brightdata/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/proxy .gemini/skills/brightdata-proxy && 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 "brightdata-proxy" agent skill from https://github.com/brightdata/skills/tree/main/skills/proxy into .gemini/skills/brightdata-proxy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brightdata-proxy", 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 brightdata/skills brightdata-proxyInstalls 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 brightdata/skills --skill brightdata-proxy -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/brightdata/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/proxy .github/skills/brightdata-proxy && 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 "brightdata-proxy" agent skill from https://github.com/brightdata/skills/tree/main/skills/proxy into .github/skills/brightdata-proxy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brightdata-proxy", 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 brightdata/skills --skill brightdata-proxy -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install brightdata/skills brightdata-proxy --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/brightdata/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/proxy .opencode/skills/brightdata-proxy && 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 "brightdata-proxy" agent skill from https://github.com/brightdata/skills/tree/main/skills/proxy into .opencode/skills/brightdata-proxy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brightdata-proxy", 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.
brightdata-proxyGenerate working code that routes HTTP requests through Bright Data proxy networks (Datacenter, ISP, Residential, Mobile) and help users decide which network and IP pool type to use (shared pool…
Brightdata Proxy is an agent skill from brightdata/skills. Generate working code that routes HTTP requests through Bright Data proxy networks (Datacenter, ISP, Residential, Mobile) and help users decide which network and IP pool type to use (shared pool, shared IPs, or dedicated IPs). Use this skill whenever the user mentions Bright Data, brightdata.com, BD proxies, brd.superproxy.io, geo.brdtest.com, a brd-customer- proxy username, a Bright Data zone, the superproxy host, or wants to scrape or route requests through Bright Data — including questions about proxy URL…
Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts, reference files and assets (for example `references/code-templates.md`, `references/troubleshooting.md` and `scripts/smoke_test.sh`).
It sits in Testing & QA, covering Browser testing and Web scraping. It works with Bright Data, Playwright, Puppeteer and Selenium. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 81f51af. 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 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
curlFrom 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:
geo.brdtest.combrightdata.combrd.superproxy.ioAlso links to:
docs.brightdata.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ZONE_PASSWORDBD_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Brightdata Proxy loads about 5.1k tokens when it runs, and up to ~9.6k if it reads all its reference files. Until then it costs about 219 tokens; SKILL.md has 2,218 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 brightdata/skills at commit 81f51af, republished under its MIT licence (© brightdata). 2,218 words, ~5,072 tokens.
.claude/skills/brightdata-proxy/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Generate working code and configuration for Bright Data's four proxy networks. This skill covers usage and integration — it does not walk users through control-panel UI setup. If the user hasn't created a zone yet, tell them to sign up at https://brightdata.com and use the in-app proxy creation helper (the control panel guides them through zone type, pool type, and credentials interactively — that's the right surface for setup, not this skill).
These are the values to use in generated code. They are easy to hallucinate wrong, so anchor on them.
brd.superproxy.io33335 (current, paired with the new SSL CA — expires Sept 2034)22225 exists for the old CA (expires Sept 2026, deprecated). Use 33335 unless the user explicitly says otherwise.22228brd-customer-CUSTOMER_ID-zone-ZONE_NAME plus optional -key-value parameters appended (see Targeting below).https://geo.brdtest.com/mygeo.json — returns exit IP, country, city, and ASN as JSON.assets/brightdata_proxy_ca.crt (Bright Data Proxy Root CA, valid until Sept 2034). Generated code should reference this path, not tell the user to go download it. The public download is at https://brightdata.com/static/brightdata_proxy_ca.zip if they ever need to fetch it independently.The line https://brightdata.com/cp/zones/proxy_examples in the control panel shows live, account-specific code samples for every framework — point the user there for ground truth when uncertain.
assets/brightdata_proxy_ca.crt — the Bright Data Root CA. Use this in verify=, --cacert, ca:, or NODE_EXTRA_CA_CERTS instead of having the user download it.scripts/smoke_test.sh — cURL-based credential smoke test. Run ./smoke_test.sh CUSTOMER_ID ZONE_NAME ZONE_PASSWORD [COUNTRY] [SESSION_ID] (or set BD_CUSTOMER_ID/BD_ZONE/BD_PASSWORD env vars). Auto-locates the bundled CA, returns parsed JSON geo, distinct exit codes for auth vs HTTP vs network failure. Recommend this as the first thing the user runs after creating a zone.scripts/proxy_tester.html — single-file browser diagnostic. User configures their browser or OS proxy with the credentials, opens the file locally (or serves it from anywhere), and sees a live readout of their current exit IP/geo. Has a baseline-save feature so they can compare pre-proxy vs post-proxy exits visually. Credentials live in sessionStorage only — nothing is uploaded.If the user hasn't said which network they're on, ask once, then proceed. Quick rubric:
| Network | When to recommend |
|---|---|
| Datacenter | Cheapest, fastest. Use for unprotected targets (news sites, public APIs, light scraping, account management at low scale, geo-bypass on permissive sites). |
| ISP | Static IPs that look residential to the destination. Best for long-lived sessions, account management on protected platforms, anything where IP reputation matters but you want speed and stability. |
| Residential | Real-user IPs from a 100M+ pool. Default choice when datacenter and ISP get blocked. Best success rate on hard targets. Pay-per-GB; slower. Requires SSL cert or KYC (see Residential/Mobile network access below). |
| Mobile | 3G/4G/5G mobile carrier IPs. Most expensive. Use only when the target is extreme (Instagram, TikTok, some banking). Same network-access requirements as Residential. |
Default reach order when the user is unsure: Datacenter → Residential. ISP and Mobile are deliberate choices for specific needs.
Bright Data sells Datacenter and ISP traffic in three IP-allocation modes. The user picks this when they create the zone in the control panel.
| Pool type | What it is | When to recommend |
|---|---|---|
| Shared pool (also called "pay-per-GB" or "unlimited") | Pull random IPs from a huge shared pool. No fixed IPs allocated to you. Pay per GB of traffic. | Default for high-volume rotating scraping. You don't care which IP you get, you just want a fresh one frequently. |
| Shared IPs | A fixed set of N IPs leased to you, but shared with other Bright Data customers. Cheaper than dedicated. | Mid-budget. You want some IP stability but not exclusivity. Useful when the target accepts moderately-warm IPs. |
| Dedicated IPs | A fixed set of N IPs leased exclusively to you. No other customer uses them. Highest cost per IP. | Account management on platforms that fingerprint IPs heavily, anything needing a clean reputation you control, anything where another customer's bad behavior on a shared IP would burn you. |
For Residential and Mobile the equivalent of "dedicated" is dedicated gIPs (groups of IPs) selected via the -gip- parameter — not the same as DC/ISP dedicated. Don't confuse the two.
The username carries all per-request configuration. The general form:
brd-customer-CUSTOMER_ID-zone-ZONE_NAME[-param1-value1][-param2-value2]...Composed into a proxy URL it looks like:
http://brd-customer-CUSTOMER_ID-zone-ZONE_NAME[-PARAMS]:ZONE_PASSWORD@brd.superproxy.io:33335Notes:
http:// even for HTTPS targets — that's the proxy's own scheme, not the destination's.| Parameter | Applies to | What it does | Example suffix on username |
|---|---|---|---|
-country-XX | All networks | ISO country code (2-letter, lowercase). eu = random EU country. | -country-us |
-state-XX | Residential, Mobile only | US state, 2-letter, requires -country-us | -country-us-state-ny |
-city-NAME | Residential, Mobile only | City, no spaces (sanfrancisco), requires country | -country-us-city-sanfrancisco |
-zip-NNNNN | Residential, Mobile only | US zip, 5 digits | -country-us-zip-37501 |
-asn-NNNNN | Residential, Mobile only | Target a specific ASN | -asn-56386 |
-os-X | Residential only | windows, macos, android | -os-windows |
-carrier-X | Mobile only | Specific carrier (e.g. -carrier-dt) | -carrier-dt |
-session-STRING | All | Sticky session — same session ID returns the same exit IP for the session's lifetime. Use a random string per logical "user session" to implement rotation. | -session-abc12345 |
-ip-A.B.C.D | Zones with dedicated IPs only | Pin to a specific allocated IP | -ip-1.2.3.4 |
-gip-NAME | Dedicated Residential or Mobile only | Pin to a specific gIP group | -gip-us_7922_fl_hollywood_0 |
-dns-local / -dns-remote | All | remote = resolve DNS at the proxy peer (default for residential); local = resolve on super proxy | -dns-remote |
-const | Residential, Mobile | Bind to the same peer; if peer is unavailable, return 502 "no peer available" instead of switching | -const |
-direct | All | Force the request from the super proxy itself (skip peer routing). Rarely needed. | -direct |
-c_tag-VALUE | All | Custom tag echoed back in response headers, for correlating req/resp at scale | -c_tag-job42-row7 |
Critical constraint: Datacenter and ISP zones only support country targeting. State, city, zip, ASN, OS, and carrier targeting are Residential/Mobile-only. Don't generate code that puts -city- on a DC or ISP zone — it will silently fail or 400.
-session-. The super proxy hands you a new peer each request.session_id once and reuse it: -session-{session_id}. New value = new IP.-ip-A.B.C.D to pin every request to a specific allocated IP. No randomness.curl --proxy brd.superproxy.io:33335 \
--proxy-user 'brd-customer-CUSTOMER_ID-zone-ZONE_NAME:ZONE_PASSWORD' \
--cacert ./assets/brightdata_proxy_ca.crt \
'https://geo.brdtest.com/mygeo.json'(For Datacenter and ISP zones, the --cacert flag is optional. For Residential and Mobile it's required unless the user has system-installed the CA or completed KYC — see "Residential & Mobile network access" below.)
To bypass cert verification entirely (only OK if user has chosen the "ignore SSL errors" path):
curl -k --proxy brd.superproxy.io:33335 \
--proxy-user 'brd-customer-CUSTOMER_ID-zone-ZONE_NAME:ZONE_PASSWORD' \
'https://geo.brdtest.com/mygeo.json'requestsimport requests
CUSTOMER_ID = "your_customer_id"
ZONE_NAME = "your_zone_name"
ZONE_PASSWORD = "your_zone_password"
proxy_user = f"brd-customer-{CUSTOMER_ID}-zone-{ZONE_NAME}"
proxy_url = f"http://{proxy_user}:{ZONE_PASSWORD}@brd.superproxy.io:33335"
proxies = {"http": proxy_url, "https": proxy_url}
# Preferred: verify TLS using the bundled Bright Data CA
resp = requests.get(
"https://geo.brdtest.com/mygeo.json",
proxies=proxies,
verify="./assets/brightdata_proxy_ca.crt", # path to bundled cert
timeout=30,
)
print(resp.json())Country targeting:
proxy_user = f"brd-customer-{CUSTOMER_ID}-zone-{ZONE_NAME}-country-us"Sticky session (rotate per logical user, same IP within a session):
import secrets
session_id = secrets.token_hex(8)
proxy_user = f"brd-customer-{CUSTOMER_ID}-zone-{ZONE_NAME}-country-us-session-{session_id}"Rotation across many requests — give each request its own session ID:
import secrets, requests
def proxy_for_request():
sid = secrets.token_hex(8)
user = f"brd-customer-{CUSTOMER_ID}-zone-{ZONE_NAME}-session-{sid}"
url = f"http://{user}:{ZONE_PASSWORD}@brd.superproxy.io:33335"
return {"http": url, "https": url}
for target in targets:
requests.get(target, proxies=proxy_for_request(), verify=CA_PATH, timeout=30)import { fetch, ProxyAgent } from 'undici';
const CUSTOMER_ID = 'your_customer_id';
const ZONE_NAME = 'your_zone_name';
const ZONE_PASSWORD = 'your_zone_password';
const proxyUser = `brd-customer-${CUSTOMER_ID}-zone-${ZONE_NAME}`;
const proxyUrl = `http://${proxyUser}:${ZONE_PASSWORD}@brd.superproxy.io:33335`;
const agent = new ProxyAgent(proxyUrl);
const res = await fetch('https://geo.brdtest.com/mygeo.json', { dispatcher: agent });
console.log(await res.json());For CA verification on Node, set NODE_EXTRA_CA_CERTS=/path/to/brightdata_proxy_ca.crt in the environment, or pass a custom Agent with ca set. To bypass cert checks (last resort): NODE_TLS_REJECT_UNAUTHORIZED=0.
import axios from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';
const proxyUrl = `http://brd-customer-${CUSTOMER_ID}-zone-${ZONE_NAME}:${ZONE_PASSWORD}@brd.superproxy.io:33335`;
const agent = new HttpsProxyAgent(proxyUrl);
const res = await axios.get('https://geo.brdtest.com/mygeo.json', {
httpAgent: agent,
httpsAgent: agent,
proxy: false, // important: tell axios to use our agent, not its own proxy logic
});
console.log(res.data);For framework integrations (Playwright, Puppeteer, Selenium, Scrapy, httpx, aiohttp) and additional patterns, see references/code-templates.md.
Residential and Mobile have a network access policy that Datacenter and ISP don't. The user must pick one of these three before requests will succeed against arbitrary HTTPS targets:
assets/brightdata_proxy_ca.crt. Two ways to apply it:requests: verify="./assets/brightdata_proxy_ca.crt". For cURL: --cacert ./assets/brightdata_proxy_ca.crt. For Node: set NODE_EXTRA_CA_CERTS=./assets/brightdata_proxy_ca.crt env var or pass a custom Agent with ca. This is the cleanest path and what we recommend by default in generated code.update-ca-certificates / iOS / Android). Needed when using third-party tools that don't expose a CA-cert option. Copy the bundled assets/brightdata_proxy_ca.crt to the appropriate trust store, restart the app afterward. Public mirror at https://brightdata.com/static/brightdata_proxy_ca.zip if the user prefers to grab it independently.requests.get(..., verify=False). In Node: rejectUnauthorized: false or NODE_TLS_REJECT_UNAUTHORIZED=0. In cURL: -k. This works but loses end-to-end encryption guarantees against MITM — fine for throwaway testing, bad for anything handling credentials or PII.Generated code for Residential/Mobile should default to path 1a (load CA in code) with the cert path as a placeholder the user fills in. Mention path 2 and 3 as alternatives, briefly.
For Datacenter and ISP, none of this is required — they don't enforce the network access policy.
Before scraping a real target, confirm the proxy works. Two bundled tools cover this end-to-end:
1. Command-line smoke test — scripts/smoke_test.sh:
./scripts/smoke_test.sh CUSTOMER_ID ZONE_NAME ZONE_PASSWORD
# with optional country and sticky session:
./scripts/smoke_test.sh CUSTOMER_ID ZONE_NAME ZONE_PASSWORD us my-session-1
# or via env vars:
BD_CUSTOMER_ID=xxx BD_ZONE=yyy BD_PASSWORD=zzz ./scripts/smoke_test.shIt hits geo.brdtest.com/mygeo.json through the zone and returns the parsed JSON (IP, country, city, ASN). Exit codes distinguish auth failure (2) from HTTP error (3), so it's also fine to script around.
2. Browser diagnostic — scripts/proxy_tester.html:
Open the file in a browser. It continuously polls the geo endpoint and displays exit IP/country/city/ASN. Fill in your zone credentials and it generates the exact proxy config string to paste into your browser or OS proxy settings. The "Save as baseline" button captures your pre-proxy IP so you can visually confirm the proxy is active (the status flips to green and shows the before→after change). Useful when explaining to teammates that the proxy is working, or for debugging "is my browser actually going through the proxy" questions.
For ad-hoc one-liners, the raw cURL works too:
curl --proxy brd.superproxy.io:33335 \
--proxy-user 'brd-customer-CUSTOMER_ID-zone-ZONE_NAME:ZONE_PASSWORD' \
--cacert ./assets/brightdata_proxy_ca.crt \
'https://geo.brdtest.com/mygeo.json'Expected: JSON with ip, country, asn, geo. If you see this, auth and routing are working. Do not test against Google, Bing, or other search engines directly — Bright Data blocks direct search-engine access on the proxy networks. Use the SERP API for that.
Common errors and what they mean (high-signal subset):
brd-customer- prefix and -zone- segment. The customer ID is from the control panel, not your email.-const or -ip- to an IP that's offline. Drop -const or pick a different IP.verify=False for the moment.-city- or -state- on a DC/ISP zone. They only honor -country-.For any specific Bright Data error code not covered above, look it up in the full catalog: https://docs.brightdata.com/proxy-networks/errorCatalog. Inspect the response headers for the precise code — Bright Data is transitioning from the legacy x-brd-err-code header to the RFC 9209 standard Proxy-Status header, so generated debugging code should check both. Codes follow a category_number shape that tells you which layer failed at a glance: client_* (auth or request shape, e.g. client_10000), policy_* (Bright Data policy block, e.g. policy_20050), target_* (destination-side failure, e.g. target_40011), and the like.
Don't try to script the control-panel flow or call account-management APIs to create zones for them — those flows are interactive and account-specific. Instead, say:
Sign up at https://brightdata.com (new accounts get $2 trial credit for 7 days, plus a $5 bonus for 30 days after adding a payment method — note proxy products are billed separately and are not covered by the monthly free credits). Once you're in, click Proxies & Scraping → Add and the in-app helper will walk you through choosing the network, the pool type, and naming the zone. When it finishes, copy the customer ID, zone name, and zone password from the zone's overview page and paste them in here — I'll generate the code.
The control panel's proxy_examples page (https://brightdata.com/cp/zones/proxy_examples) also has live, account-specific snippets for many languages and frameworks — use it as a sanity check if anything in this skill seems out of date.
references/code-templates.md — full working code for Playwright, Puppeteer, Selenium (modern auth-extension approach + SeleniumWire fallback), Scrapy, httpx, aiohttp, and a few language variants. Read this when the user asks about a specific framework that isn't covered above.references/troubleshooting.md — extended error catalog and debugging recipes. Read when the user reports an error or unexpected behavior.assets/brightdata_proxy_ca.crt — Bright Data Proxy Root CA (port 33335, expires Sept 2034). Reference this path in any generated code that uses Residential or Mobile zones.scripts/smoke_test.sh — cURL credential smoke test (see Testing section).scripts/proxy_tester.html — single-file browser diagnostic (see Testing section).© brightdata, MIT. 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 4 other files (scripts, references, assets) in skills/proxy of brightdata/skills.
Open the folder on GitHubat commit 81f51af
Brightdata Proxy 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 |
|---|---|---|---|---|---|---|
| Brightdata Proxy this skillbrightdata/skills | 264 | — | ~5.1k | Automated safety check: Pass | MIT | |
| Open BrowserJasonHonKL/Openbrowser | 114 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Browser Automationynulihao/AgentSkillOS | 617 | — | ~2.2k | Automated safety check: Pass | None | |
| RStudio Selenium to Playwright Migrationrstudio/rstudio | 5.1k | — | ~3.6k | Automated safety check: Pass | Custom licence | |
| Python Executorcortega26/chile-hub | 113 | 2 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Playwright Stealth Verifyliarjsdev/liarjs-skills | 518 | 1 repos | ~1.3k | Automated safety check: Notes | MIT |
JasonHonKL/Openbrowser
A skill your agent uses whenever the task involves browsing web pages, extracting page content, clicking forms, or completing web workflows.
ynulihao/AgentSkillOS
Non-testing browser automation - web scraping, form filling, screenshot capture, PDF generation, workflow automation.
rstudio/rstudio
Converts RStudio Python Selenium electron tests into TypeScript Playwright tests, checking each against a live RStudio before counting it as migrated.
cortega26/chile-hub
Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh).
liarjsdev/liarjs-skills
Check whether a Playwright, Puppeteer, Selenium or CDP-driven browser presents a coherent fingerprint, using liarjs as a library against a Page you already have - navigator.webdriver, HeadlessChrome…
antibrow/anti-detect-browser-skills
Drive Chromium from standard Playwright APIs with a real-device fingerprint applied in the kernel, one persistent isolated profile per identity, and a per-profile proxy whose exit IP sets timezone…
brightdata/skills
Replicate the visual style of any website and apply it to your existing codebase.
brightdata/skills
Bright Data MCP handles ALL web data operations. An agent skill from brightdata/skills.
brightdata/skills
Produce a deep, multi-source, cited research brief on a topic from live web data using Bright Data's Discover API (intent-ranked web search + parsed page content).
brightdata/skills
Web data extraction and discovery using the Bright Data JavaScript/TypeScript SDK (@brightdata/sdk).
brightdata/skills
Extract structured data from 40+ supported platforms (Amazon, LinkedIn, Instagram, TikTok, Facebook, YouTube, Reddit, and more) via the Bright Data CLI (bdata pipelines).
brightdata/skills
Use Bright Data's Discover API — intent-ranked, AI-relevance-scored web search at scale (not keyword SERP).
Categories
Generate working code that routes HTTP requests through Bright Data proxy networks (Datacenter, ISP, Residential, Mobile) and help users decide which network and IP pool type to use (shared pool…. Brightdata Proxy is an agent skill from brightdata/skills. Generate working code that routes HTTP requests through Bright Data proxy networks (Datacenter, ISP, Residential, Mobile) and help users decide which network and IP pool type to use (shared pool, shared IPs, or dedicated IPs).
Brightdata Proxy fits situations like: the user mentions Bright Data; brd.superproxy.io; geo.brdtest.com; A brd-customer- proxy username.
Run `npx skills add brightdata/skills --skill brightdata-proxy -a claude-code`. Or copy the skill folder (skills/proxy in brightdata/skills) into .claude/skills/brightdata-proxy in your project. Claude Code loads it when a task matches its description.
Run `npx skills add brightdata/skills --skill brightdata-proxy -a codex`. Or copy the skill folder (skills/proxy in brightdata/skills) into .agents/skills/brightdata-proxy 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 brightdata/skills --skill brightdata-proxy -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/brightdata-proxy, .gemini/skills/brightdata-proxy, .github/skills/brightdata-proxy and .opencode/skills/brightdata-proxy in your project.
Going by SKILL.md and its folder, Brightdata Proxy needs a shell for the scripts in its folder, the command-line tools its instructions call (curl) and credentials named ZONE_PASSWORD and BD_PASSWORD. Our summary lists: Python 3; Node.js; A Bash shell.
SKILL.md names 4 domains. In commands or code: geo.brdtest.com, brightdata.com and brd.superproxy.io; the agent is likely to contact these when it follows the instructions. As links in the text: docs.brightdata.com. 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.
Brightdata Proxy is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Brightdata Proxy: Open Browser (JasonHonKL/Openbrowser, 114 stars), Browser Automation (ynulihao/AgentSkillOS, 617 stars), RStudio Selenium to Playwright Migration (rstudio/rstudio, 5.1k stars) and Python Executor (cortega26/chile-hub, 113 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
brightdata (a GitHub organization) maintains it in brightdata/skills, which has 264 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.
Source: brightdata/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.