Most scraping setups break the same way. You write selectors, the site changes its markup and they snap. Or you never get that far, because the site sees a bot in the request headers and serves a CAPTCHA before your agent reads a single row of data. Bright Data CLI removes both problems from the terminal, one tool for the request, the parsing, and the browser.
If a website can still say "blocked" to your agent, you are one CLI command behind.
01. Why your agent keeps getting blocked
CAPTCHA is not random, it is built for you
Sites fingerprint the request before they fingerprint you: no real browser, no real IP, a request pattern that looks automated. X, LinkedIn, and Amazon are especially aggressive about it because scraping is exactly what they are trying to stop. Your agent has no hands to solve a CAPTCHA, so the scrape just dies there, and everything you built on top of that data dies with it.
02. What Bright Data CLI actually does
One terminal tool, the whole API surface
GitHub: github.com/brightdata/cli
Bright Data CLI is a single terminal tool that gives you scraping, search, structured extraction, and real browser control, all from one command, instead of stitching together proxies, headers, and CAPTCHA workarounds yourself. It handles the anti-bot side of the request so what comes back is the actual page.
- Plain-English scraper generation: describe what you want, it writes the scraper.
- 40+ ready-made site templates: LinkedIn, Amazon, X, TikTok, Instagram, and more, already built.
- Real browser control: click, type, screenshot, straight from the terminal.
- Drops into Claude Code: add it as an MCP server, your agent calls it directly.
03. Install it
macOS, Linux, or Windows
One command, or skip installing anything and run it through npx.
# macOS / Linux
curl -fsSL https://cli.brightdata.com/install.sh | sh
# Windows, or any platform via npm
npm install -g @brightdata/cli
# or skip installing, run it on demand
npx -p @brightdata/cli bdata --version04. Log in
Three ways in, pick whichever is fastest
bdata login
# no browser handy
bdata login --github
# straight to the point
bdata login --api-key <your-api-key>Get the key from brightdata.com/cp/setting/users. First login also creates the zones the CLI needs, automatically.
05. Describe it, it builds the scraper
This is the plain-English part
One URL, one sentence describing the data. Bright Data's AI agent reads the page, writes the scraper, and hands you back a collector ID you can reuse.
bdata scraper create https://news.ycombinator.com \
"Extract top stories: title, url, points, author, comment count"
# run it whenever you want fresh data
bdata scraper run c_mpohus372o5tmid1jk https://news.ycombinator.com --prettyIf the site changes its markup and the scraper breaks, you do not rewrite it by hand.
bdata scraper heal c_mpohus372o5tmid1jk "price field returns null now"
bdata scraper approve c_mpohus372o5tmid1jkThe heal step stops and shows you the fix before it commits anything, so it does not go rogue on your data.
06. Ready-made: X, LinkedIn, Amazon, TikTok, Instagram
40+ platforms, already templated
You do not have to describe these, someone already built them.
bdata pipelines list
bdata pipelines linkedin_person_profile "<profile-url>"
bdata pipelines linkedin_job_listings "<jobs-search-url>"
bdata pipelines amazon_product "<product-url>" --format csv > product.csv
bdata pipelines tiktok_profiles "<profile-url>"
bdata pipelines instagram_posts "<profile-url>"
bdata pipelines x_posts "<profile-url>"Same list also covers Facebook, YouTube, Reddit, Google Maps reviews, Zillow, and the major app stores. Run bdata pipelines list to see the full set.
07. Control a real browser
For when a page needs clicking, not just fetching
Some data is behind a login or a button, not a plain URL. For that, Bright Data CLI drives an actual browser session, and you script it from the terminal.
bdata browser open https://example.com --country us
bdata browser snapshot --compact
bdata browser click e3
bdata browser type e5 "search query" --submit
bdata browser screenshot result.png
bdata browser close08. The free tier, in credits
5,000 credits a month, no card required
Every new account gets 5,000 free credits a month, roughly $7.50 worth, renewing on the 1st. They do not roll over, so there is no stockpiling, just use what you need. scrape, search, pipelines, and scraper create/run/heal all draw from this pool at one credit per request or page load. Browser sessions run on a separate one-time trial, not the monthly pool.
This is not a scrape-anything-for-free pass. Respect the target site's terms of service and rate limits, the CLI removes the technical wall, not the legal one.
09. Join the community
Get help setting it up, or just hang out
This is exactly the kind of setup I build content and automations around. If your first scraper or a template throws an error, the fastest way to reach me is Discord, drop the exact error and I will help you sort it out. Everything else is where I post daily.
// Free newsletter
I send out guides like this every week
Real setups, real sources, no hype. Drop your email and I'll send you the next one.