{"_id":"@agent-browser-io/browser","_rev":"4-bc88820ba00f41ba750f9eb502f7d73d","name":"@agent-browser-io/browser","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@agent-browser-io/browser","version":"0.1.0","_id":"@agent-browser-io/browser@0.1.0","maintainers":[{"name":"agent-browser-io","email":"dev@agent-browser.io"}],"dist":{"shasum":"7b32400a26b2aae32ecd5c91cbb28bf9212b81c4","tarball":"https://registry.npmjs.org/@agent-browser-io/browser/-/browser-0.1.0.tgz","fileCount":10,"integrity":"sha512-APD06Q/EhslXds25i02afue7GSxq0R6bj1+yiS1SmuB65dvzbpKOZyliw6I+LPGAVSBcNjRAqYFKdS9Rw+GHzw==","signatures":[{"sig":"MEYCIQCM3y+KLNOkqjdf/kdZn0BeYx8KYS+KDqO3i89N5lbyzQIhAJL1yMyvoLEUA9oJ+nv+dicUI3DXwF+JNpAtltumHHMc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2694},"main":"dist/cjs/index.js","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"59acebebd9cfdcbd45169c1fff7fae0f01da4c69","scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"agent-browser-io","email":"dev@agent-browser.io"},"_npmVersion":"11.5.1","description":"Browser automation and control for agent-browser-io","directories":{},"_nodeVersion":"24.6.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/browser_0.1.0_1770487749419_0.35133409860573583","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agent-browser-io/browser","version":"0.2.0","_id":"@agent-browser-io/browser@0.2.0","maintainers":[{"name":"agent-browser-io","email":"dev@agent-browser.io"}],"bin":{"agent-browser-cli":"bin/index.cjs"},"dist":{"shasum":"f7615cea65aec3acc23eedad5e2eb5d76ed4cd35","tarball":"https://registry.npmjs.org/@agent-browser-io/browser/-/browser-0.2.0.tgz","fileCount":77,"integrity":"sha512-TV7hH2mo4PpCnNqstKqTN5X2Db20NF+96cVLg11kEVsa9YNpJSrIEb/4m3V6iv3gIO/A3jODHh4YssBZzPV2wA==","signatures":[{"sig":"MEYCIQDiIteD8JIYFpVggdVs0KSgCl2H8qRwUCpuSLVj+TVtawIhAOL2IheDozOfhR2fD8DRnfGN4z/y0db0schXnNLAH7HQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237923},"main":"dist/cjs/index.js","type":"module","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"da97f48c6fafd38e4887f39f9987385cf137c02d","scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"agent-browser-io","email":"dev@agent-browser.io"},"_npmVersion":"11.5.1","description":"Token efficient agent browser","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ai":"^6.0.0","zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.58.2","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/browser_0.2.0_1770563664401_0.11287891400478478","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@agent-browser-io/browser","version":"0.2.1","_id":"@agent-browser-io/browser@0.2.1","maintainers":[{"name":"agent-browser-io","email":"dev@agent-browser.io"}],"bin":{"agent-browser-cli":"bin/index.cjs"},"dist":{"shasum":"958375901768ee7bb89042e1c437d2bc7f2c9d69","tarball":"https://registry.npmjs.org/@agent-browser-io/browser/-/browser-0.2.1.tgz","fileCount":77,"integrity":"sha512-aWgpOVTuWUPglzmMx9kbajHUfjOKfxSuzmu6YCwgpXrBpUO5HjfpfJFP5/W7XgVkCA6+dVcoW5LubbIS1py5ug==","signatures":[{"sig":"MEUCIQD2JGJ7MSEyPolELyuMfB8rEBT1sdU3rzIQpbQOn8e8MAIgZcpsaACxzncaFTANjaLI486GJDyb9XnNumAWoExAGFo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238653},"main":"dist/cjs/index.js","type":"module","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"acbcae5ad2ffa1faf368fb8f4cdcef5e99862fe5","scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"agent-browser-io","email":"dev@agent-browser.io"},"_npmVersion":"11.5.1","description":"Token efficient agent browser","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ai":"^6.0.0","zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"playwright":"^1.58.2","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/browser_0.2.1_1770564305054_0.9740680009628175","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@agent-browser-io/browser","version":"0.3.0","description":"Token efficient agent browser","main":"dist/cjs/index.js","type":"module","module":"dist/esm/index.js","types":"dist/cjs/index.d.ts","exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js","types":"./dist/cjs/index.d.ts"}},"bin":{"agent-browser-cli":"bin/index.cjs"},"scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json","clean":"rm -rf dist","prepublishOnly":"npm run build"},"dependencies":{"@modelcontextprotocol/sdk":"^1.26.0","ai":"^6.0.0","zod":"^4.3.6"},"devDependencies":{"@types/node":"^20.0.0","playwright":"^1.58.2","typescript":"^5.0.0"},"engines":{"node":">=18"},"_id":"@agent-browser-io/browser@0.3.0","gitHead":"785815f405752fc81811b2f94101ab7d91964ede","_nodeVersion":"24.6.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-JGKEMuIx3RjQi3hqTF6G11oGDiRxifzkEUR9FbWTgCUckpmlDJc1dS8AHLNHGpBhDRGLIoVQqkrSf0JPPOsiuA==","shasum":"c70637d744c4b38462df3dd5332eef0471191c4b","tarball":"https://registry.npmjs.org/@agent-browser-io/browser/-/browser-0.3.0.tgz","fileCount":78,"unpackedSize":239661,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC89/Ly99egVWclbAOLNkH0JTw5ZHDo/4b2tNBgDzwOpAiEAkGhFt2HwWSxE1ah5s+6JtGmwhkagkpIsfHRskBfz5oc="}]},"_npmUser":{"name":"agent-browser-io","email":"dev@agent-browser.io"},"directories":{},"maintainers":[{"name":"agent-browser-io","email":"dev@agent-browser.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/browser_0.3.0_1770564873292_0.566450260550891"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-07T18:09:09.348Z","modified":"2026-02-08T15:34:33.597Z","0.1.0":"2026-02-07T18:09:09.545Z","0.2.0":"2026-02-08T15:14:24.564Z","0.2.1":"2026-02-08T15:25:05.193Z","0.3.0":"2026-02-08T15:34:33.478Z"},"description":"Token efficient agent browser","maintainers":[{"name":"agent-browser-io","email":"dev@agent-browser.io"}],"readme":"# @agent-browser-io/browser\n\n**Token efficient agent browser.**\n\nThis package lets AI agents control a real browser ( navigate, click, type, interact via ASCII wireframes ) in a token-efficient way. Use it from [MCP](https://modelcontextprotocol.io) clients (e.g. Cursor, Claude Desktop) or from code with the [Vercel AI SDK](https://sdk.vercel.ai).\n\n**Ways to use:**\n\n- **MCP** — Add the included MCP server to Cursor or another MCP client so the AI can drive a browser (see [How to add MCP](#how-to-add-mcp)).\n- **Vercel AI SDK** — Use `createBrowserTools(browser)` with `generateText({ tools, ... })` in your app (see [Vercel AI SDK](#vercel-ai-sdk)).\n- **CLI** — Run the interactive CLI for manual testing (`npx @agent-browser-io/browser` or `agent-browser-cli` after install).\n\n## Install\n\n```bash\nnpm install @agent-browser-io/browser\n```\n\n## How to add MCP\n\n[MCP](https://modelcontextprotocol.io) (Model Context Protocol) lets AI assistants in Cursor or Claude Desktop use browser tools over stdio. Your AI will be able to launch a browser, open URLs, get wireframes, click, type, scroll, screenshot, and more.\n\n**Run the MCP server (for testing):**\n\n```bash\nnpx @agent-browser-io/browser mcp\n```\n\n**Add to Cursor**\n\n1. Open Cursor settings → **MCP** (or edit your MCP config file, e.g. `~/.cursor/mcp.json` or project `.cursor/mcp.json`).\n2. Add a server entry:\n\n```json\n{\n  \"mcpServers\": {\n    \"agent-browser\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@agent-browser-io/browser\", \"mcp\"]\n    }\n  }\n}\n```\n\n3. Restart Cursor or reload MCP so it picks up the new server. The **agent-browser** tools will appear for the AI to use.\n\n**Other MCP clients (e.g. Claude Desktop)**\n\nUse the same stdio command in your client's config:\n\n- **Command:** `npx` (or full path to `node`)\n- **Args:** `[\"-y\", \"@agent-browser-io/browser\", \"mcp\"]` (or `[\"path/to/bin/index.cjs\", \"mcp\"]`)\n\nThe server speaks JSON-RPC over stdin/stdout; no extra env vars are required.\n\n## Vercel AI SDK\n\nYou can use the same browser automation as **tools** with the [Vercel AI SDK](https://sdk.vercel.ai) and `generateText`. The package exposes `createBrowserTools(browser)`, which returns an object of tools you can pass to `generateText({ tools, ... })`. The `ai` package is included as a dependency.\n\n**Tools:** `launch`, `navigate`, `getWireframe`, `click`, `type`, `fill`, `dblclick`, `hover`, `press`, `select`, `check`, `uncheck`, `scroll`, `screenshot`, `close`. Same toolset as the MCP server, so behavior is consistent.\n\n**Important:** Have the model call the `launch` tool first before other actions (navigate, getWireframe, click, etc.).\n\n**Example:**\n\n```ts\nimport { createBrowserTools, AgentBrowser, DefaultBrowserBackend } from '@agent-browser-io/browser';\nimport { generateText } from 'ai';\nimport { openai } from '@ai-sdk/openai';\n\nconst browser = new AgentBrowser(new DefaultBrowserBackend());\nconst tools = createBrowserTools(browser);\n\nconst { text } = await generateText({\n  model: openai('gpt-4o'),\n  tools,\n  prompt: 'Go to hackernews visit on top 3 news, and summarize their content.',\n});\n// Model will call launch, then navigate, then getWireframe, etc.\n```\n\n## Development\n\nRequires **Node 18+**. Browser automation uses **Playwright** (included as a dev dependency).\n\n```bash\nnpm install\nnpm run build\n```\n\nBuilds to `dist/cjs` (CommonJS) and `dist/esm` (ESM).\n","readmeFilename":"README.md"}