[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-browserbase-webmcp-gen":3,"mdc--dxd59y-key":37,"related-org-browserbase-webmcp-gen":1354,"related-repo-browserbase-webmcp-gen":1532},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"webmcp-gen","create and validate WebMCP init scripts","Create, compile, and validate site-specific WebMCP init scripts from a target URL and desired tool capability. Use when the user wants to author WebMCP tools for a website, produce a webmcp.init.js artifact, or test WebMCP registration and invocation through Stagehand.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"browserbase","Browserbase","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fbrowserbase.png",[12,16,19,22,23],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":17,"slug":18,"type":15},"CLI","cli",{"name":20,"slug":21,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},{"name":24,"slug":25,"type":15},"Web Development","web-development",3649,"https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fskills","2026-06-19T09:41:31.958557","MIT",232,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Browserbase's official collection of agent skills to access the web.","https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fwebmcp-gen","---\nname: webmcp-gen\ndescription: Create, compile, and validate site-specific WebMCP init scripts from a target URL and desired tool capability. Use when the user wants to author WebMCP tools for a website, produce a webmcp.init.js artifact, or test WebMCP registration and invocation through Stagehand.\ncompatibility: \"Requires Node 18+ and Chrome\u002FChromium with WebMCP testing flags. Run `pnpm install` in the skill directory to install the Stagehand dependency. Page exploration uses the browse CLI (`npm install -g browse`).\"\nlicense: MIT\nallowed-tools: Bash Read Grep Edit Write\n---\n\n# WebMCP Gen\n\nAuthor website-specific WebMCP tools by writing a manifest, compiling it to an init script, and validating that Chrome registers and invokes the tools.\n\nThis skill does not call a nested agent. You are responsible for exploring the page, writing `manifest.json`, and iterating based on validation output.\n\n## Setup check\n\nFrom the skill directory, install dependencies if they are not already installed:\n\n```bash\ncd skills\u002Fwebmcp-gen\npnpm install\n```\n\nThis installs the pinned Stagehand package plus the TypeScript toolchain (`tsx`,\n`typescript`, `@types\u002Fnode`) used to run the generated `stagehand-example.ts`.\n\n## Workflow\n\n1. Pick an artifact slug with exactly one slash:\n\n```text\n\u003Cdomain>\u002F\u003Ctask>\n```\n\nExample:\n\n```text\nexample.com\u002Fpage-context\n```\n\n2. Scaffold the artifact:\n\n```bash\nnode scripts\u002Fscaffold.mjs example.com\u002Fpage-context --url https:\u002F\u002Fexample.com\n```\n\n3. Explore the target page with the `browse` CLI:\n\n```bash\nbrowse open https:\u002F\u002Fexample.com --local\nbrowse snapshot\nbrowse get title\nbrowse get url\nbrowse get text body\nbrowse get html body\n```\n\nPrefer `browse snapshot`, page text, and DOM inspection over screenshots unless visual layout matters. Use `browse stop` when exploration is complete.\n\n4. Edit `artifacts\u002F\u003Cdomain>\u002F\u003Ctask>\u002Fmanifest.json`. The manifest is the source of truth.\n\n5. Compile:\n\n```bash\nnode scripts\u002Fcompile.mjs artifacts\u002Fexample.com\u002Fpage-context\n```\n\n6. Generate a runnable Stagehand example (`stagehand-example.ts`) and run it with `tsx`:\n\n```bash\nnode scripts\u002Fgenerate-stagehand-example.mjs artifacts\u002Fexample.com\u002Fpage-context\nnpx tsx artifacts\u002Fexample.com\u002Fpage-context\u002Fstagehand-example.ts\n```\n\n7. Validate:\n\n```bash\nnode scripts\u002Fvalidate.mjs artifacts\u002Fexample.com\u002Fpage-context\n```\n\n8. If validation fails, inspect `eval.json` and `eval-report.md`, patch `manifest.json`, then compile and validate again.\n\n## Manifest contract\n\n```json\n{\n  \"domain\": \"example.com\",\n  \"task\": \"page-context\",\n  \"url\": \"https:\u002F\u002Fexample.com\",\n  \"generatedAt\": \"2026-06-04T00:00:00.000Z\",\n  \"tools\": [\n    {\n      \"name\": \"example_com_page_context\",\n      \"description\": \"Returns page context.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": []\n      },\n      \"implementation\": {\n        \"kind\": \"dom\",\n        \"source\": \"return { success: true, title: document.title, url: location.href };\"\n      },\n      \"fixtureInput\": {}\n    }\n  ]\n}\n```\n\n## Authoring rules\n\n- `implementation.source` is inserted inside `async (input) => { ... }`; write JavaScript statements, not a full function wrapper.\n- Return a JSON-serializable object.\n- WebMCP code runs inside the browser page. Use browser-native APIs: `document`, `location`, `navigator`, and same-origin `fetch`.\n- Do not use Playwright, Puppeteer, Stagehand, XPath helpers, or agent\u002Fbrowser commands inside `implementation.source`.\n- `document.querySelector` and `querySelectorAll` must receive valid browser CSS selectors only.\n- To find visible text, use `Array.from(document.querySelectorAll(...)).find((el) => (el.textContent || \"\").includes(\"...\"))`.\n- Do not include API keys, bearer tokens, cookies, localStorage secrets, or user credentials.\n- Do not use `eval` or `new Function`.\n- Avoid destructive actions unless the user explicitly asked for them.\n- Make implementations defensive: check for missing elements and return structured `{ success: false, error: \"...\" }` responses.\n- Generated init scripts register WebMCP tools only in the top frame.\n\n## Output layout\n\n```text\nartifacts\u002F\u003Cdomain>\u002F\u003Ctask>\u002F\n  manifest.json\n  webmcp.init.js\n  stagehand-example.ts\n  eval.json\n  eval-report.md\n```\n\nTo turn the example into a standalone project, scaffold a Stagehand app with\n`npx create-browser-app` and drop the generated `webmcp.init.js` into it (load it\nwith `page.addInitScript({ path: \"webmcp.init.js\" })`).\n",{"data":38,"body":41},{"name":4,"description":6,"compatibility":39,"license":29,"allowed-tools":40},"Requires Node 18+ and Chrome\u002FChromium with WebMCP testing flags. Run `pnpm install` in the skill directory to install the Stagehand dependency. Page exploration uses the browse CLI (`npm install -g browse`).","Bash Read Grep Edit Write",{"type":42,"children":43},"root",[44,52,58,72,79,84,128,165,171,181,191,196,205,213,248,265,383,404,425,449,471,512,521,544,576,582,1147,1153,1304,1310,1319,1348],{"type":45,"tag":46,"props":47,"children":48},"element","h1",{"id":4},[49],{"type":50,"value":51},"text","WebMCP Gen",{"type":45,"tag":53,"props":54,"children":55},"p",{},[56],{"type":50,"value":57},"Author website-specific WebMCP tools by writing a manifest, compiling it to an init script, and validating that Chrome registers and invokes the tools.",{"type":45,"tag":53,"props":59,"children":60},{},[61,63,70],{"type":50,"value":62},"This skill does not call a nested agent. You are responsible for exploring the page, writing ",{"type":45,"tag":64,"props":65,"children":67},"code",{"className":66},[],[68],{"type":50,"value":69},"manifest.json",{"type":50,"value":71},", and iterating based on validation output.",{"type":45,"tag":73,"props":74,"children":76},"h2",{"id":75},"setup-check",[77],{"type":50,"value":78},"Setup check",{"type":45,"tag":53,"props":80,"children":81},{},[82],{"type":50,"value":83},"From the skill directory, install dependencies if they are not already installed:",{"type":45,"tag":85,"props":86,"children":91},"pre",{"className":87,"code":88,"language":89,"meta":90,"style":90},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","cd skills\u002Fwebmcp-gen\npnpm install\n","bash","",[92],{"type":45,"tag":64,"props":93,"children":94},{"__ignoreMap":90},[95,113],{"type":45,"tag":96,"props":97,"children":100},"span",{"class":98,"line":99},"line",1,[101,107],{"type":45,"tag":96,"props":102,"children":104},{"style":103},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[105],{"type":50,"value":106},"cd",{"type":45,"tag":96,"props":108,"children":110},{"style":109},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[111],{"type":50,"value":112}," skills\u002Fwebmcp-gen\n",{"type":45,"tag":96,"props":114,"children":116},{"class":98,"line":115},2,[117,123],{"type":45,"tag":96,"props":118,"children":120},{"style":119},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[121],{"type":50,"value":122},"pnpm",{"type":45,"tag":96,"props":124,"children":125},{"style":109},[126],{"type":50,"value":127}," install\n",{"type":45,"tag":53,"props":129,"children":130},{},[131,133,139,141,147,149,155,157,163],{"type":50,"value":132},"This installs the pinned Stagehand package plus the TypeScript toolchain (",{"type":45,"tag":64,"props":134,"children":136},{"className":135},[],[137],{"type":50,"value":138},"tsx",{"type":50,"value":140},",\n",{"type":45,"tag":64,"props":142,"children":144},{"className":143},[],[145],{"type":50,"value":146},"typescript",{"type":50,"value":148},", ",{"type":45,"tag":64,"props":150,"children":152},{"className":151},[],[153],{"type":50,"value":154},"@types\u002Fnode",{"type":50,"value":156},") used to run the generated ",{"type":45,"tag":64,"props":158,"children":160},{"className":159},[],[161],{"type":50,"value":162},"stagehand-example.ts",{"type":50,"value":164},".",{"type":45,"tag":73,"props":166,"children":168},{"id":167},"workflow",[169],{"type":50,"value":170},"Workflow",{"type":45,"tag":172,"props":173,"children":174},"ol",{},[175],{"type":45,"tag":176,"props":177,"children":178},"li",{},[179],{"type":50,"value":180},"Pick an artifact slug with exactly one slash:",{"type":45,"tag":85,"props":182,"children":186},{"className":183,"code":185,"language":50,"meta":90},[184],"language-text","\u003Cdomain>\u002F\u003Ctask>\n",[187],{"type":45,"tag":64,"props":188,"children":189},{"__ignoreMap":90},[190],{"type":50,"value":185},{"type":45,"tag":53,"props":192,"children":193},{},[194],{"type":50,"value":195},"Example:",{"type":45,"tag":85,"props":197,"children":200},{"className":198,"code":199,"language":50,"meta":90},[184],"example.com\u002Fpage-context\n",[201],{"type":45,"tag":64,"props":202,"children":203},{"__ignoreMap":90},[204],{"type":50,"value":199},{"type":45,"tag":172,"props":206,"children":207},{"start":115},[208],{"type":45,"tag":176,"props":209,"children":210},{},[211],{"type":50,"value":212},"Scaffold the artifact:",{"type":45,"tag":85,"props":214,"children":216},{"className":87,"code":215,"language":89,"meta":90,"style":90},"node scripts\u002Fscaffold.mjs example.com\u002Fpage-context --url https:\u002F\u002Fexample.com\n",[217],{"type":45,"tag":64,"props":218,"children":219},{"__ignoreMap":90},[220],{"type":45,"tag":96,"props":221,"children":222},{"class":98,"line":99},[223,228,233,238,243],{"type":45,"tag":96,"props":224,"children":225},{"style":119},[226],{"type":50,"value":227},"node",{"type":45,"tag":96,"props":229,"children":230},{"style":109},[231],{"type":50,"value":232}," scripts\u002Fscaffold.mjs",{"type":45,"tag":96,"props":234,"children":235},{"style":109},[236],{"type":50,"value":237}," example.com\u002Fpage-context",{"type":45,"tag":96,"props":239,"children":240},{"style":109},[241],{"type":50,"value":242}," --url",{"type":45,"tag":96,"props":244,"children":245},{"style":109},[246],{"type":50,"value":247}," https:\u002F\u002Fexample.com\n",{"type":45,"tag":172,"props":249,"children":251},{"start":250},3,[252],{"type":45,"tag":176,"props":253,"children":254},{},[255,257,263],{"type":50,"value":256},"Explore the target page with the ",{"type":45,"tag":64,"props":258,"children":260},{"className":259},[],[261],{"type":50,"value":262},"browse",{"type":50,"value":264}," CLI:",{"type":45,"tag":85,"props":266,"children":268},{"className":87,"code":267,"language":89,"meta":90,"style":90},"browse open https:\u002F\u002Fexample.com --local\nbrowse snapshot\nbrowse get title\nbrowse get url\nbrowse get text body\nbrowse get html body\n",[269],{"type":45,"tag":64,"props":270,"children":271},{"__ignoreMap":90},[272,294,306,323,340,362],{"type":45,"tag":96,"props":273,"children":274},{"class":98,"line":99},[275,279,284,289],{"type":45,"tag":96,"props":276,"children":277},{"style":119},[278],{"type":50,"value":262},{"type":45,"tag":96,"props":280,"children":281},{"style":109},[282],{"type":50,"value":283}," open",{"type":45,"tag":96,"props":285,"children":286},{"style":109},[287],{"type":50,"value":288}," https:\u002F\u002Fexample.com",{"type":45,"tag":96,"props":290,"children":291},{"style":109},[292],{"type":50,"value":293}," --local\n",{"type":45,"tag":96,"props":295,"children":296},{"class":98,"line":115},[297,301],{"type":45,"tag":96,"props":298,"children":299},{"style":119},[300],{"type":50,"value":262},{"type":45,"tag":96,"props":302,"children":303},{"style":109},[304],{"type":50,"value":305}," snapshot\n",{"type":45,"tag":96,"props":307,"children":308},{"class":98,"line":250},[309,313,318],{"type":45,"tag":96,"props":310,"children":311},{"style":119},[312],{"type":50,"value":262},{"type":45,"tag":96,"props":314,"children":315},{"style":109},[316],{"type":50,"value":317}," get",{"type":45,"tag":96,"props":319,"children":320},{"style":109},[321],{"type":50,"value":322}," title\n",{"type":45,"tag":96,"props":324,"children":326},{"class":98,"line":325},4,[327,331,335],{"type":45,"tag":96,"props":328,"children":329},{"style":119},[330],{"type":50,"value":262},{"type":45,"tag":96,"props":332,"children":333},{"style":109},[334],{"type":50,"value":317},{"type":45,"tag":96,"props":336,"children":337},{"style":109},[338],{"type":50,"value":339}," url\n",{"type":45,"tag":96,"props":341,"children":343},{"class":98,"line":342},5,[344,348,352,357],{"type":45,"tag":96,"props":345,"children":346},{"style":119},[347],{"type":50,"value":262},{"type":45,"tag":96,"props":349,"children":350},{"style":109},[351],{"type":50,"value":317},{"type":45,"tag":96,"props":353,"children":354},{"style":109},[355],{"type":50,"value":356}," text",{"type":45,"tag":96,"props":358,"children":359},{"style":109},[360],{"type":50,"value":361}," body\n",{"type":45,"tag":96,"props":363,"children":365},{"class":98,"line":364},6,[366,370,374,379],{"type":45,"tag":96,"props":367,"children":368},{"style":119},[369],{"type":50,"value":262},{"type":45,"tag":96,"props":371,"children":372},{"style":109},[373],{"type":50,"value":317},{"type":45,"tag":96,"props":375,"children":376},{"style":109},[377],{"type":50,"value":378}," html",{"type":45,"tag":96,"props":380,"children":381},{"style":109},[382],{"type":50,"value":361},{"type":45,"tag":53,"props":384,"children":385},{},[386,388,394,396,402],{"type":50,"value":387},"Prefer ",{"type":45,"tag":64,"props":389,"children":391},{"className":390},[],[392],{"type":50,"value":393},"browse snapshot",{"type":50,"value":395},", page text, and DOM inspection over screenshots unless visual layout matters. Use ",{"type":45,"tag":64,"props":397,"children":399},{"className":398},[],[400],{"type":50,"value":401},"browse stop",{"type":50,"value":403}," when exploration is complete.",{"type":45,"tag":172,"props":405,"children":406},{"start":325},[407,420],{"type":45,"tag":176,"props":408,"children":409},{},[410,412,418],{"type":50,"value":411},"Edit ",{"type":45,"tag":64,"props":413,"children":415},{"className":414},[],[416],{"type":50,"value":417},"artifacts\u002F\u003Cdomain>\u002F\u003Ctask>\u002Fmanifest.json",{"type":50,"value":419},". The manifest is the source of truth.",{"type":45,"tag":176,"props":421,"children":422},{},[423],{"type":50,"value":424},"Compile:",{"type":45,"tag":85,"props":426,"children":428},{"className":87,"code":427,"language":89,"meta":90,"style":90},"node scripts\u002Fcompile.mjs artifacts\u002Fexample.com\u002Fpage-context\n",[429],{"type":45,"tag":64,"props":430,"children":431},{"__ignoreMap":90},[432],{"type":45,"tag":96,"props":433,"children":434},{"class":98,"line":99},[435,439,444],{"type":45,"tag":96,"props":436,"children":437},{"style":119},[438],{"type":50,"value":227},{"type":45,"tag":96,"props":440,"children":441},{"style":109},[442],{"type":50,"value":443}," scripts\u002Fcompile.mjs",{"type":45,"tag":96,"props":445,"children":446},{"style":109},[447],{"type":50,"value":448}," artifacts\u002Fexample.com\u002Fpage-context\n",{"type":45,"tag":172,"props":450,"children":451},{"start":364},[452],{"type":45,"tag":176,"props":453,"children":454},{},[455,457,462,464,469],{"type":50,"value":456},"Generate a runnable Stagehand example (",{"type":45,"tag":64,"props":458,"children":460},{"className":459},[],[461],{"type":50,"value":162},{"type":50,"value":463},") and run it with ",{"type":45,"tag":64,"props":465,"children":467},{"className":466},[],[468],{"type":50,"value":138},{"type":50,"value":470},":",{"type":45,"tag":85,"props":472,"children":474},{"className":87,"code":473,"language":89,"meta":90,"style":90},"node scripts\u002Fgenerate-stagehand-example.mjs artifacts\u002Fexample.com\u002Fpage-context\nnpx tsx artifacts\u002Fexample.com\u002Fpage-context\u002Fstagehand-example.ts\n",[475],{"type":45,"tag":64,"props":476,"children":477},{"__ignoreMap":90},[478,494],{"type":45,"tag":96,"props":479,"children":480},{"class":98,"line":99},[481,485,490],{"type":45,"tag":96,"props":482,"children":483},{"style":119},[484],{"type":50,"value":227},{"type":45,"tag":96,"props":486,"children":487},{"style":109},[488],{"type":50,"value":489}," scripts\u002Fgenerate-stagehand-example.mjs",{"type":45,"tag":96,"props":491,"children":492},{"style":109},[493],{"type":50,"value":448},{"type":45,"tag":96,"props":495,"children":496},{"class":98,"line":115},[497,502,507],{"type":45,"tag":96,"props":498,"children":499},{"style":119},[500],{"type":50,"value":501},"npx",{"type":45,"tag":96,"props":503,"children":504},{"style":109},[505],{"type":50,"value":506}," tsx",{"type":45,"tag":96,"props":508,"children":509},{"style":109},[510],{"type":50,"value":511}," artifacts\u002Fexample.com\u002Fpage-context\u002Fstagehand-example.ts\n",{"type":45,"tag":172,"props":513,"children":515},{"start":514},7,[516],{"type":45,"tag":176,"props":517,"children":518},{},[519],{"type":50,"value":520},"Validate:",{"type":45,"tag":85,"props":522,"children":524},{"className":87,"code":523,"language":89,"meta":90,"style":90},"node scripts\u002Fvalidate.mjs artifacts\u002Fexample.com\u002Fpage-context\n",[525],{"type":45,"tag":64,"props":526,"children":527},{"__ignoreMap":90},[528],{"type":45,"tag":96,"props":529,"children":530},{"class":98,"line":99},[531,535,540],{"type":45,"tag":96,"props":532,"children":533},{"style":119},[534],{"type":50,"value":227},{"type":45,"tag":96,"props":536,"children":537},{"style":109},[538],{"type":50,"value":539}," scripts\u002Fvalidate.mjs",{"type":45,"tag":96,"props":541,"children":542},{"style":109},[543],{"type":50,"value":448},{"type":45,"tag":172,"props":545,"children":547},{"start":546},8,[548],{"type":45,"tag":176,"props":549,"children":550},{},[551,553,559,561,567,569,574],{"type":50,"value":552},"If validation fails, inspect ",{"type":45,"tag":64,"props":554,"children":556},{"className":555},[],[557],{"type":50,"value":558},"eval.json",{"type":50,"value":560}," and ",{"type":45,"tag":64,"props":562,"children":564},{"className":563},[],[565],{"type":50,"value":566},"eval-report.md",{"type":50,"value":568},", patch ",{"type":45,"tag":64,"props":570,"children":572},{"className":571},[],[573],{"type":50,"value":69},{"type":50,"value":575},", then compile and validate again.",{"type":45,"tag":73,"props":577,"children":579},{"id":578},"manifest-contract",[580],{"type":50,"value":581},"Manifest contract",{"type":45,"tag":85,"props":583,"children":587},{"className":584,"code":585,"language":586,"meta":90,"style":90},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"domain\": \"example.com\",\n  \"task\": \"page-context\",\n  \"url\": \"https:\u002F\u002Fexample.com\",\n  \"generatedAt\": \"2026-06-04T00:00:00.000Z\",\n  \"tools\": [\n    {\n      \"name\": \"example_com_page_context\",\n      \"description\": \"Returns page context.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"required\": []\n      },\n      \"implementation\": {\n        \"kind\": \"dom\",\n        \"source\": \"return { success: true, title: document.title, url: location.href };\"\n      },\n      \"fixtureInput\": {}\n    }\n  ]\n}\n","json",[588],{"type":45,"tag":64,"props":589,"children":590},{"__ignoreMap":90},[591,600,641,678,715,752,777,785,823,861,887,927,953,979,988,1013,1051,1086,1094,1120,1129,1138],{"type":45,"tag":96,"props":592,"children":593},{"class":98,"line":99},[594],{"type":45,"tag":96,"props":595,"children":597},{"style":596},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[598],{"type":50,"value":599},"{\n",{"type":45,"tag":96,"props":601,"children":602},{"class":98,"line":115},[603,608,614,619,623,628,633,637],{"type":45,"tag":96,"props":604,"children":605},{"style":596},[606],{"type":50,"value":607},"  \"",{"type":45,"tag":96,"props":609,"children":611},{"style":610},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[612],{"type":50,"value":613},"domain",{"type":45,"tag":96,"props":615,"children":616},{"style":596},[617],{"type":50,"value":618},"\"",{"type":45,"tag":96,"props":620,"children":621},{"style":596},[622],{"type":50,"value":470},{"type":45,"tag":96,"props":624,"children":625},{"style":596},[626],{"type":50,"value":627}," \"",{"type":45,"tag":96,"props":629,"children":630},{"style":109},[631],{"type":50,"value":632},"example.com",{"type":45,"tag":96,"props":634,"children":635},{"style":596},[636],{"type":50,"value":618},{"type":45,"tag":96,"props":638,"children":639},{"style":596},[640],{"type":50,"value":140},{"type":45,"tag":96,"props":642,"children":643},{"class":98,"line":250},[644,648,653,657,661,665,670,674],{"type":45,"tag":96,"props":645,"children":646},{"style":596},[647],{"type":50,"value":607},{"type":45,"tag":96,"props":649,"children":650},{"style":610},[651],{"type":50,"value":652},"task",{"type":45,"tag":96,"props":654,"children":655},{"style":596},[656],{"type":50,"value":618},{"type":45,"tag":96,"props":658,"children":659},{"style":596},[660],{"type":50,"value":470},{"type":45,"tag":96,"props":662,"children":663},{"style":596},[664],{"type":50,"value":627},{"type":45,"tag":96,"props":666,"children":667},{"style":109},[668],{"type":50,"value":669},"page-context",{"type":45,"tag":96,"props":671,"children":672},{"style":596},[673],{"type":50,"value":618},{"type":45,"tag":96,"props":675,"children":676},{"style":596},[677],{"type":50,"value":140},{"type":45,"tag":96,"props":679,"children":680},{"class":98,"line":325},[681,685,690,694,698,702,707,711],{"type":45,"tag":96,"props":682,"children":683},{"style":596},[684],{"type":50,"value":607},{"type":45,"tag":96,"props":686,"children":687},{"style":610},[688],{"type":50,"value":689},"url",{"type":45,"tag":96,"props":691,"children":692},{"style":596},[693],{"type":50,"value":618},{"type":45,"tag":96,"props":695,"children":696},{"style":596},[697],{"type":50,"value":470},{"type":45,"tag":96,"props":699,"children":700},{"style":596},[701],{"type":50,"value":627},{"type":45,"tag":96,"props":703,"children":704},{"style":109},[705],{"type":50,"value":706},"https:\u002F\u002Fexample.com",{"type":45,"tag":96,"props":708,"children":709},{"style":596},[710],{"type":50,"value":618},{"type":45,"tag":96,"props":712,"children":713},{"style":596},[714],{"type":50,"value":140},{"type":45,"tag":96,"props":716,"children":717},{"class":98,"line":342},[718,722,727,731,735,739,744,748],{"type":45,"tag":96,"props":719,"children":720},{"style":596},[721],{"type":50,"value":607},{"type":45,"tag":96,"props":723,"children":724},{"style":610},[725],{"type":50,"value":726},"generatedAt",{"type":45,"tag":96,"props":728,"children":729},{"style":596},[730],{"type":50,"value":618},{"type":45,"tag":96,"props":732,"children":733},{"style":596},[734],{"type":50,"value":470},{"type":45,"tag":96,"props":736,"children":737},{"style":596},[738],{"type":50,"value":627},{"type":45,"tag":96,"props":740,"children":741},{"style":109},[742],{"type":50,"value":743},"2026-06-04T00:00:00.000Z",{"type":45,"tag":96,"props":745,"children":746},{"style":596},[747],{"type":50,"value":618},{"type":45,"tag":96,"props":749,"children":750},{"style":596},[751],{"type":50,"value":140},{"type":45,"tag":96,"props":753,"children":754},{"class":98,"line":364},[755,759,764,768,772],{"type":45,"tag":96,"props":756,"children":757},{"style":596},[758],{"type":50,"value":607},{"type":45,"tag":96,"props":760,"children":761},{"style":610},[762],{"type":50,"value":763},"tools",{"type":45,"tag":96,"props":765,"children":766},{"style":596},[767],{"type":50,"value":618},{"type":45,"tag":96,"props":769,"children":770},{"style":596},[771],{"type":50,"value":470},{"type":45,"tag":96,"props":773,"children":774},{"style":596},[775],{"type":50,"value":776}," [\n",{"type":45,"tag":96,"props":778,"children":779},{"class":98,"line":514},[780],{"type":45,"tag":96,"props":781,"children":782},{"style":596},[783],{"type":50,"value":784},"    {\n",{"type":45,"tag":96,"props":786,"children":787},{"class":98,"line":546},[788,793,798,802,806,810,815,819],{"type":45,"tag":96,"props":789,"children":790},{"style":596},[791],{"type":50,"value":792},"      \"",{"type":45,"tag":96,"props":794,"children":795},{"style":119},[796],{"type":50,"value":797},"name",{"type":45,"tag":96,"props":799,"children":800},{"style":596},[801],{"type":50,"value":618},{"type":45,"tag":96,"props":803,"children":804},{"style":596},[805],{"type":50,"value":470},{"type":45,"tag":96,"props":807,"children":808},{"style":596},[809],{"type":50,"value":627},{"type":45,"tag":96,"props":811,"children":812},{"style":109},[813],{"type":50,"value":814},"example_com_page_context",{"type":45,"tag":96,"props":816,"children":817},{"style":596},[818],{"type":50,"value":618},{"type":45,"tag":96,"props":820,"children":821},{"style":596},[822],{"type":50,"value":140},{"type":45,"tag":96,"props":824,"children":826},{"class":98,"line":825},9,[827,831,836,840,844,848,853,857],{"type":45,"tag":96,"props":828,"children":829},{"style":596},[830],{"type":50,"value":792},{"type":45,"tag":96,"props":832,"children":833},{"style":119},[834],{"type":50,"value":835},"description",{"type":45,"tag":96,"props":837,"children":838},{"style":596},[839],{"type":50,"value":618},{"type":45,"tag":96,"props":841,"children":842},{"style":596},[843],{"type":50,"value":470},{"type":45,"tag":96,"props":845,"children":846},{"style":596},[847],{"type":50,"value":627},{"type":45,"tag":96,"props":849,"children":850},{"style":109},[851],{"type":50,"value":852},"Returns page context.",{"type":45,"tag":96,"props":854,"children":855},{"style":596},[856],{"type":50,"value":618},{"type":45,"tag":96,"props":858,"children":859},{"style":596},[860],{"type":50,"value":140},{"type":45,"tag":96,"props":862,"children":864},{"class":98,"line":863},10,[865,869,874,878,882],{"type":45,"tag":96,"props":866,"children":867},{"style":596},[868],{"type":50,"value":792},{"type":45,"tag":96,"props":870,"children":871},{"style":119},[872],{"type":50,"value":873},"inputSchema",{"type":45,"tag":96,"props":875,"children":876},{"style":596},[877],{"type":50,"value":618},{"type":45,"tag":96,"props":879,"children":880},{"style":596},[881],{"type":50,"value":470},{"type":45,"tag":96,"props":883,"children":884},{"style":596},[885],{"type":50,"value":886}," {\n",{"type":45,"tag":96,"props":888,"children":890},{"class":98,"line":889},11,[891,896,902,906,910,914,919,923],{"type":45,"tag":96,"props":892,"children":893},{"style":596},[894],{"type":50,"value":895},"        \"",{"type":45,"tag":96,"props":897,"children":899},{"style":898},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[900],{"type":50,"value":901},"type",{"type":45,"tag":96,"props":903,"children":904},{"style":596},[905],{"type":50,"value":618},{"type":45,"tag":96,"props":907,"children":908},{"style":596},[909],{"type":50,"value":470},{"type":45,"tag":96,"props":911,"children":912},{"style":596},[913],{"type":50,"value":627},{"type":45,"tag":96,"props":915,"children":916},{"style":109},[917],{"type":50,"value":918},"object",{"type":45,"tag":96,"props":920,"children":921},{"style":596},[922],{"type":50,"value":618},{"type":45,"tag":96,"props":924,"children":925},{"style":596},[926],{"type":50,"value":140},{"type":45,"tag":96,"props":928,"children":930},{"class":98,"line":929},12,[931,935,940,944,948],{"type":45,"tag":96,"props":932,"children":933},{"style":596},[934],{"type":50,"value":895},{"type":45,"tag":96,"props":936,"children":937},{"style":898},[938],{"type":50,"value":939},"properties",{"type":45,"tag":96,"props":941,"children":942},{"style":596},[943],{"type":50,"value":618},{"type":45,"tag":96,"props":945,"children":946},{"style":596},[947],{"type":50,"value":470},{"type":45,"tag":96,"props":949,"children":950},{"style":596},[951],{"type":50,"value":952}," {},\n",{"type":45,"tag":96,"props":954,"children":956},{"class":98,"line":955},13,[957,961,966,970,974],{"type":45,"tag":96,"props":958,"children":959},{"style":596},[960],{"type":50,"value":895},{"type":45,"tag":96,"props":962,"children":963},{"style":898},[964],{"type":50,"value":965},"required",{"type":45,"tag":96,"props":967,"children":968},{"style":596},[969],{"type":50,"value":618},{"type":45,"tag":96,"props":971,"children":972},{"style":596},[973],{"type":50,"value":470},{"type":45,"tag":96,"props":975,"children":976},{"style":596},[977],{"type":50,"value":978}," []\n",{"type":45,"tag":96,"props":980,"children":982},{"class":98,"line":981},14,[983],{"type":45,"tag":96,"props":984,"children":985},{"style":596},[986],{"type":50,"value":987},"      },\n",{"type":45,"tag":96,"props":989,"children":991},{"class":98,"line":990},15,[992,996,1001,1005,1009],{"type":45,"tag":96,"props":993,"children":994},{"style":596},[995],{"type":50,"value":792},{"type":45,"tag":96,"props":997,"children":998},{"style":119},[999],{"type":50,"value":1000},"implementation",{"type":45,"tag":96,"props":1002,"children":1003},{"style":596},[1004],{"type":50,"value":618},{"type":45,"tag":96,"props":1006,"children":1007},{"style":596},[1008],{"type":50,"value":470},{"type":45,"tag":96,"props":1010,"children":1011},{"style":596},[1012],{"type":50,"value":886},{"type":45,"tag":96,"props":1014,"children":1016},{"class":98,"line":1015},16,[1017,1021,1026,1030,1034,1038,1043,1047],{"type":45,"tag":96,"props":1018,"children":1019},{"style":596},[1020],{"type":50,"value":895},{"type":45,"tag":96,"props":1022,"children":1023},{"style":898},[1024],{"type":50,"value":1025},"kind",{"type":45,"tag":96,"props":1027,"children":1028},{"style":596},[1029],{"type":50,"value":618},{"type":45,"tag":96,"props":1031,"children":1032},{"style":596},[1033],{"type":50,"value":470},{"type":45,"tag":96,"props":1035,"children":1036},{"style":596},[1037],{"type":50,"value":627},{"type":45,"tag":96,"props":1039,"children":1040},{"style":109},[1041],{"type":50,"value":1042},"dom",{"type":45,"tag":96,"props":1044,"children":1045},{"style":596},[1046],{"type":50,"value":618},{"type":45,"tag":96,"props":1048,"children":1049},{"style":596},[1050],{"type":50,"value":140},{"type":45,"tag":96,"props":1052,"children":1054},{"class":98,"line":1053},17,[1055,1059,1064,1068,1072,1076,1081],{"type":45,"tag":96,"props":1056,"children":1057},{"style":596},[1058],{"type":50,"value":895},{"type":45,"tag":96,"props":1060,"children":1061},{"style":898},[1062],{"type":50,"value":1063},"source",{"type":45,"tag":96,"props":1065,"children":1066},{"style":596},[1067],{"type":50,"value":618},{"type":45,"tag":96,"props":1069,"children":1070},{"style":596},[1071],{"type":50,"value":470},{"type":45,"tag":96,"props":1073,"children":1074},{"style":596},[1075],{"type":50,"value":627},{"type":45,"tag":96,"props":1077,"children":1078},{"style":109},[1079],{"type":50,"value":1080},"return { success: true, title: document.title, url: location.href };",{"type":45,"tag":96,"props":1082,"children":1083},{"style":596},[1084],{"type":50,"value":1085},"\"\n",{"type":45,"tag":96,"props":1087,"children":1089},{"class":98,"line":1088},18,[1090],{"type":45,"tag":96,"props":1091,"children":1092},{"style":596},[1093],{"type":50,"value":987},{"type":45,"tag":96,"props":1095,"children":1097},{"class":98,"line":1096},19,[1098,1102,1107,1111,1115],{"type":45,"tag":96,"props":1099,"children":1100},{"style":596},[1101],{"type":50,"value":792},{"type":45,"tag":96,"props":1103,"children":1104},{"style":119},[1105],{"type":50,"value":1106},"fixtureInput",{"type":45,"tag":96,"props":1108,"children":1109},{"style":596},[1110],{"type":50,"value":618},{"type":45,"tag":96,"props":1112,"children":1113},{"style":596},[1114],{"type":50,"value":470},{"type":45,"tag":96,"props":1116,"children":1117},{"style":596},[1118],{"type":50,"value":1119}," {}\n",{"type":45,"tag":96,"props":1121,"children":1123},{"class":98,"line":1122},20,[1124],{"type":45,"tag":96,"props":1125,"children":1126},{"style":596},[1127],{"type":50,"value":1128},"    }\n",{"type":45,"tag":96,"props":1130,"children":1132},{"class":98,"line":1131},21,[1133],{"type":45,"tag":96,"props":1134,"children":1135},{"style":596},[1136],{"type":50,"value":1137},"  ]\n",{"type":45,"tag":96,"props":1139,"children":1141},{"class":98,"line":1140},22,[1142],{"type":45,"tag":96,"props":1143,"children":1144},{"style":596},[1145],{"type":50,"value":1146},"}\n",{"type":45,"tag":73,"props":1148,"children":1150},{"id":1149},"authoring-rules",[1151],{"type":50,"value":1152},"Authoring rules",{"type":45,"tag":1154,"props":1155,"children":1156},"ul",{},[1157,1176,1181,1215,1226,1244,1256,1261,1281,1286,1299],{"type":45,"tag":176,"props":1158,"children":1159},{},[1160,1166,1168,1174],{"type":45,"tag":64,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":50,"value":1165},"implementation.source",{"type":50,"value":1167}," is inserted inside ",{"type":45,"tag":64,"props":1169,"children":1171},{"className":1170},[],[1172],{"type":50,"value":1173},"async (input) => { ... }",{"type":50,"value":1175},"; write JavaScript statements, not a full function wrapper.",{"type":45,"tag":176,"props":1177,"children":1178},{},[1179],{"type":50,"value":1180},"Return a JSON-serializable object.",{"type":45,"tag":176,"props":1182,"children":1183},{},[1184,1186,1192,1193,1199,1200,1206,1208,1214],{"type":50,"value":1185},"WebMCP code runs inside the browser page. Use browser-native APIs: ",{"type":45,"tag":64,"props":1187,"children":1189},{"className":1188},[],[1190],{"type":50,"value":1191},"document",{"type":50,"value":148},{"type":45,"tag":64,"props":1194,"children":1196},{"className":1195},[],[1197],{"type":50,"value":1198},"location",{"type":50,"value":148},{"type":45,"tag":64,"props":1201,"children":1203},{"className":1202},[],[1204],{"type":50,"value":1205},"navigator",{"type":50,"value":1207},", and same-origin ",{"type":45,"tag":64,"props":1209,"children":1211},{"className":1210},[],[1212],{"type":50,"value":1213},"fetch",{"type":50,"value":164},{"type":45,"tag":176,"props":1216,"children":1217},{},[1218,1220,1225],{"type":50,"value":1219},"Do not use Playwright, Puppeteer, Stagehand, XPath helpers, or agent\u002Fbrowser commands inside ",{"type":45,"tag":64,"props":1221,"children":1223},{"className":1222},[],[1224],{"type":50,"value":1165},{"type":50,"value":164},{"type":45,"tag":176,"props":1227,"children":1228},{},[1229,1235,1236,1242],{"type":45,"tag":64,"props":1230,"children":1232},{"className":1231},[],[1233],{"type":50,"value":1234},"document.querySelector",{"type":50,"value":560},{"type":45,"tag":64,"props":1237,"children":1239},{"className":1238},[],[1240],{"type":50,"value":1241},"querySelectorAll",{"type":50,"value":1243}," must receive valid browser CSS selectors only.",{"type":45,"tag":176,"props":1245,"children":1246},{},[1247,1249,1255],{"type":50,"value":1248},"To find visible text, use ",{"type":45,"tag":64,"props":1250,"children":1252},{"className":1251},[],[1253],{"type":50,"value":1254},"Array.from(document.querySelectorAll(...)).find((el) => (el.textContent || \"\").includes(\"...\"))",{"type":50,"value":164},{"type":45,"tag":176,"props":1257,"children":1258},{},[1259],{"type":50,"value":1260},"Do not include API keys, bearer tokens, cookies, localStorage secrets, or user credentials.",{"type":45,"tag":176,"props":1262,"children":1263},{},[1264,1266,1272,1274,1280],{"type":50,"value":1265},"Do not use ",{"type":45,"tag":64,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":50,"value":1271},"eval",{"type":50,"value":1273}," or ",{"type":45,"tag":64,"props":1275,"children":1277},{"className":1276},[],[1278],{"type":50,"value":1279},"new Function",{"type":50,"value":164},{"type":45,"tag":176,"props":1282,"children":1283},{},[1284],{"type":50,"value":1285},"Avoid destructive actions unless the user explicitly asked for them.",{"type":45,"tag":176,"props":1287,"children":1288},{},[1289,1291,1297],{"type":50,"value":1290},"Make implementations defensive: check for missing elements and return structured ",{"type":45,"tag":64,"props":1292,"children":1294},{"className":1293},[],[1295],{"type":50,"value":1296},"{ success: false, error: \"...\" }",{"type":50,"value":1298}," responses.",{"type":45,"tag":176,"props":1300,"children":1301},{},[1302],{"type":50,"value":1303},"Generated init scripts register WebMCP tools only in the top frame.",{"type":45,"tag":73,"props":1305,"children":1307},{"id":1306},"output-layout",[1308],{"type":50,"value":1309},"Output layout",{"type":45,"tag":85,"props":1311,"children":1314},{"className":1312,"code":1313,"language":50,"meta":90},[184],"artifacts\u002F\u003Cdomain>\u002F\u003Ctask>\u002F\n  manifest.json\n  webmcp.init.js\n  stagehand-example.ts\n  eval.json\n  eval-report.md\n",[1315],{"type":45,"tag":64,"props":1316,"children":1317},{"__ignoreMap":90},[1318],{"type":50,"value":1313},{"type":45,"tag":53,"props":1320,"children":1321},{},[1322,1324,1330,1332,1338,1340,1346],{"type":50,"value":1323},"To turn the example into a standalone project, scaffold a Stagehand app with\n",{"type":45,"tag":64,"props":1325,"children":1327},{"className":1326},[],[1328],{"type":50,"value":1329},"npx create-browser-app",{"type":50,"value":1331}," and drop the generated ",{"type":45,"tag":64,"props":1333,"children":1335},{"className":1334},[],[1336],{"type":50,"value":1337},"webmcp.init.js",{"type":50,"value":1339}," into it (load it\nwith ",{"type":45,"tag":64,"props":1341,"children":1343},{"className":1342},[],[1344],{"type":50,"value":1345},"page.addInitScript({ path: \"webmcp.init.js\" })",{"type":50,"value":1347},").",{"type":45,"tag":1349,"props":1350,"children":1351},"style",{},[1352],{"type":50,"value":1353},"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);}",{"items":1355,"total":1053},[1356,1369,1392,1403,1413,1431,1446,1463,1483,1497,1509,1522],{"slug":262,"name":262,"fn":1357,"description":1358,"org":1359,"tags":1360,"stars":1366,"repoUrl":1367,"updatedAt":1368},"run Browserbase browser automation","Use the browse CLI for Browserbase browser automation, Browserbase cloud APIs, Browserbase Functions, templates, web fetch\u002Fsearch, diagnostics, and Browse.sh skill discovery\u002Finstallation. Use when the user asks to navigate pages, inspect browser state, run local or remote browser sessions, manage Browserbase resources, call Browserbase Functions, browse or scaffold Browserbase templates, fetch or search web content, diagnose browse setup, find or install a skill for a website task, discover site-specific Browse.sh skills, or install\u002Frefresh this browse skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1361,1364,1365],{"name":1362,"slug":1363,"type":15},"Browser Automation","browser-automation",{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},23676,"https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand","2026-06-06T07:11:24.95733",{"slug":1370,"name":1370,"fn":1371,"description":1372,"org":1373,"tags":1374,"stars":26,"repoUrl":27,"updatedAt":1391},"agent-experience","audit developer experience with AI agents","Audit the developer experience of a product, SDK, docs site, or SKILL.md by dropping multiple Claude subagents at it with only a tiny task prompt and real tools (WebFetch, Bash, Write). Agents must discover the docs themselves, install deps, ask for credentials if needed, and attempt real execution. The skill captures each agent's trace — tool calls, retries, wall time, errors — and scores on Setup Friction, Speed, Efficiency, Error Recovery, and Doc Quality, then emits an HTML report with an A–F grade and concrete fixes. Use when the user asks to audit agent experience, test a skill, audit docs for agents, check if a SDK is agent-friendly, validate a SKILL.md, measure agent DX, or benchmark how painful onboarding is for an AI agent. Triggers: 'audit agent experience', 'test this skill', 'audit docs for agents', 'is my SDK agent-friendly', 'run a DX audit', 'agent experience test', 'test my docs', 'how do agents do with my product'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1375,1378,1381,1382,1385,1388],{"name":1376,"slug":1377,"type":15},"Agents","agents",{"name":1379,"slug":1380,"type":15},"Audit","audit",{"name":9,"slug":8,"type":15},{"name":1383,"slug":1384,"type":15},"Engineering","engineering",{"name":1386,"slug":1387,"type":15},"Multi-Agent","multi-agent",{"name":1389,"slug":1390,"type":15},"QA","qa","2026-05-29T06:58:56.259807",{"slug":1393,"name":1393,"fn":1394,"description":1395,"org":1396,"tags":1397,"stars":26,"repoUrl":27,"updatedAt":1402},"autobrowse","run self-improving browser automation","Self-improving browser automation via the auto-research loop. Iteratively runs a browsing task, reads the trace, and improves the navigation skill (strategy.md) until it reliably passes. Supports parallel runs across multiple tasks using sub-agents. Use when you want to build or improve browser automation skills for specific website tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1398,1399,1400,1401],{"name":1376,"slug":1377,"type":15},{"name":13,"slug":14,"type":15},{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},"2026-04-23T05:00:30.528336",{"slug":1404,"name":1404,"fn":1405,"description":1406,"org":1407,"tags":1408,"stars":26,"repoUrl":27,"updatedAt":1412},"browser","automate browser interactions via CLI","Automate web browser interactions using natural language via CLI commands. Use when the user asks to browse websites, navigate web pages, extract data from websites, take screenshots, fill forms, click buttons, or interact with web applications. Supports remote Browserbase sessions with Browserbase Identity, Verified browsers, automatic CAPTCHA solving, and residential proxies — ideal for protected websites and JavaScript-heavy pages.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1409,1410,1411],{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-04-06T18:06:22.005051",{"slug":1414,"name":1414,"fn":1415,"description":1416,"org":1417,"tags":1418,"stars":26,"repoUrl":27,"updatedAt":1430},"browser-to-api","generate OpenAPI specs from browser traffic","Turn a website's observable HTTP traffic into a best-effort OpenAPI 3.1 spec by analyzing a `browser-trace` capture. Use when the user wants to discover\u002Fextract API endpoints from a browser session, build an OpenAPI doc from network traffic, or document a third-party site's XHR\u002Ffetch surface for client integration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1419,1422,1423,1424,1427],{"name":1420,"slug":1421,"type":15},"API Development","api-development",{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},{"name":1425,"slug":1426,"type":15},"HTTP","http",{"name":1428,"slug":1429,"type":15},"OpenAPI","openapi","2026-05-14T06:07:27.298495",{"slug":1432,"name":1432,"fn":1433,"description":1434,"org":1435,"tags":1436,"stars":26,"repoUrl":27,"updatedAt":1445},"browser-trace","capture and debug browser automation traces","Capture a full DevTools-protocol trace of any browser automation — CDP firehose, screenshots, and DOM dumps — then bisect the stream into per-page searchable buckets. Use when the user wants to debug a failed run, audit network\u002Fconsole\u002FDOM activity, attach a trace to an in-progress session, or feed structured per-page summaries back into an agent loop so its next iteration learns from the last one.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1437,1438,1439,1442],{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},{"name":1440,"slug":1441,"type":15},"Debugging","debugging",{"name":1443,"slug":1444,"type":15},"Observability","observability","2026-04-28T05:41:33.024656",{"slug":1447,"name":1447,"fn":1448,"description":1449,"org":1450,"tags":1451,"stars":26,"repoUrl":27,"updatedAt":1462},"browser-use-to-stagehand","migrate browser-use scripts to Stagehand","Migrate browser-use (Python) browser-automation scripts to Stagehand v3 (TypeScript) on Browserbase. Use when the user wants to convert, port, rewrite, or migrate a browser-use Agent script to Stagehand, map browser-use features\u002FAPIs to Stagehand primitives (act\u002Fextract\u002Fobserve\u002Fagent), or move agentic browser automation onto Browserbase with more determinism. Triggers on \"browser-use\", \"browser_use\", or \"Agent(task=...)\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1452,1453,1454,1457,1460],{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},{"name":1455,"slug":1456,"type":15},"Migration","migration",{"name":1458,"slug":1459,"type":15},"Python","python",{"name":1461,"slug":146,"type":15},"TypeScript","2026-06-26T07:57:47.428249",{"slug":1464,"name":1464,"fn":1465,"description":1466,"org":1467,"tags":1468,"stars":26,"repoUrl":27,"updatedAt":1482},"company-research","conduct deep company and product research","Company discovery and deep research skill. Researches a company's product and ICP,\ndiscovers target companies to sell to using Browserbase Search API, deeply researches\neach using a Plan→Research→Synthesize pattern, and scores ICP fit — compiled into\na scored research report and CSV. Supports depth modes (quick\u002Fdeep\u002Fdeeper) for\nbalancing scale vs intelligence.\nUse when the user wants to: (1) find companies to sell to, (2) research potential\ncustomers, (3) discover companies matching an ICP, (4) build a target company list,\n(5) do market research on prospects. Triggers: \"find companies to sell to\",\n\"company research\", \"find prospects\", \"ICP research\", \"target companies\",\n\"who should we sell to\", \"market research\", \"lead research\", \"prospect list\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1469,1470,1473,1476,1479],{"name":9,"slug":8,"type":15},{"name":1471,"slug":1472,"type":15},"Competitive Intelligence","competitive-intelligence",{"name":1474,"slug":1475,"type":15},"Marketing","marketing",{"name":1477,"slug":1478,"type":15},"Research","research",{"name":1480,"slug":1481,"type":15},"Sales","sales","2026-04-27T05:34:56.172569",{"slug":1484,"name":1484,"fn":1485,"description":1486,"org":1487,"tags":1488,"stars":26,"repoUrl":27,"updatedAt":1496},"competitor-analysis","analyze competitors across features and pricing","Competitor research and intelligence skill. Takes a user's company (with optional\nseed competitor URLs), auto-discovers additional competitors via Browserbase Search API,\ndeeply researches each using a 4-lane pattern (marketing surface, external signal,\npublic benchmarks, strategic diff vs the user's company), and compiles the results\ninto an HTML report with four views: overview, per-competitor deep dive, side-by-side\nfeature\u002Fpricing matrix, and a chronological mentions feed (news, reviews,\nsocial, comparison pages, and public benchmarks).\nUse when the user wants to: (1) analyze competitors, (2) build a competitive matrix,\n(3) extract competitor pricing \u002F features, (4) find comparison pages and online\nmentions of competitors, (5) surface public benchmarks. Triggers: \"competitor analysis\",\n\"analyze competitors\", \"competitive intel\", \"competitor research\", \"competitor pricing\",\n\"feature comparison\", \"price comparison\", \"find comparisons\", \"who's comparing us\",\n\"competitor mentions\", \"competitor benchmarks\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1489,1490,1491,1492,1493],{"name":9,"slug":8,"type":15},{"name":1471,"slug":1472,"type":15},{"name":1474,"slug":1475,"type":15},{"name":1477,"slug":1478,"type":15},{"name":1494,"slug":1495,"type":15},"Strategy","strategy","2026-06-19T09:41:33.392499",{"slug":1498,"name":1498,"fn":1499,"description":1500,"org":1501,"tags":1502,"stars":26,"repoUrl":27,"updatedAt":1508},"cookie-sync","sync Chrome cookies to a Browserbase context","Sync cookies from local Chrome to a Browserbase persistent context so the browse CLI can access authenticated sites. Use when the user wants to browse as themselves, sync cookies, or log into sites via Browserbase.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1503,1506,1507],{"name":1504,"slug":1505,"type":15},"Auth","auth",{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:06:23.3251",{"slug":1510,"name":1510,"fn":1511,"description":1512,"org":1513,"tags":1514,"stars":26,"repoUrl":27,"updatedAt":1521},"event-prospecting","research event speakers for sales prospecting","Event prospecting skill. Takes a conference \u002F event speakers URL,\nextracts the people, filters their companies against the user's\nICP, then deep-researches only the speakers at ICP-fit companies.\nOutputs a person-first HTML report where each card answers \"why\nshould the AE talk to this person?\" with all public links and a\none-click DM opener.\nUse when the user wants to: (1) find leads at a specific\nconference, (2) prep for an event, (3) research event speakers,\n(4) build a target list from a sponsor\u002Fexhibitor page,\n(5) scrape conference speakers and rank by ICP fit.\nTriggers: \"find leads at {event}\", \"research speakers at\",\n\"prospect this conference\", \"stripe sessions leads\",\n\"ai engineer summit prospects\", \"event prospecting\",\n\"scrape conference speakers\", \"who should I meet at\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1515,1516,1519,1520],{"name":9,"slug":8,"type":15},{"name":1517,"slug":1518,"type":15},"Prospecting","prospecting",{"name":1477,"slug":1478,"type":15},{"name":1480,"slug":1481,"type":15},"2026-04-28T05:41:31.770467",{"slug":1213,"name":1213,"fn":1523,"description":1524,"org":1525,"tags":1526,"stars":26,"repoUrl":27,"updatedAt":1531},"fetch URLs without a browser session","Use this skill when the user wants to retrieve a URL without a full browser session: fetch HTML or JSON from static pages, inspect status codes or headers, follow redirects, or get page source for simple scraping. Prefer it over a browser when JavaScript rendering and page interaction are not needed. Supports proxies and redirect control.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1527,1528],{"name":1425,"slug":1426,"type":15},{"name":1529,"slug":1530,"type":15},"Web Scraping","web-scraping","2026-04-06T18:06:19.462477",{"items":1533,"total":1015},[1534,1543,1550,1556,1564,1571,1579],{"slug":1370,"name":1370,"fn":1371,"description":1372,"org":1535,"tags":1536,"stars":26,"repoUrl":27,"updatedAt":1391},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1537,1538,1539,1540,1541,1542],{"name":1376,"slug":1377,"type":15},{"name":1379,"slug":1380,"type":15},{"name":9,"slug":8,"type":15},{"name":1383,"slug":1384,"type":15},{"name":1386,"slug":1387,"type":15},{"name":1389,"slug":1390,"type":15},{"slug":1393,"name":1393,"fn":1394,"description":1395,"org":1544,"tags":1545,"stars":26,"repoUrl":27,"updatedAt":1402},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1546,1547,1548,1549],{"name":1376,"slug":1377,"type":15},{"name":13,"slug":14,"type":15},{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},{"slug":1404,"name":1404,"fn":1405,"description":1406,"org":1551,"tags":1552,"stars":26,"repoUrl":27,"updatedAt":1412},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1553,1554,1555],{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"slug":1414,"name":1414,"fn":1415,"description":1416,"org":1557,"tags":1558,"stars":26,"repoUrl":27,"updatedAt":1430},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1559,1560,1561,1562,1563],{"name":1420,"slug":1421,"type":15},{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},{"name":1425,"slug":1426,"type":15},{"name":1428,"slug":1429,"type":15},{"slug":1432,"name":1432,"fn":1433,"description":1434,"org":1565,"tags":1566,"stars":26,"repoUrl":27,"updatedAt":1445},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1567,1568,1569,1570],{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},{"name":1440,"slug":1441,"type":15},{"name":1443,"slug":1444,"type":15},{"slug":1447,"name":1447,"fn":1448,"description":1449,"org":1572,"tags":1573,"stars":26,"repoUrl":27,"updatedAt":1462},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1574,1575,1576,1577,1578],{"name":1362,"slug":1363,"type":15},{"name":9,"slug":8,"type":15},{"name":1455,"slug":1456,"type":15},{"name":1458,"slug":1459,"type":15},{"name":1461,"slug":146,"type":15},{"slug":1464,"name":1464,"fn":1465,"description":1466,"org":1580,"tags":1581,"stars":26,"repoUrl":27,"updatedAt":1482},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1582,1583,1584,1585,1586],{"name":9,"slug":8,"type":15},{"name":1471,"slug":1472,"type":15},{"name":1474,"slug":1475,"type":15},{"name":1477,"slug":1478,"type":15},{"name":1480,"slug":1481,"type":15}]