[{"data":1,"prerenderedAt":388},["ShallowReactive",2],{"navigation_docs":3,"-guide-agents":88,"-guide-agents-surround":383},[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":36,"body":90,"description":375,"extension":376,"links":377,"meta":378,"navigation":380,"path":37,"seo":381,"stem":38,"__hash__":382},"docs\u002F1.guide\u002F08.agents.md",{"type":91,"value":92,"toc":367},"minimark",[93,98,121,189,193,197,223,226,230,233,248,252,269,273,321,325,348,363],[94,95,97],"h2",{"id":96},"mcp","MCP",[99,100,105],"pre",{"className":101,"code":102,"language":103,"meta":104,"style":104},"language-bash shiki shiki-themes browsers browsers browsers","browsers mcp\n","bash","",[106,107,108],"code",{"__ignoreMap":104},[109,110,113,117],"span",{"class":111,"line":112},"line",1,[109,114,116],{"class":115},"sK71F","browsers",[109,118,120],{"class":119},"shU9J"," mcp\n",[99,122,127],{"className":123,"code":124,"filename":125,"language":126,"meta":104,"style":104},"language-json shiki shiki-themes browsers browsers browsers","{\n  \"mcpServers\": {\n    \"browsers\": { \"command\": \"browsers\", \"args\": [\"mcp\"] }\n  }\n}\n","mcp.json","json",[106,128,129,135,144,177,183],{"__ignoreMap":104},[109,130,131],{"class":111,"line":112},[109,132,134],{"class":133},"s38Sx","{\n",[109,136,138,141],{"class":111,"line":137},2,[109,139,140],{"class":115},"  \"mcpServers\"",[109,142,143],{"class":133},": {\n",[109,145,147,150,153,156,159,162,165,168,171,174],{"class":111,"line":146},3,[109,148,149],{"class":115},"    \"browsers\"",[109,151,152],{"class":133},": { ",[109,154,155],{"class":115},"\"command\"",[109,157,158],{"class":133},": ",[109,160,161],{"class":119},"\"browsers\"",[109,163,164],{"class":133},", ",[109,166,167],{"class":115},"\"args\"",[109,169,170],{"class":133},": [",[109,172,173],{"class":119},"\"mcp\"",[109,175,176],{"class":133},"] }\n",[109,178,180],{"class":111,"line":179},4,[109,181,182],{"class":133},"  }\n",[109,184,186],{"class":111,"line":185},5,[109,187,188],{"class":133},"}\n",[190,191,192],"p",{},"A stdio server. It reads the same environment as the CLI, so whichever keys you export are the providers a model gets. No key at all still leaves Playwright.",[94,194,196],{"id":195},"pi-and-omp","Pi and OMP",[99,198,200],{"className":101,"code":199,"language":103,"meta":104,"style":104},"pi install git:github.com\u002Fagntn\u002Fbrowsers\nomp install @agntn\u002Fbrowsers\n",[106,201,202,213],{"__ignoreMap":104},[109,203,204,207,210],{"class":111,"line":112},[109,205,206],{"class":115},"pi",[109,208,209],{"class":119}," install",[109,211,212],{"class":119}," git:github.com\u002Fagntn\u002Fbrowsers\n",[109,214,215,218,220],{"class":111,"line":137},[109,216,217],{"class":115},"omp",[109,219,209],{"class":119},[109,221,222],{"class":119}," @agntn\u002Fbrowsers\n",[190,224,225],{},"Both extensions register the same tools as the MCP server, with the same names, schemas and descriptions, and a terminal view of each call.",[94,227,229],{"id":228},"the-tools","The tools",[231,232],"agent-tools",{},[190,234,235,236,239,240,243,244,247],{},"Hover a row for the whole description. It's the exact text a model gets in ",[106,237,238],{},"tools\u002Flist",", and it's written to steer: which providers can do what, when to pass ",[106,241,242],{},"path",", what to do with a ",[106,245,246],{},"jobId",".",[94,249,251],{"id":250},"same-executors-same-text","Same executors, same text",[190,253,254,255,258,259,264,265,268],{},"MCP, Pi and OMP don't have three implementations. They all call ",[106,256,257],{},"src\u002Ftool-operations.ts",", so a fix lands once and a model reads the same answer on every host. The panel on the ",[260,261,263],"a",{"href":262},"\u002F","home page"," runs ",[106,266,267],{},"browsers_capabilities"," from that file at build time, which is as close to \"what a model sees\" as a web page gets.",[94,270,272],{"id":271},"bounds-a-model-can-live-with","Bounds a model can live with",[274,275,276,287,293,306,312],"ul",{},[277,278,279,282,283,286],"li",{},[106,280,281],{},"browsers_scrape"," stops at 20 000 characters unless you pass ",[106,284,285],{},"maxChars",", 200 000 at most, and says how much it cut.",[277,288,289,292],{},[106,290,291],{},"browsers_crawl"," shares that budget across every page it read.",[277,294,295,298,299,302,303,247],{},[106,296,297],{},"browsers_links"," returns 500 per call unless you pass ",[106,300,301],{},"limit",", 5 000 at most, and names the next ",[106,304,305],{},"offset",[277,307,308,311],{},[106,309,310],{},"browsers_accessibility"," stops at the same 20 000 by default.",[277,313,314,317,318,320],{},[106,315,316],{},"browsers_screenshot"," returns the image, or writes it to ",[106,319,242],{}," when it's too big to return.",[94,322,324],{"id":323},"what-a-model-cant-do","What a model can't do",[190,326,327,328,331,332,335,336,339,340,343,344,347],{},"Click. Log in. Type into a form. The tools never grew ",[106,329,330],{},"navigate"," or ",[106,333,334],{},"evaluate",", and a session ID from ",[106,337,338],{},"browsers_session"," only goes to ",[106,341,342],{},"browsers_release",". A model can read the web through this package. Driving it is your code's job, with the CDP URL a ",[260,345,346],{"href":29},"session"," gives you.",[190,349,350,351,357,358,247],{},"Need a plain fetch that isn't a browser? ",[260,352,356],{"href":353,"rel":354},"https:\u002F\u002Fweb.agntn.dev",[355],"nofollow","@agntn\u002Fweb",". Need last year's version of the page? ",[260,359,362],{"href":360,"rel":361},"https:\u002F\u002Farchives.agntn.dev",[355],"@agntn\u002Farchives",[364,365,366],"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 .s38Sx, html code.shiki .s38Sx{--shiki-light:var(--ui-text-highlighted);--shiki-default:var(--ui-text-highlighted);--shiki-dark:var(--ui-text-highlighted)}",{"title":104,"searchDepth":137,"depth":137,"links":368},[369,370,371,372,373,374],{"id":96,"depth":137,"text":97},{"id":195,"depth":137,"text":196},{"id":228,"depth":137,"text":229},{"id":250,"depth":137,"text":251},{"id":271,"depth":137,"text":272},{"id":323,"depth":137,"text":324},"Hand the browsers to a model. One MCP server and two extensions that call the same executors and answer with the same text","md",null,{"icon":379},"i-lucide-bot",true,{"title":36,"description":375},"fJXpqJeQE06zFwCZK4CyARQD-5cgFJPI233h4MDaCvY",[384,386],{"title":32,"path":33,"stem":34,"description":385,"children":-1},"Every command of the browsers CLI. Status lines on stderr and the page on stdout so a pipe gets only the page",{"title":40,"path":41,"stem":42,"description":387,"children":-1},"Most failures are a typed BrowserError. Which class means fix the call and which means wait and which means try another provider",1790685115877]