{"_id":"@aladac/claude-browse","_rev":"3-5b1f60f093857b47c419f082a4cef85a","name":"@aladac/claude-browse","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@aladac/claude-browse","version":"0.1.0","keywords":["playwright","webkit","browser","automation","claude","headless"],"author":{"name":"aladac"},"license":"MIT","_id":"@aladac/claude-browse@0.1.0","maintainers":[{"name":"aladac","email":"npm@sazabi.pl"}],"homepage":"https://github.com/aladac/claude-browse#readme","bugs":{"url":"https://github.com/aladac/claude-browse/issues"},"bin":{"claude-browse":"dist/cli.js"},"dist":{"shasum":"743728d968654c811b67046a1c11a33283f0c61a","tarball":"https://registry.npmjs.org/@aladac/claude-browse/-/claude-browse-0.1.0.tgz","fileCount":22,"integrity":"sha512-Je0fZ6ftvfsXL707bn8y7aSqTDpQ7NFdyJKIZGyRepfpgKBIrw+bW/vFSG9thSsdyImR/GgeroE1qwiqWIxDaA==","signatures":[{"sig":"MEUCIGZr5gtzB0/CMRyYrT6NvfJAnoTWBpbDNZmgwGrr/TovAiEA+TxaNLFi3hl0JzliQT4Bu2keksLqkrKA3IpK/jh1obU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53802},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"69aa3facba4e53994466373a33ca537ebf7b6eae","scripts":{"dev":"tsc --watch","fix":"biome check --write src/","lint":"biome lint src/","build":"tsc","check":"biome check src/","start":"node dist/cli.js","format":"biome format src/","lint:fix":"biome lint --write src/","typecheck":"tsc --noEmit","format:fix":"biome format --write src/","prepublishOnly":"npm run build"},"_npmUser":{"name":"aladac","email":"npm@sazabi.pl"},"repository":{"url":"git+https://github.com/aladac/claude-browse.git","type":"git"},"_npmVersion":"11.7.0","description":"Headless browser automation for Claude Code using Playwright WebKit","directories":{},"_nodeVersion":"25.2.1","dependencies":{"chalk":"^5.6.2","express":"^5.2.1","playwright":"^1.41.0","log-symbols":"^7.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.11.0","@biomejs/biome":"^1.9.0","@types/express":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/claude-browse_0.1.0_1770407047923_0.16277547302973105","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aladac/claude-browse","version":"0.1.1","keywords":["playwright","webkit","browser","automation","claude","headless","mcp","model-context-protocol"],"author":{"name":"aladac"},"license":"MIT","_id":"@aladac/claude-browse@0.1.1","maintainers":[{"name":"aladac","email":"npm@sazabi.pl"}],"homepage":"https://github.com/aladac/claude-browse#readme","bugs":{"url":"https://github.com/aladac/claude-browse/issues"},"bin":{"claude-browse":"dist/cli.js","claude-browse-mcp":"dist/mcp.js"},"dist":{"shasum":"246625d40568c789f80797f16a3fac299deee06e","tarball":"https://registry.npmjs.org/@aladac/claude-browse/-/claude-browse-0.1.1.tgz","fileCount":26,"integrity":"sha512-fAUcVoslak3W/oyatxKQJhLV5FJVBquhqfI2xflF39J+RtDeyuva+mdM7EWL/jbi8X1SNuUq14HYoOdcVNO4ag==","signatures":[{"sig":"MEUCIHipyqhr7ubwYlwvwZjUoiuHKzW5/LBMiWGppiVnebiFAiEAzENdfbp2IXVdqDwqiH6rGBX30jvTWjIN9ifV51H8AX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aladac%2fclaude-browse@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":63479},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"402559853d7bae82c5eca68a5adc0bf1dab35ed0","scripts":{"dev":"tsc --watch","fix":"biome check --write src/","lint":"biome lint src/","build":"tsc","check":"biome check src/","start":"node dist/cli.js","format":"biome format src/","lint:fix":"biome lint --write src/","typecheck":"tsc --noEmit","format:fix":"biome format --write src/","prepublishOnly":"npm run build"},"_npmUser":{"name":"aladac","email":"npm@sazabi.pl"},"repository":{"url":"git+https://github.com/aladac/claude-browse.git","type":"git"},"_npmVersion":"10.8.2","description":"Headless browser automation for Claude Code using Playwright WebKit","directories":{},"_nodeVersion":"20.20.0","dependencies":{"chalk":"^5.6.2","express":"^5.2.1","playwright":"^1.41.0","log-symbols":"^7.0.1","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.11.0","@biomejs/biome":"^1.9.0","@types/express":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/claude-browse_0.1.1_1770408354476_0.9291436508792179","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aladac/claude-browse","version":"0.1.2","description":"Headless browser automation for Claude Code using Playwright WebKit","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"claude-browse":"dist/cli.js","claude-browse-mcp":"dist/mcp.js"},"scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/cli.js","lint":"biome lint src/","lint:fix":"biome lint --write src/","format":"biome format src/","format:fix":"biome format --write src/","check":"biome check src/","fix":"biome check --write src/","typecheck":"tsc --noEmit","test:unit":"vitest run --coverage --passWithNoTests","test:integration":"vitest run --coverage --config vitest.integration.config.ts","test:watch":"vitest","test:all":"vitest run --coverage --config vitest.all.config.ts","test":"npm run fix && npm run typecheck && npm run test:all && npm run build","coverage":"npm run test:all && open coverage/index.html","prepublishOnly":"npm run build"},"keywords":["playwright","webkit","browser","automation","claude","headless","mcp","model-context-protocol"],"author":{"name":"aladac"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aladac/claude-browse.git"},"engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.26.0","chalk":"^5.6.2","express":"^5.2.1","log-symbols":"^7.0.1","playwright":"^1.41.0"},"devDependencies":{"@biomejs/biome":"^1.9.0","@types/express":"^5.0.6","@types/node":"^20.11.0","@types/supertest":"^6.0.3","@vitest/coverage-v8":"^4.0.18","supertest":"^7.2.2","typescript":"^5.3.0","vitest":"^4.0.18"},"_id":"@aladac/claude-browse@0.1.2","gitHead":"2b70c4d477d32040e7f3b24ad217f613adb542e1","bugs":{"url":"https://github.com/aladac/claude-browse/issues"},"homepage":"https://github.com/aladac/claude-browse#readme","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-lcr+nvLfZe36FuMF7b+XxNbH2ytAISz9ZH4MjoGvUYO+aeVRqyCgTZNI5otFvlHcPjWpQoV1WE2y4KXlU1O4YQ==","shasum":"0f80fe14444185b17752f2597b59b6df64213302","tarball":"https://registry.npmjs.org/@aladac/claude-browse/-/claude-browse-0.1.2.tgz","fileCount":46,"unpackedSize":121611,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aladac%2fclaude-browse@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICPNVvR9aYul2fwbPeRcJXdDzRZIu8fe2zYPR7fp58VoAiEAxQI6CaiQphb+KKSztX9XLQifZhtuImK/tHzVL3mUZjo="}]},"_npmUser":{"name":"aladac","email":"npm@sazabi.pl"},"directories":{},"maintainers":[{"name":"aladac","email":"npm@sazabi.pl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-browse_0.1.2_1770411142388_0.5766572536604129"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-06T19:44:07.814Z","modified":"2026-02-06T20:52:22.795Z","0.1.0":"2026-02-06T19:44:08.075Z","0.1.1":"2026-02-06T20:05:54.679Z","0.1.2":"2026-02-06T20:52:22.518Z"},"bugs":{"url":"https://github.com/aladac/claude-browse/issues"},"author":{"name":"aladac"},"license":"MIT","homepage":"https://github.com/aladac/claude-browse#readme","keywords":["playwright","webkit","browser","automation","claude","headless","mcp","model-context-protocol"],"repository":{"type":"git","url":"git+https://github.com/aladac/claude-browse.git"},"description":"Headless browser automation for Claude Code using Playwright WebKit","maintainers":[{"name":"aladac","email":"npm@sazabi.pl"}],"readme":"# @aladac/claude-browse\n\n[![npm version](https://img.shields.io/npm/v/@aladac/claude-browse.svg)](https://www.npmjs.com/package/@aladac/claude-browse)\n[![CI](https://github.com/aladac/claude-browse/actions/workflows/ci.yml/badge.svg)](https://github.com/aladac/claude-browse/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js](https://img.shields.io/node/v/@aladac/claude-browse.svg)](https://nodejs.org)\n\nHeadless browser automation for Claude Code using Playwright WebKit.\n\n## Installation\n\n```bash\nnpm install @aladac/claude-browse\nnpx playwright install webkit\n```\n\n## CLI Usage\n\n```bash\n# Take a screenshot\nclaude-browse https://example.com\n\n# Custom viewport and output\nclaude-browse -o page.png -w 1920 -h 1080 https://example.com\n\n# Query elements\nclaude-browse -q \"a[href]\" https://example.com\nclaude-browse -q \"img\" -j https://example.com  # JSON output\n\n# Click and interact\nclaude-browse -c \"button.submit\" https://example.com\nclaude-browse -t \"input[name=q]=hello\" -c \"button[type=submit]\" https://google.com\n\n# Chain actions\nclaude-browse -c \".cookie-accept\" -c \"a.nav-link\" -q \"h1\" https://example.com\n\n# Interactive mode (visible browser)\nclaude-browse -i --headed https://example.com\n```\n\n## Server Mode\n\nStart a persistent browser server that accepts commands via HTTP:\n\n```bash\nclaude-browse -s 3000           # headless\nclaude-browse -s 3000 --headed  # visible browser\n```\n\nSend commands:\n\n```bash\n# Navigate\ncurl -X POST localhost:3000 -d '{\"cmd\":\"goto\",\"url\":\"https://example.com\"}'\n\n# Click\ncurl -X POST localhost:3000 -d '{\"cmd\":\"click\",\"selector\":\"button.submit\"}'\n\n# Type\ncurl -X POST localhost:3000 -d '{\"cmd\":\"type\",\"selector\":\"#search\",\"text\":\"hello\"}'\n\n# Query elements\ncurl -X POST localhost:3000 -d '{\"cmd\":\"query\",\"selector\":\"a[href]\"}'\n\n# Screenshot\ncurl -X POST localhost:3000 -d '{\"cmd\":\"screenshot\",\"path\":\"page.png\"}'\n\n# Get current URL\ncurl -X POST localhost:3000 -d '{\"cmd\":\"url\"}'\n\n# Get page HTML\ncurl -X POST localhost:3000 -d '{\"cmd\":\"html\"}'\n\n# Navigation\ncurl -X POST localhost:3000 -d '{\"cmd\":\"back\"}'\ncurl -X POST localhost:3000 -d '{\"cmd\":\"forward\"}'\ncurl -X POST localhost:3000 -d '{\"cmd\":\"reload\"}'\n\n# Wait\ncurl -X POST localhost:3000 -d '{\"cmd\":\"wait\",\"ms\":2000}'\n\n# Close server\ncurl -X POST localhost:3000 -d '{\"cmd\":\"close\"}'\n```\n\n## MCP Server (Model Context Protocol)\n\nUse with Claude Code or any MCP-compatible client:\n\n```bash\n# Run the MCP server\nclaude-browse-mcp\n```\n\nAdd to Claude Code's MCP config (`~/.claude/settings.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"browser\": {\n      \"command\": \"claude-browse-mcp\"\n    }\n  }\n}\n```\n\nAvailable tools: `goto`, `click`, `type`, `query`, `screenshot`, `url`, `html`, `back`, `forward`, `reload`, `wait`, `eval`\n\n## Programmatic Usage\n\n```typescript\nimport { ClaudeBrowser, startServer } from '@aladac/claude-browse';\n\n// Direct browser control\nconst browser = new ClaudeBrowser({\n  headless: true,\n  width: 1280,\n  height: 800,\n});\n\nawait browser.launch();\nawait browser.goto('https://example.com');\n\nconst elements = await browser.query('a[href]');\nconsole.log(elements);\n\nawait browser.click('button.submit');\nawait browser.type('#input', 'hello');\nawait browser.screenshot('page.png');\n\nawait browser.close();\n\n// Or start a server\nconst server = await startServer({ port: 3000, headless: false });\n// Server runs until closed via HTTP or SIGINT\n```\n\n## API\n\n### ClaudeBrowser\n\n- `launch()` - Launch the browser\n- `close()` - Close the browser\n- `goto(url)` - Navigate to URL\n- `click(selector)` - Click element\n- `type(selector, text)` - Type into input\n- `query(selector)` - Query elements, returns attributes\n- `screenshot(path?, fullPage?)` - Take screenshot\n- `getUrl()` - Get current URL and title\n- `getHtml(full?)` - Get page HTML\n- `back()` / `forward()` / `reload()` - Navigation\n- `wait(ms)` - Wait for timeout\n- `newPage()` - Open new page\n- `executeCommand(cmd)` - Execute a command object\n\n### BrowserServer\n\n- `start()` - Start HTTP server\n- `stop()` - Stop server and close browser\n- `getPort()` - Get server port\n\n## License\n\nMIT\n","readmeFilename":"README.md"}