{"_id":"@clipboard-health/scout-browser","_rev":"4-54b2ba791f8cee371e3d8d94c6be112d","name":"@clipboard-health/scout-browser","dist-tags":{"latest":"0.4.8"},"versions":{"0.4.5":{"name":"@clipboard-health/scout-browser","version":"0.4.5","keywords":["browser-automation","playwright","ai-agent","scripting","cli","headless"],"license":"MIT","_id":"@clipboard-health/scout-browser@0.4.5","maintainers":[{"name":"mikecookcbh","email":"mike.cook@clipboardhealth.com"},{"name":"sharedenginner_cbh","email":"shared.engineer@clipboardhealth.com"},{"name":"user_engineer","email":"user_engineer@clipboardhealth.com"},{"name":"clipboard_engineering","email":"shared.engineer+npm@clipboardhealth.com"}],"homepage":"https://github.com/ClipboardHealth/scout#readme","bugs":{"url":"https://github.com/ClipboardHealth/scout/issues"},"nx":{"name":"scout-browser"},"bin":{"scout-browser":"dist/cli.js"},"dist":{"shasum":"50181125e074110f3ae38897b4d0325918fbb268","tarball":"https://registry.npmjs.org/@clipboard-health/scout-browser/-/scout-browser-0.4.5.tgz","fileCount":5,"integrity":"sha512-/3g+XGnYIHVMzTz1ugR2VA6vr4kTU/6K/QMyvMRPkNzFpAZc7mdWI2qdbWbdvjb6Mter+/P/Hn6bUSMgcas8Aw==","signatures":[{"sig":"MEUCIQCFGX1JamX836Ala72tveUtrxloWNP0d9AWqF/mj3z5swIgJtzDM8WyEOqWRzI7uF9r+yPkmx+fou26/ylF4VvcfVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4088297},"type":"module","engines":{"node":">=20"},"gitHead":"1110d1261fbc743e5054fcb8cb9a3f0f91de66d8","scripts":{"dev":"tsx src/cli.ts","test":"npm run build && vitest run","build":"node scripts/build.mjs","clean":"rm -rf dist coverage .turbo","compile":"tsc --noEmit","prepack":"npm run build","test:watch":"npm run build && vitest"},"_npmUser":{"name":"sharedenginner_cbh","email":"shared.engineer@clipboardhealth.com"},"repository":{"url":"git+https://github.com/ClipboardHealth/scout.git","type":"git","directory":"apps/scout-browser"},"_npmVersion":"10.9.4","description":"Browser-automation CLI. Supervises the embedded scout-daemon and exposes a scriptable API over named-page persistent browsers.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","pino":"^9.5.0","vitest":"^4.1.0","esbuild":"^0.27.4","commander":"^12.1.0","typescript":"^5.8.0","@types/node":"^20.17.10","pino-pretty":"^13.0.0","@inquirer/prompts":"^7.2.1","@inquirer/checkbox":"^5.1.5","@clipboard-health/scout-config":"*","@clipboard-health/scout-logger":"*","@clipboard-health/scout-cli-kit":"*","@clipboard-health/scout-protocol":"*","@clipboard-health/scout-daemon-client":"*"},"_npmOperationalInternal":{"tmp":"tmp/scout-browser_0.4.5_1782763020147_0.6737469376418113","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@clipboard-health/scout-browser","version":"0.4.6","keywords":["browser-automation","playwright","ai-agent","scripting","cli","headless"],"license":"MIT","_id":"@clipboard-health/scout-browser@0.4.6","maintainers":[{"name":"mikecookcbh","email":"mike.cook@clipboardhealth.com"},{"name":"sharedenginner_cbh","email":"shared.engineer@clipboardhealth.com"},{"name":"user_engineer","email":"user_engineer@clipboardhealth.com"},{"name":"clipboard_engineering","email":"shared.engineer+npm@clipboardhealth.com"}],"homepage":"https://github.com/ClipboardHealth/scout#readme","bugs":{"url":"https://github.com/ClipboardHealth/scout/issues"},"nx":{"name":"scout-browser"},"bin":{"scout-browser":"dist/cli.js"},"dist":{"shasum":"fb56a7580c6a839dc559f5d1e32ad06fe9616538","tarball":"https://registry.npmjs.org/@clipboard-health/scout-browser/-/scout-browser-0.4.6.tgz","fileCount":5,"integrity":"sha512-zJXIKr42+jZhaQnzpGwSTHOPGQVjBWk2d1VbYCcGmQxnX99gIPU2X9IMJreqzpSBw9f/Yy9wjlJmKAmLhVBj3A==","signatures":[{"sig":"MEUCIA/FrEcy+SQ+fZ22G8UJVth267n6fmG6Uc/YNZ1M+RL2AiEAsNqx0ZnWjI9d+Uu161cOw63ysXSV5Ydy0Y1NfOKwt1E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4088297},"type":"module","engines":{"node":">=20"},"gitHead":"58556fb9b5cb6d8ba87edb5119c709e2f924245b","scripts":{"dev":"tsx src/cli.ts","test":"npm run build && vitest run","build":"node scripts/build.mjs","clean":"rm -rf dist coverage .turbo","compile":"tsc --noEmit","prepack":"npm run build","test:watch":"npm run build && vitest"},"_npmUser":{"name":"sharedenginner_cbh","email":"shared.engineer@clipboardhealth.com"},"repository":{"url":"git+https://github.com/ClipboardHealth/scout.git","type":"git","directory":"apps/scout-browser"},"_npmVersion":"10.9.4","description":"Browser-automation CLI. Supervises the embedded scout-daemon and exposes a scriptable API over named-page persistent browsers.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","pino":"^9.5.0","vitest":"^4.1.0","esbuild":"^0.27.4","commander":"^12.1.0","typescript":"^5.8.0","@types/node":"^20.17.10","pino-pretty":"^13.0.0","@inquirer/prompts":"^7.2.1","@inquirer/checkbox":"^5.1.5","@clipboard-health/scout-config":"*","@clipboard-health/scout-logger":"*","@clipboard-health/scout-cli-kit":"*","@clipboard-health/scout-protocol":"*","@clipboard-health/scout-daemon-client":"*"},"_npmOperationalInternal":{"tmp":"tmp/scout-browser_0.4.6_1782765208487_0.48023212231855994","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@clipboard-health/scout-browser","version":"0.4.7","keywords":["browser-automation","playwright","ai-agent","scripting","cli","headless"],"license":"MIT","_id":"@clipboard-health/scout-browser@0.4.7","maintainers":[{"name":"mikecookcbh","email":"mike.cook@clipboardhealth.com"},{"name":"sharedenginner_cbh","email":"shared.engineer@clipboardhealth.com"},{"name":"user_engineer","email":"user_engineer@clipboardhealth.com"},{"name":"clipboard_engineering","email":"shared.engineer+npm@clipboardhealth.com"}],"homepage":"https://github.com/ClipboardHealth/scout#readme","bugs":{"url":"https://github.com/ClipboardHealth/scout/issues"},"nx":{"name":"scout-browser"},"bin":{"scout-browser":"dist/cli.js"},"dist":{"shasum":"bde9fed70918c7f867c867c1511c5d419bd72d0a","tarball":"https://registry.npmjs.org/@clipboard-health/scout-browser/-/scout-browser-0.4.7.tgz","fileCount":5,"integrity":"sha512-oCd0ufGVEGSZGykBnobq7SyQW51rUGNIHqK5npGgAglf5AkyyWZOxwK+FerheLk6eJz5jlqHaVOwNsvFvOVJfg==","signatures":[{"sig":"MEUCIQC+aCY/NRHtJuMYpuv+x0zF9hfsloQZi4YnEriRPMFRCgIgJC2KvUmQB+S117ewCT6kgrwINMA01Ip8sSe123xYxp4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4088297},"type":"module","engines":{"node":">=20"},"gitHead":"83e11d23134f1a2f775b4a979cc1734fd31e475c","scripts":{"dev":"tsx src/cli.ts","test":"npm run build && vitest run","build":"node scripts/build.mjs","clean":"rm -rf dist coverage .turbo","compile":"tsc --noEmit","prepack":"npm run build","test:watch":"npm run build && vitest"},"_npmUser":{"name":"sharedenginner_cbh","email":"shared.engineer@clipboardhealth.com"},"repository":{"url":"git+https://github.com/ClipboardHealth/scout.git","type":"git","directory":"apps/scout-browser"},"_npmVersion":"10.9.4","description":"Browser-automation CLI. Supervises the embedded scout-daemon and exposes a scriptable API over named-page persistent browsers.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","pino":"^9.5.0","vitest":"^4.1.0","esbuild":"^0.27.4","commander":"^12.1.0","typescript":"^5.8.0","@types/node":"^20.17.10","pino-pretty":"^13.0.0","@inquirer/prompts":"^7.2.1","@inquirer/checkbox":"^5.1.5","@clipboard-health/scout-config":"*","@clipboard-health/scout-logger":"*","@clipboard-health/scout-cli-kit":"*","@clipboard-health/scout-protocol":"*","@clipboard-health/scout-daemon-client":"*"},"_npmOperationalInternal":{"tmp":"tmp/scout-browser_0.4.7_1785858984310_0.6788090338421187","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@clipboard-health/scout-browser","version":"0.4.8","type":"module","description":"Browser-automation CLI. Supervises the embedded scout-daemon and exposes a scriptable API over named-page persistent browsers.","license":"MIT","keywords":["browser-automation","playwright","ai-agent","scripting","cli","headless"],"homepage":"https://github.com/ClipboardHealth/scout#readme","bugs":{"url":"https://github.com/ClipboardHealth/scout/issues"},"repository":{"type":"git","url":"git+https://github.com/ClipboardHealth/scout.git","directory":"apps/scout-browser"},"engines":{"node":">=20"},"bin":{"scout-browser":"dist/cli.js"},"publishConfig":{"access":"public"},"scripts":{"build":"node scripts/build.mjs","dev":"tsx src/cli.ts","compile":"tsc --noEmit","test":"npm run build && vitest run","test:watch":"npm run build && vitest","clean":"rm -rf dist coverage .turbo","prepack":"npm run build"},"devDependencies":{"@clipboard-health/scout-cli-kit":"*","@clipboard-health/scout-config":"*","@clipboard-health/scout-daemon-client":"*","@clipboard-health/scout-logger":"*","@clipboard-health/scout-protocol":"*","@inquirer/checkbox":"^5.1.5","@inquirer/prompts":"^7.2.1","@types/node":"^20.17.10","commander":"^12.1.0","esbuild":"^0.27.4","pino":"^9.5.0","pino-pretty":"^13.0.0","tsx":"^4.19.2","typescript":"^5.8.0","vitest":"^4.1.0"},"nx":{"name":"scout-browser"},"_id":"@clipboard-health/scout-browser@0.4.8","gitHead":"7dd68e8682f4b55b4a3de790fed1030edea32c24","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-qKtD/bPEUfGiijMxEKk0uQyPHU1hF2ThWEVs9cfDLkhsdohBSFGo1ChPd+arbBlOROL1aXlUAfX6jtShzuzKbw==","shasum":"6475b4612851e1358998f15b769f8d87dd30faee","tarball":"https://registry.npmjs.org/@clipboard-health/scout-browser/-/scout-browser-0.4.8.tgz","fileCount":5,"unpackedSize":4088297,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCs2vU+mJDNG2cJWA+uqXh/zSTp67tIoaLBUBLmVaYs+wIgD9ooyv3Y2Couryvs0DVl2chOoY/g+VAV/MELEZj2G3s="}]},"_npmUser":{"name":"sharedenginner_cbh","email":"shared.engineer@clipboardhealth.com"},"directories":{},"maintainers":[{"name":"mikecookcbh","email":"mike.cook@clipboardhealth.com"},{"name":"sharedenginner_cbh","email":"shared.engineer@clipboardhealth.com"},{"name":"user_engineer","email":"user_engineer@clipboardhealth.com"},{"name":"clipboard_engineering","email":"shared.engineer+npm@clipboardhealth.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/scout-browser_0.4.8_1788978497394_0.9290654133901892"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-29T19:56:59.991Z","modified":"2026-09-09T18:28:17.955Z","0.4.5":"2026-06-29T19:57:00.350Z","0.4.6":"2026-06-29T20:33:28.731Z","0.4.7":"2026-08-04T15:56:24.541Z","0.4.8":"2026-09-09T18:28:17.772Z"},"bugs":{"url":"https://github.com/ClipboardHealth/scout/issues"},"license":"MIT","homepage":"https://github.com/ClipboardHealth/scout#readme","keywords":["browser-automation","playwright","ai-agent","scripting","cli","headless"],"repository":{"type":"git","url":"git+https://github.com/ClipboardHealth/scout.git","directory":"apps/scout-browser"},"description":"Browser-automation CLI. Supervises the embedded scout-daemon and exposes a scriptable API over named-page persistent browsers.","maintainers":[{"name":"mikecookcbh","email":"mike.cook@clipboardhealth.com"},{"name":"sharedenginner_cbh","email":"shared.engineer@clipboardhealth.com"},{"name":"user_engineer","email":"user_engineer@clipboardhealth.com"},{"name":"clipboard_engineering","email":"shared.engineer+npm@clipboardhealth.com"}],"readme":"# @clipboard-health/scout-browser\n\n> `scout-browser` — the browser-automation engine for\n> [Scout](https://github.com/ClipboardHealth/scout). Run sandboxed JavaScript against a real Chromium with\n> persistent, named pages. This is **one-off** automation — nothing is recorded. For capture-enabled QA\n> sessions with a `report.html`, use [`@clipboard-health/scout-cli`](https://www.npmjs.com/package/@clipboard-health/scout-cli).\n\n[![npm](https://img.shields.io/npm/v/@clipboard-health/scout-browser.svg)](https://www.npmjs.com/package/@clipboard-health/scout-browser)\n[![license](https://img.shields.io/npm/l/@clipboard-health/scout-browser.svg)](https://github.com/ClipboardHealth/scout)\n\nScripts are plain async JavaScript in a QuickJS sandbox with a Playwright-like API — no `require`,\n`process`, `fs`, or `fetch`; just a pre-connected `browser`, `console`, and a few file helpers. A\nbackground daemon owns the real Chromium and starts automatically when needed. Use it to navigate,\nclick, fill, scrape, screenshot, or check a page — fast.\n\n## Install\n\n```bash\nnpm i -g @clipboard-health/scout-browser   # adds the `scout-browser` command\nscout-browser install        # one-time: download Chromium + runtime into ~/.scout\n```\n\nNo global install? Use `npx @clipboard-health/scout-browser …`.\n\n## Quickstart\n\n```bash\n# pipe a script via stdin\necho 'const p = await browser.getPage(\"main\");\nawait p.goto(\"https://example.com\");\nconsole.log(await p.title());' | scout-browser run\n\n# or run a file\nscout-browser run ./script.js\n```\n\n`run` exits non-zero if the script throws, so it composes in shell pipelines and CI.\n\n## Commands\n\n| Command | What it does |\n| --- | --- |\n| `scout-browser run <FILE>` | Run a script file in the sandbox. |\n| `scout-browser run` *(stdin)* | With no file, reads the script from stdin (`… \\| scout-browser run`). |\n| `scout-browser browsers` | List the daemon-managed browser instances currently running. |\n| `scout-browser status` | Show daemon status. |\n| `scout-browser install` | Install the embedded runtime (Chromium + Playwright + QuickJS) into `~/.scout`. |\n| `scout-browser stop` | Stop the background daemon and every browser it's running. |\n\nRun `scout-browser --help` for the full API reference and `scout-browser <command> --help` for\nper-command detail.\n\n## Global flags\n\n| Flag | Effect |\n| --- | --- |\n| `--browser <NAME>` | Use a specific named, daemon-managed browser instance (reuse state across runs). |\n| `--connect [URL]` | Attach to an already-running Chrome instead of the daemon's Chromium. Bare `--connect` auto-detects; pass a CDP URL like `--connect=http://localhost:9222` to target one explicitly. |\n| `--headless` | Launch the daemon-managed Chromium with no visible window. |\n| `--ignore-https-errors` | Ignore HTTPS certificate errors. |\n| `--timeout <SECONDS>` | Maximum script execution time (fails fast instead of hanging). |\n| `--inject-script <PATH>` | Pre-load a JavaScript file on every page in the context (repeatable). |\n| `-v, --verbose` | Verbose diagnostics on stderr. |\n| `--json` | Machine-readable JSON diagnostics on stderr. |\n\n### Drive your real, logged-in browser\n\n`--connect` attaches to a Chrome you already have open — handy for flows behind a login. Start Chrome\nwith remote debugging, then connect:\n\n```bash\n# launch (or relaunch) Chrome with a debugging port, then:\nscout-browser --connect run ./scrape-dashboard.js\n```\n\n## Scripting\n\n```js\nconst page = await browser.getPage(\"main\");          // named, persistent page\nawait page.goto(\"https://news.ycombinator.com\", { waitUntil: \"domcontentloaded\" });\n\nconst titles = await page.evaluate(() =>\n  [...document.querySelectorAll(\"span.titleline > a\")].slice(0, 10).map((a) => a.textContent)\n);\nconsole.log(JSON.stringify(titles));                   // stdout is the result\n\nawait saveScreenshot(await page.screenshot(), \"hn.png\");   // saved under ~/.scout/tmp/\n```\n\n- **Pages** — `browser.getPage(name)`, `browser.newPage()`, `browser.listPages()`,\n  `browser.closePage(name)`. Pages are full Playwright `Page`s (`goto`, `click`, `fill`, `locator`,\n  `evaluate`, `getByRole`, `waitForSelector`, `screenshot`, …).\n- **Files** (sandboxed to `~/.scout/tmp/`) — `saveScreenshot(buffer, name)`, `writeFile(name, data)`,\n  `readFile(name)`.\n- **Limits** — no module system, no Node APIs; CPU and wall-clock are bounded (raise the budget with\n  `--timeout`). Values crossing `evaluate` must be JSON-serializable.\n\nFull reference:\n[scout-scripting](https://github.com/ClipboardHealth/scout/blob/main/skills/scout-scripting/references/REFERENCE.md).\n\n## Related packages\n\n- [`@clipboard-health/scout-cli`](https://www.npmjs.com/package/@clipboard-health/scout-cli) — record verifiable QA **sessions**\n  (trace/video/HAR/console) and render a report.\n- [`@clipboard-health/scout-ui`](https://www.npmjs.com/package/@clipboard-health/scout-ui) — browse recorded sessions.\n- [`create-scout`](https://www.npmjs.com/package/create-scout) — `npm create scout` guided setup.\n\nMIT · [source](https://github.com/ClipboardHealth/scout)\n","readmeFilename":"README.md"}