{"_id":"auvezy-terminal-remote","_rev":"30-9f9e8e25ba089290499289e7f97a74ce","name":"auvezy-terminal-remote","dist-tags":{"latest":"0.18.1"},"versions":{"0.3.0":{"name":"auvezy-terminal-remote","version":"0.3.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"UNLICENSED","_id":"auvezy-terminal-remote@0.3.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"703a6c72e66d063856bc57ac517f0e6714075714","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.3.0.tgz","fileCount":19,"integrity":"sha512-q4e0vHZAszoZ+3VtymNBo0cvuv54b15tEgakZYqqfu8/BwyknX7d76Z/WRgseoNLRRIXsB6MpconZ217oXiDBw==","signatures":[{"sig":"MEQCIHeLNS6dojmSn+JchvFi7FDES7PQIlISj7aVrn3MRbb5AiBQLiC9tXWVRfLMNnlWSuivzd/QbPZ0b014BX/Xdd8YFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1845568},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"8117839336e5b9e8f032ef1ec460521e473b43cd","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy 5173","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","node-pty":"^1.0.0","web-push":"^3.6.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/web-push":"^3.6.4","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.3.0_1778051871905_0.8575162023879654","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"auvezy-terminal-remote","version":"0.3.1","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"UNLICENSED","_id":"auvezy-terminal-remote@0.3.1","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"4696dc7be9e102a1ff56d3966a901566c84c369e","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.3.1.tgz","fileCount":19,"integrity":"sha512-+YpjHS2ufG2Gbn3HTXv7/jF5iWPuKL2qwOInBVlrNuGGjoOqUj1LR85KTme6knSWfuweqxSGUzeLdYAyuDA3Kg==","signatures":[{"sig":"MEYCIQDXZczq0gOaC+glu9R6aVdqxYeuClJxHUVJUqfuiNb0kQIhAN4BcTEhrT/WiE80+nHoWPK4wYscBTcGU6OUxnrtz7mu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1846323},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"2a4704c290edf127019b498163ce0fa315b39e50","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy 5173","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","node-pty":"^1.0.0","web-push":"^3.6.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/web-push":"^3.6.4","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.3.1_1778053399568_0.12885454638816918","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"auvezy-terminal-remote","version":"0.4.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"UNLICENSED","_id":"auvezy-terminal-remote@0.4.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"70df7edc23779772a4a95ab265c517738dee69b0","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.4.0.tgz","fileCount":20,"integrity":"sha512-k7bJsArTaBU/+djhS1Gx3jnxQRuEfMmKxgW80yH+vS9XzSupd7ISPumLKlKeZPe5L4LVnUG9LwFRpWFB8c9YGw==","signatures":[{"sig":"MEYCIQD32+C/+KHdAfxbv1m1stYch/WGcOAfcOZ1mej/IhpNsQIhAJ6XgG1/5D0bQI2LcyOYCpaObbSKZ0I/4mnGa+SashNf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2374973},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"3683081f6037d29468de56bf496a3826e0e6bfac","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy 5173","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","node-pty":"^1.0.0","web-push":"^3.6.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/web-push":"^3.6.4","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.4.0_1778107962233_0.11131031417493942","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"auvezy-terminal-remote","version":"0.4.1","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"UNLICENSED","_id":"auvezy-terminal-remote@0.4.1","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"8dd1f96155f72e8352fd39e98c2891bbc694d728","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.4.1.tgz","fileCount":20,"integrity":"sha512-gpPaiLCNywiruIBYfWWE0bCfVUMsXs7ABx/IKHpKWJac0kpotgQP9t1RTNWBmXTeWiSgtqgPLOhb+Jio8Eiqdw==","signatures":[{"sig":"MEYCIQCnjHO6vJIPlSYTBBTdXw2SicmPxBGpmg9PGO99zqv1cQIhAL1ItTu9iW/1GKcmyZNBWuFt3km2ahaqtrNwBcsvhbWQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2375394},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"570a67ac31df738d9e1f1ec07f8ffc3b5634c401","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy 5173","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","node-pty":"^1.0.0","web-push":"^3.6.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/web-push":"^3.6.4","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.4.1_1778109683384_0.43722169563410285","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"auvezy-terminal-remote","version":"0.4.2","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"UNLICENSED","_id":"auvezy-terminal-remote@0.4.2","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"63549fd254bd19e1b20ce4302d61391ce6be32f6","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.4.2.tgz","fileCount":20,"integrity":"sha512-7mdweuMnNZgV2RLHNNGv1N6Bx7FQMLI4wl+3wDzeLeTIa+666nsGAG1yQ5qHrvcAmPqMXDhoESe7LxkZm99cdQ==","signatures":[{"sig":"MEUCIFVUF9iwSY8RDtemN/mOgr9f8eFG+zKnBCClOyqVtdOhAiEA5KR6BJG4GoABka9Ie/LdUjsYc+RDZP+8i8KNgRhraN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2375684},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"024476cc4a7264a683c314fb37ada51d1126f330","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy 5173","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","node-pty":"^1.0.0","web-push":"^3.6.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/web-push":"^3.6.4","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.4.2_1778114090613_0.276316588728738","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"auvezy-terminal-remote","version":"0.4.4","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.4.4","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"3166d0aa5a678f39be02d98aaea29f5cace1f736","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.4.4.tgz","fileCount":20,"integrity":"sha512-CqkEPUwcQ4sybjU/pNlsHX4hEpMni5YnHmJlkW2J5ZdP2KFsbFpMXO4YLZMSBkKjFqJvVKCqwXZRWn2IMBXylg==","signatures":[{"sig":"MEYCIQCgK8j6ZHgbaDoqevQBBtguARmbwW4G8Td9OKAKfLhWegIhANoZVlTLRlTXs82hwqvwPl7VeM3A6u7rdbp8GIMuWcmx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2387584},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"ed612756f3af7f2ccbaa0c797d87bb22affa416f","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy 5173","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","node-pty":"^1.0.0","web-push":"^3.6.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/web-push":"^3.6.4","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.4.4_1778120185555_0.027987259048300572","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"auvezy-terminal-remote","version":"0.4.5","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.4.5","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"fd8dbe3dab2220903da40d987945f6fe3d6551fd","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.4.5.tgz","fileCount":20,"integrity":"sha512-PjRXZ5ZJ/VFIsfoaaiyH8vh9MDD86MzXeXB+BFOxhmofH2p1d7ZbDX0IlywWnGRGfnwLMCG76xyz8rGZzQdBiQ==","signatures":[{"sig":"MEQCIGEPkUkhFYAooCUlTrv82eYfrBtYEG79pYYtlXvzl4CtAiAiDOEVdTIdtUT0vxPGudrBGCQAUKC4VOLX32czuEsu8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2511712},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"dc4538851edca8a756265274be0f6c03cb1dbf62","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy 5173","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","node-pty":"^1.0.0","web-push":"^3.6.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/web-push":"^3.6.4","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.4.5_1778135193847_0.3821051835323319","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"auvezy-terminal-remote","version":"0.5.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.5.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"09e1b690208b71050fd448acf88d2d74032cd987","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.5.0.tgz","fileCount":20,"integrity":"sha512-8PJf6oppb4SGCvbSKUndCdkFsDTdbl3afHF8QRniBjYkqiLiIQrJQjsOfwGSIODeg+dOd+036Ef4mtp/tGaoTw==","signatures":[{"sig":"MEQCIE9iU1xRyTjF69jSyT+NkXZfsXOmy51J37QtMURGGhiJAiBSolo2kcbUFYPAMmLzDSbTFMMAwMu/xXPnc4Ojs7rGng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3230059},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"eaad66755483e56d38a1d6f33879445926b1f0a8","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","node-pty":"^1.0.0","web-push":"^3.6.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/web-push":"^3.6.4","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.5.0_1778249842997_0.5926093355538025","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"auvezy-terminal-remote","version":"0.6.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.6.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"4f9955c3a6b5daf372f8f6d524dc8065a068efd4","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.6.0.tgz","fileCount":20,"integrity":"sha512-fDhJQwJQ0CqmQAsrOU847/h/l5PzDhk+037pY5TZawUlMD32LQ/KIfRYZKQ6LTWy1zaIpHG8zjU5oHhrn3LYFQ==","signatures":[{"sig":"MEUCIQCHT1xIningqtzuCbaqk6dNCghsteycnx54Trio+oHOsgIgGteriSy0SUWlLjx5XTbPbUyMakaS329H9yCsf97+X0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3363015},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"bd8f9c902aa2d060173de7a980c8699dc2a72a81","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.6.0_1778323039092_0.2845453444804633","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"auvezy-terminal-remote","version":"0.7.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.7.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"7afe3822fd7cdf7ab1f83e04297a8251712279e3","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.7.0.tgz","fileCount":20,"integrity":"sha512-bUZ6YML3j5VIjflRtZdZ1EaL3MAZxiskrnJz8MOJnzrBUoJPgZIJkfbFVfPg6jFSrUR4GymgWRzhU8d10O49Eg==","signatures":[{"sig":"MEUCIQCh1rxs1/PDBqWwjQwxaL4yeT3ufdW5IzvT+0/cLqcdXwIgFA82ZEyNJzgXH6bQ44WGiEnpOyDZX3ElT14NZ6RfuOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3427281},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"3ca298d823410d7053e6f8010247b5624150b397","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.7.0_1778409507862_0.9658909476750734","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"auvezy-terminal-remote","version":"0.7.1","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.7.1","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"54a20e0dcc740ae61daa4df6dca451b136cc45b2","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.7.1.tgz","fileCount":20,"integrity":"sha512-2aUxhnxd96nOMoK2bs4aFPWt58S5R3A4ymDmgdIxwkr1x/cWCIMgMZ+a3MMaQwTEMOmdTBL9cPJg/X0Bydg1zQ==","signatures":[{"sig":"MEQCIH32dR8Mc/0rbl+cYb1RO2swunkTetq8Con74Ru4AXVOAiA5FKef+VKdvF1KwYDCpfyMNfsxwGVkxuIDvlGKEgsp6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3447850},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"12ebe33a170a3b6ec945ba4d8a8604824ec6d6ba","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.7.1_1778421189874_0.08308647233037147","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"auvezy-terminal-remote","version":"0.7.2","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.7.2","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"65bf0c81f4b8d212597a13f592c97bf4d726e17b","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.7.2.tgz","fileCount":20,"integrity":"sha512-tgNJVBMBZT4gC9Jc/OrdMKlCFXVxPL5kJtrdxPm+n0bYeJXdrvQlCopYk3GTfOCtBLnyFL+JEFcArdo2UrlhGQ==","signatures":[{"sig":"MEYCIQCB8f8PBtE7qoutWRUqKCxDL5HhGVo3YHkyR8WOi+pG4QIhAIMyqoh0SiyGGeY8WRIGtuQEI1qMAamSL6Gkd8EqSj6Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3448138},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"ea579adbb2377cb49e4db1e9c7489f749c7647d0","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.7.2_1778425059819_0.30843960878607257","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"auvezy-terminal-remote","version":"0.7.3","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.7.3","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"44325064878b072d8598e2080698e1705cbf730d","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.7.3.tgz","fileCount":21,"integrity":"sha512-zzHzauZe/uzi7ITaPLSsAm+46Xn8+MM3d7nd+VMTF9ITcnru4WoIRc5FukYM8EjWE3v6SFW+svPzZLYsVJCJeg==","signatures":[{"sig":"MEUCIFDNM4FuWSFI7ZGNYdyPacsiMIfMc6adwxkrLzMhGT2WAiEAkYyhvqTelRaRJ93bfImFtqLkTH+MINyemRiYQtJTB7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4508819},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"c551cf5a3dcedc1b148021cd402c6989f2d38134","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.7.3_1778435238959_0.6566369042156788","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"auvezy-terminal-remote","version":"0.7.4","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.7.4","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"ac967f2d8141bed06351a2be49715c64f066ce17","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.7.4.tgz","fileCount":21,"integrity":"sha512-mjkIIyF6Q/kyh5Nf/2jM17xCQbqnaQTw3ZOFBR72Owj2eXd+hANOPPUs39ZqgQ9yxo9XR8ORkl7NLyG3HJMi8Q==","signatures":[{"sig":"MEYCIQCxtqW12UoK1cIithQ88DV78oqKCG0ce9nhw6gS42QOGAIhAPgclwmskqixu+MirEj1mD0eTsNnPVypRRe4R0n3yXrX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4512130},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"3f39cfc688554aa00a9dfe23edff0cb9d40ec3b3","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.7.4_1778479800552_0.7155034296304477","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"auvezy-terminal-remote","version":"0.7.5","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.7.5","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"1348d3d2a944d44d7a2d91b134ee6afd24d30e0c","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.7.5.tgz","fileCount":21,"integrity":"sha512-hyFdHfj72mnemsE6+ATL2kJaRSxBh7lbkn7u+rW0wd4Ba/n17SDJfMZNZicMYzVvt3f63pq1SlaDQvutdWMT+g==","signatures":[{"sig":"MEYCIQCN7JTY0ofYEVVaof8jgX9PpadJfGg1ZJkb04lzXFzwvAIhAJMVN0RIFrKUC0bx9qPed8CTDuwzvN2/Rq9znGPt6uvU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4512227},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"0fe84aa201039c373906d375b7126dd13cdb417d","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.7.5_1778492402377_0.8177025504502209","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"auvezy-terminal-remote","version":"0.7.6","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.7.6","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"be355fb043bdaad3b457a68e3a45a92f0fe854a2","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.7.6.tgz","fileCount":21,"integrity":"sha512-sTwJKxTHg8siVFej3FFwXFURKS8zgeb5PHlv2M8c5yJ/vwxlp5lcDL/pMop6OfzPConSIgFv2Cza30e+VUR/qg==","signatures":[{"sig":"MEYCIQDN4SSAVPe16XgtTBYJ01IWrIlQpUXOieGmfdoeHekuyAIhAMAsVaoqVNmhuppLBjemaUcCIEnLZYIC4p1T30CkeFmM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4519377},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"d648899087aa2d0f1e697f0413805a69012088e3","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.7.6_1779155113120_0.3939765438424565","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"auvezy-terminal-remote","version":"0.8.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.8.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"9f5a1b9edcde44296c84fb9bf1838fc5a5d82e8d","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.8.0.tgz","fileCount":385,"integrity":"sha512-NvGOrIKu9fsbZfxRb19fPGNdQCMraCOZUbXhoqJr1NyKFjsICshw1LVDZcu1KBI9ghWZ+6x0hgoUz7Q6FowO4Q==","signatures":[{"sig":"MEUCIGt5Qkix2ezCk1JuF+yrFYF3xSZhy3Y3Irc/5lJlwIpcAiEAnNp7nInxkzYy2K0hwI7xVbb/V1J/OEm+7PgaP2mp/88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15983481},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"47751eccd820d140c443e70c706b9ddbae8dab5a","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.8.0_1779395406635_0.9505390818634798","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"auvezy-terminal-remote","version":"0.9.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.9.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"50ef6d3df914d02d4dc10d833ef580bf492c916a","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.9.0.tgz","fileCount":389,"integrity":"sha512-KJ1z3GRv5hfaFN+mpd3sXoKT5rsW78jROjYKY3XgK7XRkzOnMpp+hRKSgRKItGmLMNLIK8mvTy474aOJF3EX8Q==","signatures":[{"sig":"MEUCIQCO69MT7wCEQz5qUGwgDUjKlStk2X/dlw/FUDwGpAI9HAIgQwXi2RI/LkoRJBn04Ltc7HHkDaAculziHoerHSl2GwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15994706},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"671bbf6bc8b6db132b908dae55f45cd00de70b32","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.9.0_1779433411900_0.5983718907890314","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"auvezy-terminal-remote","version":"0.10.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.10.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"dcda856e10d9d205776944851bc17357ae3a7f78","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.10.0.tgz","fileCount":389,"integrity":"sha512-vQREjp7l/ywtwSm+yOXpu2b5Oye446xw7oXcnUxzFKvdpdCxibaBF4NGM9ImvRFk4QYg60hEoWuR6OCEiiAoPA==","signatures":[{"sig":"MEUCIQDB9eAgazgXNl8DHbRTvr/KZpm21LKELH1LFQL2ty2cwwIgTQXzQ1/SJBA7p7JJqjtrf9DV6NfdXA1Xc4HwKNfp7e4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16007002},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"d341b170b8611f17ea95a489633996bf7d62e194","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.10.0_1779494256165_0.7382755978190125","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"auvezy-terminal-remote","version":"0.11.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.11.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"a75b9f434c86f293f568e6c8706277ced67bc464","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.11.0.tgz","fileCount":389,"integrity":"sha512-rNd0LjxrpuAPFBYicINGWlGbmQ0xsUibYhbu9WUSdTXHa8lD7jdT+xfd3EGYKRUQue+R7xZpFbqvdr3hRobyNA==","signatures":[{"sig":"MEUCIQDIJvA0NJwY3ek5Q+yd8n+Qc9lt4P+wniVjYYnuMPwdcQIgSVODCiRDbQ00tDyrfzFtiontQ/TZ6yLkCy1rqgPCGhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16018402},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"eee840eba927f59046e8f1efc1a0834dd621320b","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.11.0_1780580407115_0.26070921523394874","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"auvezy-terminal-remote","version":"0.12.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.12.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"37635ddc2e394832d7f8b7e2bd0889f5367103fc","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.12.0.tgz","fileCount":390,"integrity":"sha512-BFPLmjzqJWp3fUqb8Si9250HQaDUsJyejqmxTC7iKcz1DfhOjFSFLUFK8VzK1gzm7BgGfmLb7F25cbBp2c4Brw==","signatures":[{"sig":"MEUCIQD/musCCRkYw/stLaKqqT8E+TMPvptuzge2Axxoca3LlwIgT/87sfoxIvhmLppcTyXbA7LtcFWHoQHoqHGBnmX2kAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16025868},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"a28e279a985a7cc8fd0483a21f7143c2a84df4e8","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.12.0_1780956271890_0.330978438742896","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"auvezy-terminal-remote","version":"0.12.1","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.12.1","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"1af5813cabbb6c875f52b7fdc6fb9fc18affaa5e","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.12.1.tgz","fileCount":390,"integrity":"sha512-fKNQIdFZ5xLcj+kOdAhE0vf+5fDG+iQINz4fVDSgY8Y/KT0x6k5jT34Vq6vym9vSSj2yGNxDvmt1NijH3MzjQA==","signatures":[{"sig":"MEUCIHLiVjIbmwbnIbaHUzojvSWLAoNMhZG5CBytAYUCwEHuAiEAicLvhypoH1dfQqCAGH+jZcHTn8idewkXFA4raZ5CLcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16025934},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"07d6f3db42a6e94aa505772cccf8bf38201c6007","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.12.1_1782077579096_0.16964741338492662","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"auvezy-terminal-remote","version":"0.13.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.13.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"0fe8621f4c1fdbd74d77036ba698c89aa9fd686d","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.13.0.tgz","fileCount":390,"integrity":"sha512-BnVw43Uu05o3xWkFW8pz6KsPajVdtkxOEiC69xDTgkXnqBuePBf4POtYZ8ChTo5ExkuHQN8EsOHLsVn56VmkNA==","signatures":[{"sig":"MEQCIHogrdoII55hfJBuG0O4JMwCblWxrf4JXV41uuxUuD7JAiAxhA6k0xUgFidXeKx09laazKy19w/6Zp01vtTJe9qnRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16030324},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"5cd7f33c3bda639ba2b0f1bb4caccf0bd4ca03d6","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.13.0_1786845289001_0.6218135025149429","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"auvezy-terminal-remote","version":"0.14.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.14.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"6560c4a9405663400eb7dbb4dd5801c934f31305","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.14.0.tgz","fileCount":390,"integrity":"sha512-btr/EUAuLTYbIqVEMNbUsiWExXGKnsCvkBKHAwu4DlNnkRPMA+H2HzulmnO31yMB1e+VtWIrZ21XUx5reWBl+A==","signatures":[{"sig":"MEQCIAXWa8s7qyz1gJ3hHnAvisqr37orG8LC6CAVU8dqPtIVAiAyJ/vkAoWvGh02ZKQcp1sAQsHIQv80f3GLp5klUYC6Dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16032793},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"32a9a744b2511c505b6c41ee65097c35ad64fb16","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.14.0_1786849280068_0.7727601300066687","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"auvezy-terminal-remote","version":"0.14.1","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.14.1","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"3aa82e98cd3e205026c47ea45730dfaabb9060a9","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.14.1.tgz","fileCount":390,"integrity":"sha512-dzpsQCiWncK+zraLo/29Jst+B6+YujOZtw5AcTt0OChVhhWWQ7QfZNhEs+iLgXmqFLaYYDS5gIsB+cgXrCMDPQ==","signatures":[{"sig":"MEQCIDxfiwudD86WcP/yzI0zGfyKq8E6C572t9cxYU9FDSHMAiBFa/mZSKS5Cjdno2f0xdJyUd6KLq4wuogOjJ7r+2N3RQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16035435},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"fe27d08b39e83eb27af0526b7849107a988360cc","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.14.1_1786864820259_0.8660093374267921","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"auvezy-terminal-remote","version":"0.15.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.15.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"e2f85136ede2ab3b34c42b8b97c08a5249d701f5","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.15.0.tgz","fileCount":390,"integrity":"sha512-nySfpdoKgwv67Q7TCw7nhF8eSfpkw7frSv2RhLvCZDVWRsb7DEK7FHDaIGc+yP1kYfvdumLpo+GOLFk0E3wRVw==","signatures":[{"sig":"MEYCIQDR1UxK+y8nJQlDNBIM3gu5XJB+SXQXzaTXOWZrSbRLSAIhAKkfbc8aEDUI1JsZ3bq9ofhOpj4vG8NubGRGuVGERqaC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16040862},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"a6eb3923f81b56a790e3a931986dcb6c9e949a9f","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"11.7.0","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.15.0_1787010864187_0.20076844407628425","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"auvezy-terminal-remote","version":"0.16.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.16.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"86421c7862cbbafee23d57010feaf4c805f04821","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.16.0.tgz","fileCount":390,"integrity":"sha512-22+R9GktdxzfNTRQLNOmCdCmPVJNZlpQ8TZT9v9Ksc1hum0AIvMgRG1EOZz1JCHjiVetBiEr2mMSyEb9lxmHnA==","signatures":[{"sig":"MEQCIHfHqlj3Gkd4mJvM5mO7nDj2T1RoblvzRPFPmuc5hXTjAiAC6WfUR1DAp3PFmKONCZ4n3b+ZTEc0kUYLJIhxVG2jog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16039868},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"071eaf25b5dab9f4cb6cd8387a391f9625c8c023","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"10.9.8","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4","@xterm/headless":"5.5.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.16.0_1788441456164_0.7985327830882101","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"auvezy-terminal-remote","version":"0.17.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.17.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"4c0b188b48aa37071ac595f284138c828f5f0e08","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.17.0.tgz","fileCount":390,"integrity":"sha512-DOSkkpsVALiOEtFTntcXAHAqcvNnPjMlyN81J23e7cUfc0pB1pVCKjsmlZTQS9t/ceBd3wp8cJCoCSAsjc7C8w==","signatures":[{"sig":"MEYCIQDzI1ZhLjsbend9aU6TDFdg8xTuk5rc+g8PIqx+6HE5ngIhAMarPUeAF3bN8XVpskdbW3qzbNY3WJfoI8L0wsGcfSjT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16047964},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"52880a2f0ac1cf56a88bb877f14d15aa419ff74b","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"10.9.8","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4","@xterm/headless":"5.5.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.17.0_1788481603178_0.19574698349585407","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"auvezy-terminal-remote","version":"0.18.0","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"license":"PolyForm-Noncommercial-1.0.0","_id":"auvezy-terminal-remote@0.18.0","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"bin":{"atr":"dist/cli.js"},"dist":{"shasum":"fa77493a6a2b96fe3910ff0485e460508ea7e4c1","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.18.0.tgz","fileCount":390,"integrity":"sha512-pUkj9zWw4zqHMykSC8+WlAo8e9/L2bC/m4r9iaYvvzR5CWAmDTA9S33aEaVYHZqf2A2lIjBK8+wD6gBlTQjLFg==","signatures":[{"sig":"MEUCIALQyOsGfyTaNTQBO6iyVkM2+o4GavTiLdwnNelelLFOAiEAtUXJQLmk3210eajDVXmnMm/mQb4XPrn2hdxFKX1q7V8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDqg+7718+arSBg9s1RHbpFI2OAQne+hHYWFszJVBoeKgIgKNORKckCCRYiG3BqvestIBxrHr0wv6JGQ2CF09o0KzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16050600},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"70213e7a9eae3d1d16d1092111d7b87adbedf10f","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"10.9.8","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4","@xterm/headless":"5.5.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/auvezy-terminal-remote_0.18.0_1790142420544_0.40829746261224154","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"_id":"auvezy-terminal-remote@0.18.1","bin":{"atr":"dist/cli.js"},"bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"dist":{"shasum":"f28e581a20d444f480d527d3d0247056ef59732e","tarball":"https://registry.npmjs.org/auvezy-terminal-remote/-/auvezy-terminal-remote-0.18.1.tgz","fileCount":390,"integrity":"sha512-EKDb9yEFPj8QJFKiLb6F5LkBSDSc/S2YiEL+rEcpmpzOtIymfneiYhjt/tmHO7mtdVPOmgMDUecCOcwuUTcR5w==","signatures":[{"sig":"MEUCIEDXEjNMNtoE3T16OS+PN5MSc4YGSzZJX0vwxpzENywtAiEA7eeHE/7dB10vESfri4HTPxJgJR8kxGuK4VfCqeUz5U4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID1rr7dwe/Bfka+sVXKmIxusYUKMTGX1qBjb6PD3XAFWAiBg58L/cEEYuYoIEJaBAOajrtgSa2yCcRO0UFXyobSVOA=="}],"unpackedSize":16049952},"name":"auvezy-terminal-remote","type":"module","engines":{"node":">=20.0.0"},"gitHead":"ffa2fa362d3a3ddbc4e0d28fd5439c31c1ada1f4","license":"PolyForm-Noncommercial-1.0.0","private":false,"scripts":{"dev":"tsx watch src/cli.ts --dev-proxy","test":"vitest run","build":"tsc -b","start":"node dist/cli.js","bundle":"node ../scripts/bundle-backend.js","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node dist/postinstall.mjs","prepublishOnly":"echo 'prepublishOnly: 由 root pnpm build 处理'"},"version":"0.18.1","_npmUser":{"name":"jjj201200","email":"jjj201200@gmail.com"},"homepage":"https://github.com/jjj201200/auvezy-terminal-remote","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"_npmVersion":"10.9.8","description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","directories":{},"maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.18.0","cors":"^2.8.5","pino":"^9.5.0","cookie":"^1.0.0","qrcode":"^1.5.4","express":"^4.21.0","prompts":"^2.4.2","node-pty":"^1.0.0","web-push":"^3.6.7","picomatch":"^4.0.4","http-proxy":"^1.18.1","picocolors":"^1.1.1","didyoumean2":"^7.0.4","@xterm/headless":"5.5.0","@xterm/addon-serialize":"0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vitest":"^3.0.0","esbuild":"^0.28.0","@types/ws":"^8.5.13","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^20.17.0","@types/qrcode":"^1.5.6","@types/express":"^4.17.21","@types/prompts":"^2.4.9","@types/web-push":"^3.6.4","@types/picomatch":"^4.0.3","@types/http-proxy":"^1.17.17","auvezy-terminal-remote-shared":"workspace:*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/auvezy-terminal-remote_0.18.1_1790502726777_0.704882780556302"}}},"time":{"created":"2026-05-06T07:17:51.817Z","modified":"2026-09-27T09:52:07.107Z","0.3.0":"2026-05-06T07:17:52.091Z","0.3.1":"2026-05-06T07:43:19.884Z","0.4.0":"2026-05-06T22:52:42.499Z","0.4.1":"2026-05-06T23:21:23.566Z","0.4.2":"2026-05-07T00:34:50.881Z","0.4.4":"2026-05-07T02:16:25.810Z","0.4.5":"2026-05-07T06:26:34.051Z","0.5.0":"2026-05-08T14:17:23.334Z","0.6.0":"2026-05-09T10:37:19.389Z","0.7.0":"2026-05-10T10:38:28.065Z","0.7.1":"2026-05-10T13:53:10.065Z","0.7.2":"2026-05-10T14:57:40.072Z","0.7.3":"2026-05-10T17:47:19.231Z","0.7.4":"2026-05-11T06:10:00.755Z","0.7.5":"2026-05-11T09:40:02.599Z","0.7.6":"2026-05-19T01:45:13.355Z","0.8.0":"2026-05-21T20:30:06.876Z","0.9.0":"2026-05-22T07:03:32.168Z","0.10.0":"2026-05-22T23:57:36.402Z","0.11.0":"2026-06-04T13:40:07.376Z","0.12.0":"2026-06-08T22:04:32.147Z","0.12.1":"2026-06-21T21:32:59.330Z","0.13.0":"2026-08-16T01:54:49.259Z","0.14.0":"2026-08-16T03:01:20.373Z","0.14.1":"2026-08-16T07:20:20.510Z","0.15.0":"2026-08-17T23:54:24.436Z","0.16.0":"2026-09-03T13:17:36.391Z","0.17.0":"2026-09-04T00:26:43.443Z","0.18.0":"2026-09-23T05:47:00.754Z","0.18.1":"2026-09-27T09:52:06.946Z"},"bugs":{"url":"https://github.com/jjj201200/auvezy-terminal-remote/issues"},"license":"PolyForm-Noncommercial-1.0.0","homepage":"https://github.com/jjj201200/auvezy-terminal-remote","keywords":["terminal","remote","pty","claude","claude-code","lan","mobile","websocket","xterm"],"repository":{"url":"git+https://github.com/jjj201200/auvezy-terminal-remote.git","type":"git"},"description":"Auvezy Terminal Remote — 局域网内通过手机/平板浏览器远程控制 PC 终端：atr <program>，多终端多实例自动出现在浏览器 tab 切换","maintainers":[{"name":"jjj201200","email":"jjj201200@gmail.com"}],"readme":"<div align=\"center\">\n\n<img src=\"./frontend/public/icons/atr-icon.svg\" alt=\"auvezy-terminal-remote logo\" width=\"96\" height=\"96\">\n\n# auvezy-terminal-remote\n\n[![npm](https://img.shields.io/npm/v/auvezy-terminal-remote?style=flat-square&color=b6f09c&labelColor=0a0c0f)](https://www.npmjs.com/package/auvezy-terminal-remote)\n[![license](https://img.shields.io/badge/license-PolyForm--NC--1.0.0-b6f09c?style=flat-square&labelColor=0a0c0f)](./LICENSE)\n[![node](https://img.shields.io/node/v/auvezy-terminal-remote?style=flat-square&color=b6f09c&labelColor=0a0c0f)](https://nodejs.org)\n[![stars](https://img.shields.io/github/stars/jjj201200/auvezy-terminal-remote?style=flat-square&color=b6f09c&labelColor=0a0c0f)](https://github.com/jjj201200/auvezy-terminal-remote)\n\n**English** · [简体中文](./README.zh-CN.md)\n\nRemote-control any terminal program on your PC from a phone or tablet\nbrowser over LAN. Start a broker once at boot — open the browser any\ntime to log in, create instances, and run Claude / your shell / any TUI.\n\n<img src=\"./frontend/public/screenshots/desktop.png\" alt=\"Webapp running Claude Code in a browser tab\" width=\"960\">\n\n<img src=\"./frontend/public/screenshots/mobile.png\" alt=\"Webapp on a phone screen\" width=\"400\">\n\n</div>\n\n## ✨ Highlights\n\n- **Mobile browser as a first-class terminal client** — full-fidelity PTY\n  for any program (`claude`, `vim`, `htop`, your shell). The mobile UI ships\n  with on-screen shortcut keys, IME-safe input handling, swipe-to-scroll,\n  viewport-aware sizing, and an installable PWA manifest.\n- **TUI / Claude Code adaptation** — handles Ink/Yoga reflow on resize so\n  Claude does not blank on device rotation; an alt-screen blocklist keeps\n  full-screen TUIs (`claude`, `tmux`, `lazygit`, …) clean across reconnects.\n- **Reconnect with replay** — scrollback is rehydrated on every reconnect,\n  so transient network drops, lock-screen, or sleeping the device do not\n  lose context.\n- **Multi-instance with unified tab bar** — each `atr <program>` runs as an\n  independent subprocess at its own URL (`/i/<id>/`); the webapp surfaces\n  every active instance in a single tab strip.\n- **Configurable from the settings panel** — on-screen shortcut keys,\n  saved command snippets, per-device font size, terminal theme, scrollback\n  size, and hook integrations are user-configurable. All preferences are\n  persisted to `~/.atrrc`.\n- **LAN-only architecture** — a single shared token (timing-safe comparison),\n  workers bound to `127.0.0.1`, and the broker as the sole outward-facing\n  process. No public server, no third-party relay.\n- **One-step boot autostart** — `atr install` generates the systemd /\n  launchd unit; the service comes up automatically on reboot.\n\nFull list: [`docs/FEATURES.md`](./docs/FEATURES.md).\n\n## 🏛️ Architecture\n\n`atr` is a two-process model: **broker** is the LAN entry and coordinator,\n**worker** is a single PTY instance.\n\n```\nBrowser / phone                  Your PC\n┌──────────────┐                ┌──────────────────────────────────┐\n│              │   ws://host    │  broker (LAN: 0.0.0.0:3000)      │\n│  webapp PWA  │ ──────────────►│  ├─ /api/*  (auth / instances /  │\n│              │                │  │           push / config / …)  │\n│              │                │  ├─ /i/<id>/  → SPA + base href  │\n│              │                │  ├─ /i/<id>/api/* → proxy worker │\n│              │                │  └─ /i/<id>/ws    → proxy worker │\n└──────────────┘                │            │                     │\n                                │            ▼                     │\n                                │  worker A   worker B   …         │\n                                │  127.0.0.1: 127.0.0.1:           │\n                                │  3001       3002       …         │\n                                │  ├─ PTY (claude / shell / TUI)   │\n                                │  ├─ /api/health  /api/hook       │\n                                │  └─ /ws (PTY IO)                 │\n                                └──────────────────────────────────┘\n```\n\n- **broker** (LAN entry point): the only outward-facing process, listens on\n  `0.0.0.0:3000`. Owns all \"system-level\" APIs: login, user config,\n  instance list, push subscriptions, SSE live stream. Serves the static\n  frontend and injects `<base href>` for `/i/<id>/`. Long-lived — start\n  once at boot.\n- **worker** (PTY instance): one subprocess per instance, listens on a\n  high port at `127.0.0.1` only. Exposes only `/api/health` (probe),\n  `/api/hook` (loopback only), and `/ws` (PTY IO). Spawned by the broker\n  via `POST /api/instances`, detached + unref so it outlives broker\n  restarts.\n- **Shared sessions**: broker and workers share a file-locked sessions\n  store — one cookie authenticates everywhere.\n- **Entry model**: the browser always talks to the broker; URL `/i/<id>/`\n  identifies an instance. F5 doesn't lose context. Single PWA, multiple\n  instances.\n\nModule diagram and data flow: [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md).\nDesign decisions (broker/worker split, lifecycle, API ownership, base\nhref injection, …): [`docs/plans/path-routing/adrs/`](./docs/plans/path-routing/adrs/).\n\n## 📦 Install\n\n```bash\nnpm install -g auvezy-terminal-remote   # -g is required (it's a CLI)\n```\n\n> ⚠️ The default `npm i` command shown on the npm package page is\n> **missing `-g`** — without it the `atr` binary won't be on your PATH.\n\n## 🚀 Quick start\n\n### Run the background service once at boot (recommended)\n\n```bash\natr install              # writes systemd (Linux/WSL2) / launchd (macOS) config\n# Follow the printed steps to enable + start; auto-starts at boot.\n```\n\nOr run it manually (for testing / no autostart):\n\n```bash\natr start                # foreground, Ctrl+C to quit\n```\n\n### Open in a browser\n\n```bash\natr status               # one-shot view: process / token / entry URLs / instances\n```\n\nThe \"entry URLs\" section lists every reachable URL with `?token=<token>`\nappended — paste any of them into a browser to log in. The default entry\nis marked with ★ (Tailscale > LAN > IPv6 > loopback).\n\nAfter the webapp loads, click \"+ New instance\", pick a cwd, and a PTY\nspawns. Default command is `$SHELL`; run `claude` (or anything else)\ninside it.\n\n### Spawn an instance directly (CLI, classic usage)\n\n```bash\natr                          # runs your $SHELL\natr claude                   # runs claude\natr claude --resume foo      # extra args pass through\n```\n\nThe CLI auto-ensures the background service is up (forks one if not),\nspawns the instance, and prints the URL.\n\n## 🔧 Usage\n\n```\natr [run-flags...] [program] [args...]      # spawn a PTY instance (default)\natr <subcommand> [args]                     # manage broker / instances\n```\n\nStrict argument order: atr's own flags must come **before** `[program]`.\nOnce a program name is seen, every remaining token passes through to the child.\n\n### Subcommands\n\n| Command | Purpose |\n|---|---|\n| `atr start [--port n] [--host ip]` | Start the broker (foreground, Ctrl+C to quit) |\n| `atr stop` | Stop the broker (SIGTERM → 5s grace → SIGKILL) |\n| `atr status` | One-shot view: process, token, entry URLs, instances |\n| `atr list` | List all live instances |\n| `atr logs` | Tail today's broker log (`~/.atr/broker-YYYY-MM-DD.log`) |\n| `atr install` | Register autostart (systemd / launchd) |\n| `atr uninstall` | Remove autostart (asks for confirmation) |\n| `atr attach <url>` | CLI client to share a PTY with a running instance |\n| `atr kill <pattern \\| all>` | Kill instances by substring match; `all` kills every one (with confirm) |\n| `atr completion <zsh\\|bash\\|fish>` | Print shell completion script to stdout |\n\nReserved words (the subcommands above) take precedence at position 0. To run\na PATH binary with the same name: `atr ./<name>` or `atr -- <name>`. In an\ninteractive terminal, atr will prompt you to choose if a PATH binary\ncollides with a subcommand.\n\n### Run flags (used with `atr [program]`)\n\n| Flag | Purpose |\n|---|---|\n| `-p, --port <n>` | Service port (default 3000); instance ports are auto-assigned |\n| `--name <s>` | Instance name (shown in webapp) |\n| `--no-terminal` | Don't print the QR / banner (CI / daemon-friendly) |\n| `--workdir <path>` | Child process cwd |\n| `--token <s>` | Use a fixed token instead of reading `~/.atrrc` |\n\nFull reference (all flags, env vars, config file):\n[`docs/CLI.md`](./docs/CLI.md). Run `atr -h` for the inline help.\n\n## 📂 File locations\n\n| Path | Contents |\n|---|---|\n| `~/.atrrc` | Main config: token, user prefs, shortcuts, command snippets |\n| `~/.atr/instances.json` | Live instance registry (broker / worker share it) |\n| `~/.atr/broker.json` | Broker process state (pid / port / startedAt) |\n| `~/.atr/broker-YYYY-MM-DD.log` | Broker daily log (kept for 7 days) |\n| `~/.atr/sessions/` | Shared session files |\n| `~/.atr/vapid-keys.json` | Web Push VAPID keys |\n| `~/.atr/push-subscriptions.json` | Subscribed push endpoints |\n\n## 📱 Install as a PWA\n\nThe webapp ships with a manifest. \"Add to Home Screen\" gives a near-native\napp: no browser chrome, status bar tinted to match.\n\n- **iOS Safari** — share button → \"Add to Home Screen\"\n- **Android Chrome** — top-right ⋮ → \"Install app\"\n\n## 🌐 WSL → Windows browser\n\nWSL2 works out of the box on **mirrored mode**. On **NAT mode** the banner\nprints a one-shot PowerShell snippet to make the port reachable from\nWindows. Details: [`docs/WSL.md`](./docs/WSL.md).\n\n## 🛣️ Roadmap\n\nPlanned, evaluating, and explicitly out-of-scope items live in\n[`docs/ROADMAP.md`](./docs/ROADMAP.md). The README only lists what\nalready ships.\n\n## 🛠️ Development\n\n```bash\ngit clone https://github.com/jjj201200/auvezy-terminal-remote.git\ncd auvezy-terminal-remote\nbash install.sh            # checks Node 20+ / pnpm 9+ / build deps → installs → builds\n```\n\nDev startup order (broker first, then vite):\n\n```bash\n# Terminal 1: start broker in dev mode (tsx running src)\npnpm --filter auvezy-terminal-remote exec tsx src/cli.ts broker start\n\n# Terminal 2: vite dev server; proxies /api and /i/ to the broker (3000)\npnpm --filter auvezy-terminal-remote-frontend dev\n# Open http://localhost:5173/\n```\n\nRun tests:\n\n```bash\npnpm test                  # shared + backend + frontend unit tests\n```\n\nGitee mirror (faster from mainland China):\n`git clone https://gitee.com/drowsyflesh/auvezy-terminal-remote.git`\n\n## License\n\n[PolyForm Noncommercial 1.0.0](./LICENSE) — free for personal, educational,\nand nonprofit use. Commercial use requires a separate license.\n","readmeFilename":"README.md"}