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.

NORMAL SCRAPER CAPTCHA / 403 request stops, pipeline dead BRIGHT DATA CLI unlocked, JS rendered page comes back clean, agent keeps going
Same request. One gets a wall, one gets the page.

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 --version

04. 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 --pretty

If 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_mpohus372o5tmid1jk

The 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 close

08. 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.