[{"data":1,"prerenderedAt":469},["ShallowReactive",2],{"navigation_docs":3,"-guide-cli":88,"-guide-cli-surround":464},[4,48],{"title":5,"path":6,"stem":7,"children":8,"icon":47},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39,43],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Scrape","\u002Fguide\u002Fscrape","1.guide\u002F02.scrape",{"title":16,"path":17,"stem":18},"Screenshots and PDFs","\u002Fguide\u002Fcaptures","1.guide\u002F03.captures",{"title":20,"path":21,"stem":22},"Links and accessibility and extract","\u002Fguide\u002Freading","1.guide\u002F04.reading",{"title":24,"path":25,"stem":26},"Crawl and search","\u002Fguide\u002Fcrawl","1.guide\u002F05.crawl",{"title":28,"path":29,"stem":30},"Sessions","\u002Fguide\u002Fsessions","1.guide\u002F06.sessions",{"title":32,"path":33,"stem":34},"CLI","\u002Fguide\u002Fcli","1.guide\u002F07.cli",{"title":36,"path":37,"stem":38},"MCP and Pi and OMP","\u002Fguide\u002Fagents","1.guide\u002F08.agents",{"title":40,"path":41,"stem":42},"Errors","\u002Fguide\u002Ferrors","1.guide\u002F09.errors",{"title":44,"path":45,"stem":46},"Custom providers","\u002Fguide\u002Fcustom","1.guide\u002F10.custom","i-lucide-book-open",{"title":49,"path":50,"stem":51,"children":52,"icon":87},"Providers","\u002Fproviders","2.providers\u002F00.index",[53,55,59,63,67,71,75,79,83],{"title":54,"path":50,"stem":51},"Every provider",{"title":56,"path":57,"stem":58},"Steel","\u002Fproviders\u002Fsteel","2.providers\u002F01.steel",{"title":60,"path":61,"stem":62},"Browserbase","\u002Fproviders\u002Fbrowserbase","2.providers\u002F02.browserbase",{"title":64,"path":65,"stem":66},"Kernel","\u002Fproviders\u002Fkernel","2.providers\u002F03.kernel",{"title":68,"path":69,"stem":70},"Browserless","\u002Fproviders\u002Fbrowserless","2.providers\u002F04.browserless",{"title":72,"path":73,"stem":74},"Hyperbrowser","\u002Fproviders\u002Fhyperbrowser","2.providers\u002F05.hyperbrowser",{"title":76,"path":77,"stem":78},"Anchor","\u002Fproviders\u002Fanchor","2.providers\u002F06.anchor",{"title":80,"path":81,"stem":82},"Cloudflare","\u002Fproviders\u002Fcloudflare","2.providers\u002F07.cloudflare",{"title":84,"path":85,"stem":86},"Playwright","\u002Fproviders\u002Fplaywright","2.providers\u002F08.playwright","i-lucide-server",{"id":89,"title":32,"body":90,"description":456,"extension":457,"links":458,"meta":459,"navigation":461,"path":33,"seo":462,"stem":34,"__hash__":463},"docs\u002F1.guide\u002F07.cli.md",{"type":91,"value":92,"toc":450},"minimark",[93,114,148,153,293,311,315,358,370,378,385,389,396,427,446],[94,95,96,97,101,102,105,106,109,110,113],"p",{},"One install gives you the ",[98,99,100],"code",{},"browsers"," command. After ",[98,103,104],{},"pnpm add"," it's ",[98,107,108],{},"pnpm exec browsers",", or install it once with ",[98,111,112],{},"pnpm add -g @agntn\u002Fbrowsers",". Or skip installing entirely:",[115,116,121],"pre",{"className":117,"code":118,"language":119,"meta":120,"style":120},"language-bash shiki shiki-themes browsers browsers browsers","npx @agntn\u002Fbrowsers scrape https:\u002F\u002Fexample.com -p playwright\n","bash","",[98,122,123],{"__ignoreMap":120},[124,125,128,132,136,139,142,145],"span",{"class":126,"line":127},"line",1,[124,129,131],{"class":130},"sK71F","npx",[124,133,135],{"class":134},"shU9J"," @agntn\u002Fbrowsers",[124,137,138],{"class":134}," scrape",[124,140,141],{"class":134}," https:\u002F\u002Fexample.com",[124,143,144],{"class":134}," -p",[124,146,147],{"class":134}," playwright\n",[149,150,152],"h2",{"id":151},"commands","Commands",[154,155,156,169],"table",{},[157,158,159],"thead",{},[160,161,162,166],"tr",{},[163,164,165],"th",{},"Command",[163,167,168],{},"What it does",[170,171,172,183,193,203,213,223,233,243,253,273,283],"tbody",{},[160,173,174,180],{},[175,176,177],"td",{},[98,178,179],{},"scrape",[175,181,182],{},"Rendered page, markdown if the vendor has it",[160,184,185,190],{},[175,186,187],{},[98,188,189],{},"screenshot",[175,191,192],{},"Image to a file, the page or one element",[160,194,195,200],{},[175,196,197],{},[98,198,199],{},"pdf",[175,201,202],{},"The page printed to a PDF file",[160,204,205,210],{},[175,206,207],{},[98,208,209],{},"crawl",[175,211,212],{},"Follow links, or wait for a crawl job again",[160,214,215,220],{},[175,216,217],{},[98,218,219],{},"links",[175,221,222],{},"Unique hrefs, one per line",[160,224,225,230],{},[175,226,227],{},[98,228,229],{},"accessibility",[175,231,232],{},"Roles, names and states, one per line",[160,234,235,240],{},[175,236,237],{},[98,238,239],{},"extract",[175,241,242],{},"Structured data from a prompt",[160,244,245,250],{},[175,246,247],{},[98,248,249],{},"search",[175,251,252],{},"Web search through Hyperbrowser",[160,254,255,260],{},[175,256,257],{},[98,258,259],{},"session",[175,261,262,265,266,269,270],{},[98,263,264],{},"create",", ",[98,267,268],{},"list"," and ",[98,271,272],{},"release",[160,274,275,280],{},[175,276,277],{},[98,278,279],{},"providers",[175,281,282],{},"Who is configured and what they can do",[160,284,285,290],{},[175,286,287],{},[98,288,289],{},"mcp",[175,291,292],{},"MCP server on stdio",[94,294,295,298,299,302,303,306,307,310],{},[98,296,297],{},"browsers \u003Ccommand> --help"," has every flag. The ones you'll type most: ",[98,300,301],{},"-p"," for the provider, ",[98,304,305],{},"-o"," for the output file, ",[98,308,309],{},"-f"," for the format.",[149,312,314],{"id":313},"who-answers","Who answers",[94,316,317,318,320,321,323,324,265,326,265,328,265,330,265,332,334,335,338,339,341,342,269,344,346,347,350,351,353,354,357],{},"Skip ",[98,319,301],{}," and the first configured provider in registry order gets the call. Steel if its key is set. Playwright if nothing else is. Commands for an optional operation look further: ",[98,322,219],{}," on a Steel setup skips Steel, which has no links route, and so do ",[98,325,199],{},[98,327,209],{},[98,329,239],{},[98,331,249],{},[98,333,229],{}," and a screenshot with ",[98,336,337],{},"--selector",". ",[98,340,179],{},", a plain ",[98,343,189],{},[98,345,259],{}," don't. With only ",[98,348,349],{},"ANCHOR_API_KEY"," set, ",[98,352,179],{}," goes to Anchor and fails there, so pass ",[98,355,356],{},"-p playwright"," when that's what you mean.",[115,359,361],{"className":117,"code":360,"language":119,"meta":120,"style":120},"browsers providers\n",[98,362,363],{"__ignoreMap":120},[124,364,365,367],{"class":126,"line":127},[124,366,100],{"class":130},[124,368,369],{"class":134}," providers\n",[115,371,376],{"className":372,"code":374,"language":375,"meta":120},[373],"language-text","● steel           scrape screenshot(sess) sessions cdp\n● browserbase     scrape sessions cdp\n● kernel          scrape(sess) screenshot(sess) navigate evaluate sessions cdp\n● browserless     scrape screenshot element navigate evaluate sessions cdp pdf\n● hyperbrowser    scrape screenshot sessions cdp crawl search extract\n● anchor          screenshot(sess) sessions cdp\n● cloudflare      scrape screenshot element sessions cdp crawl pdf links extract accessibility\n● playwright      scrape screenshot(sess) element navigate evaluate sessions crawl pdf links\n","text",[98,377,374],{"__ignoreMap":120},[94,379,380,381,384],{},"A filled dot means that provider's key was in the environment on this run. Playwright is always filled. ",[98,382,383],{},"(sess)"," means the operation needs a session, which the command opens and closes for you.",[149,386,388],{"id":387},"pipes","Pipes",[94,390,391,392,395],{},"Status lines like ",[98,393,394],{},"ℹ Scraping via playwright..."," go to stderr. Stdout gets the page and nothing else, so this does what it looks like:",[115,397,399],{"className":117,"code":398,"language":119,"meta":120,"style":120},"browsers scrape https:\u002F\u002Fexample.com -p playwright -f html > page.html\n",[98,400,401],{"__ignoreMap":120},[124,402,403,405,407,409,411,414,417,420,424],{"class":126,"line":127},[124,404,100],{"class":130},[124,406,138],{"class":134},[124,408,141],{"class":134},[124,410,144],{"class":134},[124,412,413],{"class":134}," playwright",[124,415,416],{"class":134}," -f",[124,418,419],{"class":134}," html",[124,421,423],{"class":422},"skH_V"," >",[124,425,426],{"class":134}," page.html\n",[94,428,429,430,433,434,437,438,441,442,445],{},"A failure prints one ",[98,431,432],{},"ERROR"," line and exits with 1. Keys in a URL never make it into that line: query params such as ",[98,435,436],{},"token"," or ",[98,439,440],{},"api_key"," show up as ",[98,443,444],{},"[REDACTED]",".",[447,448,449],"style",{},"html pre.shiki code .sK71F, html code.shiki .sK71F{--shiki-light:var(--shiki-token-function);--shiki-default:var(--shiki-token-function);--shiki-dark:var(--shiki-token-function)}html pre.shiki code .shU9J, html code.shiki .shU9J{--shiki-light:var(--shiki-token-string);--shiki-default:var(--shiki-token-string);--shiki-dark:var(--shiki-token-string)}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .skH_V, html code.shiki .skH_V{--shiki-light:var(--shiki-token-keyword);--shiki-default:var(--shiki-token-keyword);--shiki-dark:var(--shiki-token-keyword)}",{"title":120,"searchDepth":451,"depth":451,"links":452},2,[453,454,455],{"id":151,"depth":451,"text":152},{"id":313,"depth":451,"text":314},{"id":387,"depth":451,"text":388},"Every command of the browsers CLI. Status lines on stderr and the page on stdout so a pipe gets only the page","md",null,{"icon":460},"i-lucide-terminal",true,{"title":32,"description":456},"n6MPHVxbCbPTUZTRiqKOa-gIp5SlaZF3r-DokwzVtho",[465,467],{"title":28,"path":29,"stem":30,"description":466,"children":-1},"Open a live browser and release it. The session ID an agent gets and the CDP URL only your code gets",{"title":36,"path":37,"stem":38,"description":468,"children":-1},"Hand the browsers to a model. One MCP server and two extensions that call the same executors and answer with the same text",1790685117988]