{"_id":"@aluvia/sdk","_rev":"11-510be6d67228a032bea261c71d684626","name":"@aluvia/sdk","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@aluvia/sdk","version":"1.0.0","keywords":["proxy","ai-agent","playwright","puppeteer","aluvia"],"author":{"name":"Aluvia"},"license":"MIT","_id":"@aluvia/sdk@1.0.0","maintainers":[{"name":"denniskrol","email":"dennis@xtrella.com"}],"homepage":"https://aluvia.io","bugs":{"url":"https://github.com/aluvia-connect/sdk-node/issues"},"dist":{"shasum":"c94c8b3979e9ffb6b6d4d8a4896aa93829fc2a37","tarball":"https://registry.npmjs.org/@aluvia/sdk/-/sdk-1.0.0.tgz","fileCount":46,"integrity":"sha512-Rk5LVGZktwGNgVjo2VYQl3nCPVAW8FzwsFnftiBS/KyaQhZx1kBhvHKGnBElk5Xvx6gg0xokYZrTPz28nEKEog==","signatures":[{"sig":"MEUCIQCpxs2I6dHM603XQzihTxfRRYju3sKKfn7PQ5XQtpCDmAIgVYquBM7RyXwosB5PBaXFDSTHMeQffxK1rn3d+AP/ujo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151631},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./package.json":"./package.json"},"gitHead":"bb5429a89e79e8862e709b8ec414b11cc4c42560","scripts":{"lint":"prettier --check src test","test":"node --import tsx --test test/integration.test.ts","build":"tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node -e \"require('fs').mkdirSync('dist/cjs',{recursive:true});require('fs').writeFileSync('dist/cjs/package.json','{\\\"type\\\":\\\"commonjs\\\"}')\"","prepare":"npm run build","lint:fix":"prettier --write src test"},"_npmUser":{"name":"denniskrol","email":"dennis@xtrella.com"},"deprecated":"Deprecated. Aluvia is a local CLI, not an MCP. Use npx aluvia-cli setup. https://aluvia.io/docs","repository":{"url":"git+https://github.com/aluvia-connect/sdk-node.git","type":"git"},"_npmVersion":"11.6.2","description":"Aluvia SDK for Node.js - local smart proxy for automation workloads and AI agents","directories":{},"_nodeVersion":"22.21.0","dependencies":{"undici":"^6.22.0","proxy-chain":"^2.6.1","http-proxy-agent":"^7.0.2","https-proxy-agent":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","axios":"^1.13.2","prettier":"^3.4.2","typescript":"^5.9.3","@types/node":"^24.10.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0_1768196344965_0.856910584245886","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aluvia/sdk","version":"1.1.0","keywords":["proxy","ai-agent","playwright","puppeteer","aluvia"],"author":{"name":"Aluvia"},"license":"MIT","_id":"@aluvia/sdk@1.1.0","maintainers":[{"name":"denniskrol","email":"dennis@xtrella.com"}],"homepage":"https://aluvia.io","bugs":{"url":"https://github.com/aluvia-connect/sdk-node/issues"},"dist":{"shasum":"764d86f89d1d2c060d8c323c14510efe82747042","tarball":"https://registry.npmjs.org/@aluvia/sdk/-/sdk-1.1.0.tgz","fileCount":46,"integrity":"sha512-0i1ms0wKQnJx216yxzNU0Lpyup34zXDUsbj/j8H0tK6XS2RszR/yrDEPO1m8c/X7FmbidDeiSj++8Jxfwl9VzA==","signatures":[{"sig":"MEUCIFXS7uQHQ65GM5Snrms2Bd+umuw/MWfI4g1l/FQgrozfAiEAkuzbk4JT8oYFzGU8TW+Nus9I/IMlMwoXrfm1kQYBUp4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161428},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./package.json":"./package.json"},"gitHead":"cb3b47e84d9a754174baccee3c41dcc9cc3ffd84","scripts":{"lint":"prettier --check src test","test":"node --import tsx --test test/integration.test.ts","build":"tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node -e \"require('fs').mkdirSync('dist/cjs',{recursive:true});require('fs').writeFileSync('dist/cjs/package.json','{\\\"type\\\":\\\"commonjs\\\"}')\"","prepare":"npm run build","lint:fix":"prettier --write src test"},"_npmUser":{"name":"denniskrol","email":"dennis@xtrella.com"},"deprecated":"Deprecated. Aluvia is a local CLI, not an MCP. Use npx aluvia-cli setup. https://aluvia.io/docs","repository":{"url":"git+https://github.com/aluvia-connect/sdk-node.git","type":"git"},"_npmVersion":"11.6.2","description":"Aluvia SDK for Node.js - local smart proxy for automation workloads and AI agents","directories":{},"_nodeVersion":"22.21.0","dependencies":{"undici":"^6.22.0","proxy-chain":"^2.6.1","http-proxy-agent":"^7.0.2","https-proxy-agent":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","axios":"^1.13.2","prettier":"^3.4.2","typescript":"^5.9.3","@types/node":"^24.10.2"},"peerDependencies":{"playwright":"^1.0.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.1.0_1769419146284_0.7630935200904685","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@aluvia/sdk","version":"1.3.0","keywords":["proxy","ai-agent","playwright","puppeteer","aluvia","mcp","model-context-protocol"],"author":{"name":"Aluvia"},"license":"MIT","_id":"@aluvia/sdk@1.3.0","maintainers":[{"name":"denniskrol","email":"dennis@xtrella.com"}],"homepage":"https://aluvia.io","bugs":{"url":"https://github.com/aluvia-connect/sdk-node/issues"},"bin":{"aluvia":"dist/esm/bin/cli.js","aluvia-mcp":"dist/esm/bin/mcp-server.js","aluvia-sdk":"dist/esm/bin/cli.js"},"dist":{"shasum":"0aa1b6079c8c5345eba46108fff1b10bb9f3a32b","tarball":"https://registry.npmjs.org/@aluvia/sdk/-/sdk-1.3.0.tgz","fileCount":91,"integrity":"sha512-ihaDtgCXO06T/QCg12/nC//ba7qZx51ETABnak6PjtxyVwZY0M4XOhczq0qb/904lb3QIDRlmVfzQze9KyXw9Q==","signatures":[{"sig":"MEYCIQCCOSKvxTcCe+S1Ygqu0+/YPnqMuOBhBie4vcxeALBgUQIhAJSDfoywdXYDLVr/7KzfUL9np2QLAVqve+vmkEdW5MRf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356260},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./package.json":"./package.json"},"gitHead":"295bc2e090ceebb3c54cb3cf40fbd597e413d860","scripts":{"lint":"prettier --check src test","test":"node --import tsx --test test/integration.test.ts","build":"tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node -e \"require('fs').mkdirSync('dist/cjs',{recursive:true});require('fs').writeFileSync('dist/cjs/package.json','{\\\"type\\\":\\\"commonjs\\\"}')\"","prepare":"npm run build","lint:fix":"prettier --write src test"},"_npmUser":{"name":"denniskrol","email":"dennis@xtrella.com"},"deprecated":"Deprecated. Aluvia is a local CLI, not an MCP. Use npx aluvia-cli setup. https://aluvia.io/docs","repository":{"url":"git+https://github.com/aluvia-connect/sdk-node.git","type":"git"},"_npmVersion":"11.8.0","description":"Aluvia SDK for Node.js - local smart proxy for automation workloads and AI agents","directories":{},"_nodeVersion":"22.21.0","dependencies":{"undici":"^6.22.0","playwright":"^1.58.2","proxy-chain":"^2.6.1","http-proxy-agent":"^7.0.2","https-proxy-agent":"^7.0.6","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","axios":"^1.13.2","prettier":"^3.4.2","typescript":"^5.9.3","@types/node":"^24.10.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.3.0_1770951940203_0.36449934718431654","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@aluvia/sdk","version":"1.4.0","keywords":["proxy","ai-agent","playwright","puppeteer","aluvia","mcp","model-context-protocol"],"author":{"name":"Aluvia"},"license":"MIT","_id":"@aluvia/sdk@1.4.0","maintainers":[{"name":"denniskrol","email":"dennis@xtrella.com"}],"homepage":"https://aluvia.io","bugs":{"url":"https://github.com/aluvia-connect/sdk-node/issues"},"bin":{"aluvia":"dist/esm/bin/cli.js","aluvia-sdk":"dist/esm/bin/cli.js"},"dist":{"shasum":"5bdea807c8358ed20c77be2ea9be0b2d1368cc63","tarball":"https://registry.npmjs.org/@aluvia/sdk/-/sdk-1.4.0.tgz","fileCount":94,"integrity":"sha512-fRtI0HkebJ4NcKeDZ+Pyok3WP/EWMY2hiy+5AQnvKUv0GTAhz1axnnSp83DiSVUyH97M3l2Jy3EMT0x8uDSttg==","signatures":[{"sig":"MEUCIQD8OUK7RVNAFNhtYCoD+Qwo8AGMP+9AEekpGOCnx1qk7QIgAouxAVC2ExWbtt7W3rQwCUwtY/2PQzKXL8zsdLRvgoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":358454},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./cli":{"types":"./dist/types/bin/cli-adapter.d.ts","import":"./dist/esm/bin/cli-adapter.js","require":"./dist/cjs/bin/cli-adapter.js"},"./package.json":"./package.json"},"gitHead":"ce6fbd3e1f92e39e837f39a53b1c1584169ecb17","scripts":{"lint":"prettier --check src test","test":"node --import tsx --test test/integration.test.ts test/mcp-smoke.test.ts","build":"tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node -e \"require('fs').mkdirSync('dist/cjs',{recursive:true});require('fs').writeFileSync('dist/cjs/package.json','{\\\"type\\\":\\\"commonjs\\\"}')\"","prepare":"npm run build","lint:fix":"prettier --write src test","test:mcp":"node mcp/test-stdio.mjs","build:all":"npm run build && npm run build -w @aluvia/mcp"},"_npmUser":{"name":"denniskrol","email":"dennis@xtrella.com"},"deprecated":"Deprecated. Aluvia is a local CLI, not an MCP. Use npx aluvia-cli setup. https://aluvia.io/docs","repository":{"url":"git+https://github.com/aluvia-connect/sdk-node.git","type":"git"},"workspaces":["mcp"],"_npmVersion":"11.8.0","description":"Aluvia SDK for Node.js - local smart proxy for automation workloads and AI agents","directories":{},"_nodeVersion":"22.21.0","dependencies":{"undici":"^6.22.0","playwright":"^1.58.2","proxy-chain":"^2.6.1","http-proxy-agent":"^7.0.2","https-proxy-agent":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","axios":"^1.13.2","prettier":"^3.4.2","typescript":"^5.9.3","@types/node":"^24.10.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.4.0_1770972423938_0.3948030431312568","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@aluvia/sdk","version":"1.4.1","keywords":["proxy","ai-agent","playwright","puppeteer","aluvia","mcp","model-context-protocol"],"author":{"name":"Aluvia"},"license":"MIT","_id":"@aluvia/sdk@1.4.1","maintainers":[{"name":"denniskrol","email":"dennis@xtrella.com"}],"homepage":"https://aluvia.io","bugs":{"url":"https://github.com/aluvia-connect/sdk-node/issues"},"bin":{"aluvia":"dist/esm/bin/cli.js","aluvia-sdk":"dist/esm/bin/cli.js"},"dist":{"shasum":"551548b52147f6984a6100eb5c60f3f085988ff4","tarball":"https://registry.npmjs.org/@aluvia/sdk/-/sdk-1.4.1.tgz","fileCount":85,"integrity":"sha512-l+hrGUr6FMnMI+ZDcjwP63X4TbU0bSC9tDl+2bkYreBGRbasZZRRK+L2oADWzZk95IIeI/GZsw+HTlvO2+4UjA==","signatures":[{"sig":"MEUCICaWdzXB/nEDam31IfcE0wMQLxi749Fo8fHOueNraB31AiEAwMIT5TuvGb3AhInNtG4iGmqh+fWQguVhjChZ5kXxK8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323180},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./cli":{"types":"./dist/types/bin/cli-adapter.d.ts","import":"./dist/esm/bin/cli-adapter.js","require":"./dist/cjs/bin/cli-adapter.js"},"./package.json":"./package.json"},"gitHead":"0491172aecf5ce552e1ce2941275e2f4ad6f3f12","scripts":{"lint":"prettier --check src test","test":"node --import tsx --test test/integration.test.ts test/mcp-smoke.test.ts","build":"tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node -e \"require('fs').mkdirSync('dist/cjs',{recursive:true});require('fs').writeFileSync('dist/cjs/package.json','{\\\"type\\\":\\\"commonjs\\\"}')\"","prepare":"npm run build","lint:fix":"prettier --write src test","test:mcp":"node mcp/test-stdio.mjs","build:all":"npm run build && npm run build -w @aluvia/mcp"},"_npmUser":{"name":"denniskrol","email":"dennis@xtrella.com"},"deprecated":"Deprecated. Aluvia is a local CLI, not an MCP. Use npx aluvia-cli setup. https://aluvia.io/docs","repository":{"url":"git+https://github.com/aluvia-connect/sdk-node.git","type":"git"},"workspaces":["mcp"],"_npmVersion":"11.10.0","description":"Aluvia SDK for Node.js - local smart proxy for automation workloads and AI agents","directories":{},"_nodeVersion":"20.19.6","dependencies":{"undici":"^6.22.0","playwright":"^1.58.2","proxy-chain":"^2.6.1","http-proxy-agent":"^7.0.2","https-proxy-agent":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","axios":"^1.13.2","prettier":"^3.4.2","typescript":"^5.9.3","@types/node":"^24.10.2"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.4.1_1771487935575_0.9525858170744552","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@aluvia/sdk","version":"2.0.0","keywords":["proxy","ai-agent","playwright","puppeteer","aluvia"],"author":{"name":"Aluvia"},"license":"MIT","_id":"@aluvia/sdk@2.0.0","maintainers":[{"name":"denniskrol","email":"dennis@xtrella.com"}],"homepage":"https://aluvia.io","bugs":{"url":"https://github.com/aluvia-connect/sdk-node/issues"},"dist":{"shasum":"77ae75c89d873ddebe11ca4224cad0483e0c356a","tarball":"https://registry.npmjs.org/@aluvia/sdk/-/sdk-2.0.0.tgz","fileCount":59,"integrity":"sha512-QDtuLrWZccxFiO/FXb8x+OI5ARL43ht9bWP0vm63FdCMvyKe+a4sZ/uiGDLzxwGFEsWNJnPuI/1CS59ex0N5bw==","signatures":[{"sig":"MEUCIQDTnZBFbM/v/hTvwikCsFP5i3LNl4pOA4RVHcYmAXwjegIgBE5ZAVc85v3zWlt40Zvgz3DTwCohX5eMxcYGgf3g1Vw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235359},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./package.json":"./package.json"},"gitHead":"762ca4dc9cb23a46fb29ee475af873dd93cb7552","scripts":{"lint":"prettier --check src test","test":"node --import tsx --test test/*.test.ts","build":"tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node -e \"require('fs').mkdirSync('dist/cjs',{recursive:true});require('fs').writeFileSync('dist/cjs/package.json','{\\\"type\\\":\\\"commonjs\\\"}')\"","lint:fix":"prettier --write src test"},"_npmUser":{"name":"denniskrol","email":"dennis@xtrella.com"},"deprecated":"Deprecated. Aluvia is a local CLI, not an MCP. Use npx aluvia-cli setup. https://aluvia.io/docs","repository":{"url":"git+https://github.com/aluvia-connect/sdk-node.git","type":"git"},"_npmVersion":"11.8.0","description":"Aluvia SDK for Node.js - local smart proxy for automation workloads and AI agents","directories":{},"_nodeVersion":"22.21.0","dependencies":{"undici":"^6.22.0","proxy-chain":"^2.6.1","http-proxy-agent":"^7.0.2","https-proxy-agent":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","axios":"^1.13.2","prettier":"^3.4.2","playwright":"^1.58.2","typescript":"^5.9.3","@types/node":"^24.10.2"},"peerDependencies":{"playwright":"^1.0.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.0_1771812716271_0.27074476869254105","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@aluvia/sdk","version":"2.0.1","keywords":["proxy","ai-agent","playwright","puppeteer","aluvia"],"author":{"name":"Aluvia"},"license":"MIT","_id":"@aluvia/sdk@2.0.1","maintainers":[{"name":"denniskrol","email":"dennis@xtrella.com"}],"homepage":"https://aluvia.io","bugs":{"url":"https://github.com/aluvia-connect/sdk-node/issues"},"dist":{"shasum":"4291df3ae3cfb64a5e3c35af0fe9ef9a3446975b","tarball":"https://registry.npmjs.org/@aluvia/sdk/-/sdk-2.0.1.tgz","fileCount":59,"integrity":"sha512-Z+xVhWBw1bsbt6XtRj7d5A1UVtcywmdqFBgx1OlGjB1BvMauEDxTfX/zxZJh9JVpSn/6Bhl1ZOjXlt+JXWgpMQ==","signatures":[{"sig":"MEUCIQC6q/cZy7gsA7/+Z/HXJkk1aGM4WSxx/dumMsks/5NNpQIgJajnSkHOy6q4+fxdum93sn3FacH9W+x9nkapC1gY818=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235660},"main":"./dist/cjs/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./package.json":"./package.json"},"gitHead":"745cc8cb3050c77c21452b02aed096232c7ac3af","scripts":{"lint":"prettier --check src test","test":"node --import tsx --test test/*.test.ts","build":"tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node -e \"require('fs').mkdirSync('dist/cjs',{recursive:true});require('fs').writeFileSync('dist/cjs/package.json','{\\\"type\\\":\\\"commonjs\\\"}')\"","lint:fix":"prettier --write src test"},"_npmUser":{"name":"denniskrol","email":"dennis@xtrella.com"},"deprecated":"Deprecated. Aluvia is a local CLI, not an MCP. Use npx aluvia-cli setup. https://aluvia.io/docs","repository":{"url":"git+https://github.com/aluvia-connect/sdk-node.git","type":"git"},"_npmVersion":"11.8.0","description":"Aluvia SDK for Node.js - local smart proxy for automation workloads and AI agents","directories":{},"_nodeVersion":"22.21.0","dependencies":{"undici":"^6.22.0","proxy-chain":"^2.6.1","http-proxy-agent":"^7.0.2","https-proxy-agent":"^7.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","axios":"^1.13.2","prettier":"^3.4.2","playwright":"^1.58.2","typescript":"^5.9.3","@types/node":"^24.10.2"},"peerDependencies":{"playwright":"^1.0.0"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.1_1773629392645_0.8197620492333773","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-12T05:39:04.859Z","modified":"2026-08-31T13:00:37.200Z","1.0.0":"2026-01-12T05:39:05.104Z","1.1.0":"2026-01-26T09:19:06.416Z","1.3.0":"2026-02-13T03:05:40.355Z","1.4.0":"2026-02-13T08:47:04.085Z","1.4.1":"2026-02-19T07:58:55.759Z","2.0.0":"2026-02-23T02:11:56.441Z","2.0.1":"2026-03-16T02:49:52.794Z"},"bugs":{"url":"https://github.com/aluvia-connect/sdk-node/issues"},"author":{"name":"Aluvia"},"license":"MIT","homepage":"https://aluvia.io","keywords":["proxy","ai-agent","playwright","puppeteer","aluvia"],"repository":{"url":"git+https://github.com/aluvia-connect/sdk-node.git","type":"git"},"description":"Aluvia SDK for Node.js - local smart proxy for automation workloads and AI agents","maintainers":[{"name":"biggyc","email":"chris@xtrella.com"},{"name":"denniskrol","email":"dennis@xtrella.com"},{"name":"herbertxtrella","email":"herbert@xtrella.com"}],"readme":"# @aluvia/sdk\n\nCore SDK for Aluvia — a local smart proxy for automation workloads and AI agents. Route traffic through premium US mobile carrier IPs and bypass 403s, CAPTCHAs, and WAFs.\n\nThis package provides the programmatic API: `AluviaClient`, `AluviaApi`, `connect()`, and framework adapters (Playwright, Puppeteer, Selenium, Axios, got, fetch).\n\n---\n\n## Table of Contents\n\n- [Get an Aluvia API Key](#get-an-aluvia-api-key)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [What's Included](#whats-included)\n- [AluviaClient](#aluviaclient)\n- [AluviaApi](#aluviaapi)\n- [connect()](#connect)\n- [Framework Adapters](#framework-adapters)\n- [Error Classes](#error-classes)\n- [CLI and MCP](#cli-and-mcp)\n- [Documentation](#documentation)\n- [License](#license)\n\n---\n\n## Get an Aluvia API Key\n\nYou need an API key to use the SDK. Get one from the [Aluvia dashboard](https://dashboard.aluvia.io):\n\n1. Sign up or sign in at [dashboard.aluvia.io](https://dashboard.aluvia.io)\n2. In your account, open the API & SDKs section\n3. Copy your API key\n\nUse it as an environment variable: `export ALUVIA_API_KEY=\"your-api-key\"` or add `ALUVIA_API_KEY=your-api-key` to a `.env` file (never commit it).\n\n---\n\n## Installation\n\n```bash\nnpm install @aluvia/sdk playwright\n```\n\nPlaywright is required for browser automation. For HTTP clients only (Axios, got, fetch), omit Playwright.\n\n---\n\n## Quick Start\n\n```typescript\nimport { AluviaClient } from '@aluvia/sdk';\nimport { chromium } from 'playwright';\n\nconst client = new AluviaClient({\n  apiKey: process.env.ALUVIA_API_KEY!,\n});\n\nconst connection = await client.start();\nconst browser = await chromium.launch({ proxy: connection.asPlaywright() });\nconst page = await browser.newPage();\nawait page.goto('https://example.com');\n\n// ... do your work ...\n\nawait browser.close();\nawait connection.close();\n```\n\nWith auto-launched browser and block detection:\n\n```typescript\nconst client = new AluviaClient({\n  apiKey: process.env.ALUVIA_API_KEY!,\n  startPlaywright: true,\n  blockDetection: { enabled: true, autoUnblock: true },\n});\n\nconst connection = await client.start();\nconst page = await connection.browser!.newPage();\nawait page.goto('https://example.com'); // auto-reloads through Aluvia if blocked\n\nawait connection.close();\n```\n\n---\n\n## What's Included\n\n| Component         | Description                                                                                      |\n| ----------------- | ------------------------------------------------------------------------------------------------ |\n| **AluviaClient**  | Core proxy client. Manages local proxy, config polling, block detection, and framework adapters. |\n| **AluviaApi**     | REST API wrapper for account info, connections, usage, and geo-targeting.                        |\n| **connect()**     | Helper to connect to a browser session started by the CLI (`aluvia session start`).              |\n| **Adapters**      | Proxy config for Playwright, Puppeteer, Selenium, Axios, got, Node fetch.                        |\n| **Error classes** | `MissingApiKeyError`, `InvalidApiKeyError`, `ApiError`, `ProxyStartError`, `ConnectError`.       |\n\n---\n\n## AluviaClient\n\nCreate a client, call `start()` to get a connection, then use adapters or the auto-launched browser.\n\n### Constructor options\n\n| Option            | Type                            | Default                      | Description                                  |\n| ----------------- | ------------------------------- | ---------------------------- | -------------------------------------------- |\n| `apiKey`          | string                          | —                            | **Required.** Your Aluvia API key.           |\n| `connectionId`    | number                          | —                            | Reuse an existing Aluvia connection.         |\n| `startPlaywright` | boolean                         | false                        | Auto-launch Chromium browser.                |\n| `headless`        | boolean                         | true                         | Only with `startPlaywright`.                 |\n| `blockDetection`  | BlockDetectionConfig            | —                            | Enable/configure block detection.            |\n| `localPort`       | number                          | —                            | Local proxy port (auto-assigned if omitted). |\n| `gatewayProtocol` | `\"http\" \\| \"https\"`             | `\"http\"`                     | Gateway protocol.                            |\n| `gatewayPort`     | number                          | 8080 / 8443                  | Gateway port.                                |\n| `pollIntervalMs`  | number                          | 5000                         | Config poll interval.                        |\n| `timeoutMs`       | number                          | —                            | API request timeout.                         |\n| `logLevel`        | `\"silent\" \\| \"info\" \\| \"debug\"` | `\"info\"`                     | Log verbosity.                               |\n| `strict`          | boolean                         | true                         | Throw if config fails to load.               |\n| `apiBaseUrl`      | string                          | `\"https://api.aluvia.io/v1\"` | API base URL.                                |\n\n### Runtime updates\n\nUpdate rules, rotate IP, or change geo without restarting:\n\n```typescript\nawait client.updateRules(['blocked-site.com']);\nawait client.updateSessionId('new-session-id');\nawait client.updateTargetGeo('us');\n```\n\n### Rule patterns\n\n| Pattern         | Matches               |\n| --------------- | --------------------- |\n| `*`             | All hostnames         |\n| `example.com`   | Exact match           |\n| `*.example.com` | Subdomains            |\n| `-example.com`  | Exclude from proxying |\n\n---\n\n## AluviaApi\n\nUse `AluviaApi` for account/connection management without starting a proxy. Also available as `client.api` when using `AluviaClient`.\n\n### Endpoints\n\n| Method                                    | Description                             |\n| ----------------------------------------- | --------------------------------------- |\n| `api.account.get()`                       | Account info (balance, usage)           |\n| `api.account.connections.list()`          | List all connections                    |\n| `api.account.connections.create(body)`    | Create a connection                     |\n| `api.account.connections.get(id)`         | Get connection details                  |\n| `api.account.connections.patch(id, body)` | Update connection (rules, geo, session) |\n| `api.account.connections.delete(id)`      | Delete a connection                     |\n| `api.account.usage.get(params?)`          | Usage stats for date range              |\n| `api.geos.list()`                         | List geo-targeting options              |\n\n### Example\n\n```typescript\nimport { AluviaApi } from '@aluvia/sdk';\n\nconst api = new AluviaApi({ apiKey: process.env.ALUVIA_API_KEY! });\n\nconst account = await api.account.get();\nconsole.log('Balance:', account.balance_gb, 'GB');\n\nconst geos = await api.geos.list();\nconsole.log(\n  'Geos:',\n  geos.map((g) => g.code),\n);\n```\n\n---\n\n## connect()\n\nConnect to a browser session started by the CLI (`aluvia session start`). Useful for AI agents that generate automation code at runtime.\n\n```typescript\nimport { connect } from '@aluvia/sdk';\n\nconst { page, browser, context, disconnect } = await connect();\nconsole.log('URL:', page.url());\n\n// With multiple sessions\nconst conn = await connect('swift-falcon');\n\n// Disconnect when done (session keeps running)\nawait disconnect();\n```\n\n---\n\n## Framework Adapters\n\nThe connection returned by `client.start()` exposes adapter methods:\n\n| Tool       | Method                       | Returns                                   |\n| ---------- | ---------------------------- | ----------------------------------------- |\n| Playwright | `connection.asPlaywright()`  | `{ server, username?, password? }`        |\n| Puppeteer  | `connection.asPuppeteer()`   | `['--proxy-server=...']`                  |\n| Selenium   | `connection.asSelenium()`    | `'--proxy-server=...'`                    |\n| Axios      | `connection.asAxiosConfig()` | `{ proxy: false, httpAgent, httpsAgent }` |\n| got        | `connection.asGotOptions()`  | `{ agent: { http, https } }`              |\n| fetch      | `connection.asUndiciFetch()` | Proxy-enabled `fetch` function            |\n| Node http  | `connection.asNodeAgents()`  | `{ http: Agent, https: Agent }`           |\n\n### Examples\n\n```typescript\n// Playwright\nconst browser = await chromium.launch({ proxy: connection.asPlaywright() });\n\n// Puppeteer\nconst browser = await puppeteer.launch({ args: connection.asPuppeteer() });\n\n// Axios\nconst axiosClient = axios.create(connection.asAxiosConfig());\nawait axiosClient.get('https://example.com');\n\n// Node fetch\nconst myFetch = connection.asUndiciFetch();\nawait myFetch('https://example.com');\n```\n\n---\n\n## Error Classes\n\n| Class                | When thrown                            |\n| -------------------- | -------------------------------------- |\n| `MissingApiKeyError` | `apiKey` not provided or empty         |\n| `InvalidApiKeyError` | API key rejected by server             |\n| `ApiError`           | REST API error (includes status, body) |\n| `ProxyStartError`    | Failed to start local proxy            |\n| `ConnectError`       | Failed to connect to running session   |\n\n```typescript\nimport { MissingApiKeyError, ApiError } from '@aluvia/sdk';\n\ntry {\n  const client = new AluviaClient({ apiKey: process.env.ALUVIA_API_KEY! });\n  await client.start();\n} catch (err) {\n  if (err instanceof MissingApiKeyError) {\n    console.error('Set ALUVIA_API_KEY');\n  } else if (err instanceof ApiError) {\n    console.error('API error:', err.status, err.body);\n  }\n}\n```\n\n---\n\n## CLI and MCP\n\n- **CLI** — `npm install -g @aluvia/cli` for `aluvia session start`, `aluvia session close`, etc.\n- **MCP** — `npm install @aluvia/mcp` for Model Context Protocol integration with Claude, Cursor, etc.\n\n---\n\n## Documentation\n\n| Resource                   | URL                                                                                                                   |\n| -------------------------- | --------------------------------------------------------------------------------------------------------------------- |\n| **Main SDK README**        | [github.com/aluvia-connect/sdk-node](https://github.com/aluvia-connect/sdk-node)                                      |\n| **Client Technical Guide** | [docs/client-technical-guide.md](https://github.com/aluvia-connect/sdk-node/blob/main/docs/client-technical-guide.md) |\n| **API Technical Guide**    | [docs/api-technical-guide.md](https://github.com/aluvia-connect/sdk-node/blob/main/docs/api-technical-guide.md)       |\n| **Aluvia Dashboard**       | [dashboard.aluvia.io](https://dashboard.aluvia.io)                                                                    |\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}