{"_id":"handmux","_rev":"58-00ef1b1699a04b8fe0d2908532f2e66f","name":"handmux","dist-tags":{"latest":"0.32.1"},"versions":{"0.5.2":{"name":"handmux","version":"0.5.2","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.5.2","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/yuanyuanzijin/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"7a6c66122eeb09b1a771031ece746df6ca936c85","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.5.2.tgz","fileCount":58,"integrity":"sha512-ZVMoXgWJyGwDzBe9IhebPHxrgHt/U1VDAnpKZW3UArRKcw2k7BWHumUTZJDPnrmHq4ewwvsnOPUq5AITLqtWRg==","signatures":[{"sig":"MEUCIDNwlMeQD+wm6tWXmkbcU4XGSsWC0hMWM6G+KurJiEQPAiEAplJSAZTggYTd43oZxXeMLxbVJL0DY4/bv5ShCVoyLpw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3354862},"type":"module","engines":{"node":">=18"},"gitHead":"740777756ab5ee09c3f408b05b077e9e8773425a","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"repository":{"url":"git+https://github.com/yuanyuanzijin/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"Mobile vibe coding — drive your real tmux session (and Claude Code) from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.5.2_1782662502989_0.4191373382468542","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"handmux","version":"0.5.3","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.5.3","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/yuanyuanzijin/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"10d4a72b851bca8a4522fea2bd0d17db36f3cbd1","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.5.3.tgz","fileCount":58,"integrity":"sha512-37coTD48eue24y1A+LBpWrvFKqlLeeAqilET1qVtMQrW8ItWNhCoA2WB5Di7DYsmrogUXhEazT2B5lp4OyQrdw==","signatures":[{"sig":"MEQCIBrnLEcn5Ss05urFJlDvL9iMgeLWvDMvMdGBUtLE8iQpAiASC/UMEPYwYtD6/ZdK5B22gX3L9gKxpuV8SUvPyCrdvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3355097},"type":"module","engines":{"node":">=18"},"gitHead":"f18966f28fda582db34749fef2c2a8b1b4c61913","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"repository":{"url":"git+https://github.com/yuanyuanzijin/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"Mobile vibe coding — drive your real tmux session (and Claude Code) from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.5.3_1782669336301_0.2633414232137008","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"handmux","version":"0.6.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.6.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/yuanyuanzijin/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"da6420a59893131cd4f809ac24cba5b135a72181","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.6.0.tgz","fileCount":68,"integrity":"sha512-6lSb0AknrdkSVDChpxjw63LbiC4/7oH0Lx3LbZvmbRW9zC424/kKBNSgUdgnAcTisuzMkmYYUgMv7ajres6rOw==","signatures":[{"sig":"MEUCIQCZuePT7N6Lc6qHrbgIuyj5DIqLd6GWhKyYw6B3n5xMJgIgJeI/H0nYASNtW+gKJ67pYag09sW9BUq184jk63ig/BA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3444400},"type":"module","_from":"file:handmux-0.6.0.tgz","engines":{"node":">=18"},"scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"_resolved":"/private/tmp/hm-pub/handmux-0.6.0.tgz","_integrity":"sha512-6lSb0AknrdkSVDChpxjw63LbiC4/7oH0Lx3LbZvmbRW9zC424/kKBNSgUdgnAcTisuzMkmYYUgMv7ajres6rOw==","repository":{"url":"git+https://github.com/yuanyuanzijin/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"Mobile vibe coding — drive your real tmux session (and Claude Code) from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.6.0_1783092583123_0.6699161879220001","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"handmux","version":"0.7.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.7.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/yuanyuanzijin/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"24ba319fddd9afbd6c4c2553f646c90b1e317a4f","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.7.0.tgz","fileCount":67,"integrity":"sha512-B8j4Ae2RfiLn3EC/eHgpvGFUXkF8G9ONToi+GUkSBigv9P2q0HPd/zcFaDO3f1Xt8YkxzhBIZlC5gUWZRbCq8w==","signatures":[{"sig":"MEYCIQDGkB9rzNid0hv1bPAfoH2JEfdZJrgO9wZgtP8EWxZKMgIhALm1PNw+fEkKMPmHuEScBEXVCgv/fWtirm/3owXgzIBz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3448958},"type":"module","_from":"file:handmux-0.7.0.tgz","engines":{"node":">=18"},"scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"_resolved":"/private/tmp/hm-pub/handmux-0.7.0.tgz","_integrity":"sha512-B8j4Ae2RfiLn3EC/eHgpvGFUXkF8G9ONToi+GUkSBigv9P2q0HPd/zcFaDO3f1Xt8YkxzhBIZlC5gUWZRbCq8w==","repository":{"url":"git+https://github.com/yuanyuanzijin/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"Mobile vibe coding — drive your real tmux session (and Claude Code) from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.7.0_1783092600701_0.6878335705467702","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"handmux","version":"0.8.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.8.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/yuanyuanzijin/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"1f89dedb7d3c0c3fb320423a7c4bd7293e48e057","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.8.0.tgz","fileCount":67,"integrity":"sha512-RdGeOPf4CZKzd410o1rZM0gqk12uGRn1p9uBoE5D7VFg+l++7wW0+tpZeE5gQYllluQLsDQRajsEsZMd8MxQvg==","signatures":[{"sig":"MEUCIQCOwzdkQM6Ired+AtI2/kdLdnZm00urtSsP9FKbOJqvUQIgWFpxL6eyibgnFFwWc22pKiKMsycGECjWp6GQuC02UZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3502969},"type":"module","engines":{"node":">=18"},"gitHead":"8ba7b2b8ecf2f5e91e79a7ca25efc644697a273b","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"repository":{"url":"git+https://github.com/yuanyuanzijin/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"Mobile vibe coding — drive your real tmux session (and Claude Code) from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.8.0_1783184510181_0.5030872788568155","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"handmux","version":"0.9.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.9.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"f062070b6956f347ab05b9d3036b74e9182549d4","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.9.0.tgz","fileCount":67,"integrity":"sha512-QoddBHSi0a8pMcXyRJs0BQQP6wdhfUYzne3F6Tp6vfK149LM5qwfEt3rBYQ7oR2Rlg25fdQvl5CaooShqgXfow==","signatures":[{"sig":"MEYCIQD+YRQjYV0ih2x3uI8+m0O7UOTEKv+b4chbTwMvZYir8gIhAJ8KSubgvACCh6lHIk0virtLOX7p3rBxEPPIYq0bqw6L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3507385},"type":"module","engines":{"node":">=18"},"gitHead":"765c049c9dae922facba552a343cf7c2f5e1a4bf","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"Mobile vibe coding — drive your real tmux session (and Claude Code) from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.9.0_1783267109536_0.6195411729028042","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"handmux","version":"0.9.1","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.9.1","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"b3be4ad645f3b394ffb9e5593afef454bd1caa71","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.9.1.tgz","fileCount":67,"integrity":"sha512-tI2f4ARCF2hEcSmxa9glhUeGmISQVQnSVuHjAP2IWyAbPRelmHnL1lIrOPEheGRTJNl5LL2fiYBb1+sa5nMm9w==","signatures":[{"sig":"MEUCIDtvvknR5US+hiyxJ+vhnwEgiHF52rWl6l9/kaVICw+pAiEAgLPZUwEZBW4kN2tI7yEMcx9bwsDxo3vL+b0TZOoa9Zo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3494966},"type":"module","engines":{"node":">=18"},"gitHead":"cb2f8a653662050030556d08b4a8adfa8ebe7d31","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code & Codex from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.9.1_1783316692737_0.5650384757541433","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"handmux","version":"0.10.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.10.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"6af58b1556f41ba36e0996362175fba417a06f19","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.10.0.tgz","fileCount":67,"integrity":"sha512-jal/A/8FXpiQ+aU23YupPt5il5CO2TuPu55eTAzevftOmRKQr1TqVO0jiQRZNkwBGYepDDSfPiYO0iP0ouQtKg==","signatures":[{"sig":"MEQCIF1mnLiVuUNt/7a1rHl4KVOyllPv0u9p0/p9NXrX16ojAiBYed8i8khvo+eiwmb9ujHhsJfE80tGj775xCHKp5vYUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3495780},"type":"module","engines":{"node":">=18"},"gitHead":"192e53507192a7d54fc25b6b58fc9c5dd42a4ff6","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Preview an update before installing · handmux open","zh":"升级前预览新功能 · 电脑 handmux open 接管","date":"2026-07-06","version":"0.10.0"},{"en":"\"Add to Home Screen\" coach","zh":"「添加到主屏」引导","date":"2026-07-06","version":"0.9.1"},{"en":"Multi-line chat composer redone","zh":"聊天输入框多行重做","date":"2026-07-05","version":"0.9.0"},{"en":"Customizable quick-bars · upload redone","zh":"快捷栏可自定义 · 上传体验重做","date":"2026-07-05","version":"0.8.0"},{"en":"New \"Usage\" page","zh":"新增「用量」页","date":"2026-07-03","version":"0.7.0"},{"en":"Codex support added","zh":"新增 Codex 支持","date":"2026-07-02","version":"0.6.0"},{"en":"First public release · multi-language UI","zh":"首个公开版 · 多语言界面","date":"2026-06-28","version":"0.5.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.10.0_1783339625027_0.1029061959297306","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"handmux","version":"0.11.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.11.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"71043076dc8c655a25edfc76937fbdf3bbd20e35","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.11.0.tgz","fileCount":72,"integrity":"sha512-FZ7sla2E1S/8b41lY7ancY+gfgvMMSXYTPKGee9TWQUif60BkCFVksfm+LNqVkyCc7rSDpy/aZ4GF2qXqmof8Q==","signatures":[{"sig":"MEQCIBq9aB5cslIJEdKuMNIS89kUV/3tO846NmTCeeBuVquqAiBpClqSOA01UmmFLVZ0dyYmOOBl6VY3gzglGTDSe1yq6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3541966},"type":"module","engines":{"node":">=18"},"gitHead":"a520318facfc7af0f9800e549b0df2526893fe8b","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"China-usable tunnels · setup redesigned","zh":"国内可用隧道 natapp/cpolar · 配置向导重做","date":"2026-07-08","version":"0.11.0"},{"en":"Preview an update before installing · handmux open","zh":"升级前预览新功能 · 电脑 handmux open 接管","date":"2026-07-06","version":"0.10.0"},{"en":"\"Add to Home Screen\" coach","zh":"「添加到主屏」引导","date":"2026-07-06","version":"0.9.1"},{"en":"Multi-line chat composer redone","zh":"聊天输入框多行重做","date":"2026-07-05","version":"0.9.0"},{"en":"Customizable quick-bars · upload redone","zh":"快捷栏可自定义 · 上传体验重做","date":"2026-07-05","version":"0.8.0"},{"en":"New \"Usage\" page","zh":"新增「用量」页","date":"2026-07-03","version":"0.7.0"},{"en":"Codex support added","zh":"新增 Codex 支持","date":"2026-07-02","version":"0.6.0"},{"en":"First public release · multi-language UI","zh":"首个公开版 · 多语言界面","date":"2026-06-28","version":"0.5.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.11.0_1783481882597_0.22069140047158298","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"handmux","version":"0.11.1","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.11.1","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"5fb51fcf608f5e931ed6a94a9120eb9c7869ca3b","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.11.1.tgz","fileCount":72,"integrity":"sha512-UXfqJWyIs/poZ+r52s43/voZ5rtsnzzlnWa89A3UnmtoYT/+ihw36u8jG7EnFQeN4EqJhLokEKu78ISBrg+O1w==","signatures":[{"sig":"MEUCIQDfGCVIOuukY/tggX+OtD7jNma7vtC2/Lq8aYQBs1UoXwIgArVjoUc6qSK9XGypSD+F1bYldJMva9dmYnAO11bQaOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3547935},"type":"module","engines":{"node":">=18"},"gitHead":"c5fa31982a484129cde26968c1ff80096909f58f","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"China-usable tunnels · setup redesigned","zh":"国内可用隧道 natapp/cpolar · 配置向导重做","date":"2026-07-08","version":"0.11.0"},{"en":"Preview an update before installing · handmux open","zh":"升级前预览新功能 · 电脑 handmux open 接管","date":"2026-07-06","version":"0.10.0"},{"en":"\"Add to Home Screen\" coach","zh":"「添加到主屏」引导","date":"2026-07-06","version":"0.9.1"},{"en":"Multi-line chat composer redone","zh":"聊天输入框多行重做","date":"2026-07-05","version":"0.9.0"},{"en":"Customizable quick-bars · upload redone","zh":"快捷栏可自定义 · 上传体验重做","date":"2026-07-05","version":"0.8.0"},{"en":"New \"Usage\" page","zh":"新增「用量」页","date":"2026-07-03","version":"0.7.0"},{"en":"Codex support added","zh":"新增 Codex 支持","date":"2026-07-02","version":"0.6.0"},{"en":"First public release · multi-language UI","zh":"首个公开版 · 多语言界面","date":"2026-06-28","version":"0.5.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.11.1_1783569940719_0.06637882464404288","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"handmux","version":"0.12.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.12.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"e3c1dade4d7549d44fb6bf4505d5b8627c2c0a71","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.12.0.tgz","fileCount":72,"integrity":"sha512-jNZ2Kp9NgYE+YA91nb9MiQLsvFsjxXPUCRaKJTWyspHWXfwk1Df3RgzV3DkiC9+WSefz23ZFidNtDPvY6BoYpQ==","signatures":[{"sig":"MEUCIAWzGyGgUVJv1ychkUsdq2w9Da3dMhdpdyksVvt1konjAiEAvWDcTxfb5Y6dWyCmQ8z4YVER1Ldnhd3GBQf/CMuBu1Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3554059},"type":"module","engines":{"node":">=18"},"gitHead":"6af546ff84cc3d6e543625402429cd45d909eb9c","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Swipe-scroll full-screen apps · feedback channels · chat drafts kept","zh":"全屏程序也能滑动滚动 · 反馈入口 · 聊天草稿不丢","date":"2026-07-11","version":"0.12.0"},{"en":"Fixes startup crash on Node 18","zh":"修复 Node 18 下无法启动的问题","date":"2026-07-09","version":"0.11.1"},{"en":"China-usable tunnels · setup redesigned","zh":"国内可用隧道 natapp/cpolar · 配置向导重做","date":"2026-07-08","version":"0.11.0"},{"en":"Preview an update before installing · handmux open","zh":"升级前预览新功能 · 电脑 handmux open 接管","date":"2026-07-06","version":"0.10.0"},{"en":"\"Add to Home Screen\" coach","zh":"「添加到主屏」引导","date":"2026-07-06","version":"0.9.1"},{"en":"Multi-line chat composer redone","zh":"聊天输入框多行重做","date":"2026-07-05","version":"0.9.0"},{"en":"Customizable quick-bars · upload redone","zh":"快捷栏可自定义 · 上传体验重做","date":"2026-07-05","version":"0.8.0"},{"en":"New \"Usage\" page","zh":"新增「用量」页","date":"2026-07-03","version":"0.7.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.12.0_1783703535770_0.43617455513800607","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"handmux","version":"0.12.1","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.12.1","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"a4c7b6a7b097b0fa6aaec441897d5b4e7162153f","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.12.1.tgz","fileCount":74,"integrity":"sha512-1e4gYGSdN1Fit0ZVNI4zYFiwTlqGoXQV5myy+okYETZI4M36rtl067k42nPXbavNtooECsVBGpkKD+RMzI5PkA==","signatures":[{"sig":"MEUCIQC+EnBrycGgmV3Iw23TY0z9kbghfeR3ARS3uXs6pUEqEwIgOygn672DOqTouMft9XUajvO7gdjwpfpEKcKQroy9UD4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3933135},"type":"module","engines":{"node":">=18"},"gitHead":"264c810435c8dfd3f08e0bcc98f79c166709240c","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"New brand icon & two-tone wordmark","zh":"全新品牌图标与双色字标","date":"2026-07-11","version":"0.12.1"},{"en":"Swipe-scroll full-screen apps · feedback channels · chat drafts kept","zh":"全屏程序也能滑动滚动 · 反馈入口 · 聊天草稿不丢","date":"2026-07-11","version":"0.12.0"},{"en":"Fixes startup crash on Node 18","zh":"修复 Node 18 下无法启动的问题","date":"2026-07-09","version":"0.11.1"},{"en":"China-usable tunnels · setup redesigned","zh":"国内可用隧道 natapp/cpolar · 配置向导重做","date":"2026-07-08","version":"0.11.0"},{"en":"Preview an update before installing · handmux open","zh":"升级前预览新功能 · 电脑 handmux open 接管","date":"2026-07-06","version":"0.10.0"},{"en":"\"Add to Home Screen\" coach","zh":"「添加到主屏」引导","date":"2026-07-06","version":"0.9.1"},{"en":"Multi-line chat composer redone","zh":"聊天输入框多行重做","date":"2026-07-05","version":"0.9.0"},{"en":"Customizable quick-bars · upload redone","zh":"快捷栏可自定义 · 上传体验重做","date":"2026-07-05","version":"0.8.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.12.1_1783713861103_0.0645236580329076","host":"s3://npm-registry-packages-npm-production"}},"0.12.2":{"name":"handmux","version":"0.12.2","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.12.2","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"fde52512008578b6d16779751e1a70c56cde79cd","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.12.2.tgz","fileCount":74,"integrity":"sha512-E4vfcQ1BtO2xDfRevqj/NNK+woKzauSFcTVORcGUIzLrwxXbsFpFa2Un84d2Uj1w+3QzBcfW3qKuwemOGsk9HA==","signatures":[{"sig":"MEUCIQCElj/OvzVBU1dzX8I7b3RLLIt02S1/0xHpKAXajJDZOQIgAjDOteqXOAwUiu6JxTYkO7CE4r74SV8JRV2T1+ha7zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3934935},"type":"module","engines":{"node":">=18"},"gitHead":"e4d90a19512ff611eca28721668aed68aecd8e5c","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Home-screen icon: right size & always fresh","zh":"修复主屏图标偏大 / 换图标后不刷新","date":"2026-07-11","version":"0.12.2"},{"en":"New brand icon & two-tone wordmark","zh":"全新品牌图标与双色字标","date":"2026-07-11","version":"0.12.1"},{"en":"Swipe-scroll full-screen apps · feedback channels · chat drafts kept","zh":"全屏程序也能滑动滚动 · 反馈入口 · 聊天草稿不丢","date":"2026-07-11","version":"0.12.0"},{"en":"Fixes startup crash on Node 18","zh":"修复 Node 18 下无法启动的问题","date":"2026-07-09","version":"0.11.1"},{"en":"China-usable tunnels · setup redesigned","zh":"国内可用隧道 natapp/cpolar · 配置向导重做","date":"2026-07-08","version":"0.11.0"},{"en":"Preview an update before installing · handmux open","zh":"升级前预览新功能 · 电脑 handmux open 接管","date":"2026-07-06","version":"0.10.0"},{"en":"\"Add to Home Screen\" coach","zh":"「添加到主屏」引导","date":"2026-07-06","version":"0.9.1"},{"en":"Multi-line chat composer redone","zh":"聊天输入框多行重做","date":"2026-07-05","version":"0.9.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.12.2_1783736083566_0.5537097714692416","host":"s3://npm-registry-packages-npm-production"}},"0.12.3":{"name":"handmux","version":"0.12.3","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.12.3","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"ff5b99f5f9b49855c4f6a5df6d55cf9fa66d3c92","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.12.3.tgz","fileCount":74,"integrity":"sha512-9lu0asnoYNYUsP49HGKrSraEeO0tY1eKewKrNwvLyp10zBKWkJ0fLc2BlfLZFKFpGC3OjWVqbkfoiNlo8qDOKw==","signatures":[{"sig":"MEUCIQCZ/S1AX/2bTP97gY3C6UTInr7PA0HnAo9bKlDbLb4+sAIgUZaQJ1HjzePH69GXWp/8hDBvh1xWDclP0EWht/mr2nY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3938548},"type":"module","engines":{"node":">=18"},"gitHead":"db943647c425d817d3174aeab4d0f41a00e40df8","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Name a takeover session · Homebrew install","zh":"接管会话可自定义名称 + Homebrew 一键安装","date":"2026-07-11","version":"0.12.3"},{"en":"Home-screen icon: right size & always fresh","zh":"修复主屏图标偏大 / 换图标后不刷新","date":"2026-07-11","version":"0.12.2"},{"en":"New brand icon & two-tone wordmark","zh":"全新品牌图标与双色字标","date":"2026-07-11","version":"0.12.1"},{"en":"Swipe-scroll full-screen apps · feedback channels · chat drafts kept","zh":"全屏程序也能滑动滚动 · 反馈入口 · 聊天草稿不丢","date":"2026-07-11","version":"0.12.0"},{"en":"Fixes startup crash on Node 18","zh":"修复 Node 18 下无法启动的问题","date":"2026-07-09","version":"0.11.1"},{"en":"China-usable tunnels · setup redesigned","zh":"国内可用隧道 natapp/cpolar · 配置向导重做","date":"2026-07-08","version":"0.11.0"},{"en":"Preview an update before installing · handmux open","zh":"升级前预览新功能 · 电脑 handmux open 接管","date":"2026-07-06","version":"0.10.0"},{"en":"\"Add to Home Screen\" coach","zh":"「添加到主屏」引导","date":"2026-07-06","version":"0.9.1"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.12.3_1783758204015_0.7949231275866704","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"handmux","version":"0.13.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.13.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"48c0f8488982bf8e1116363a6492ea79561ee7fb","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.13.0.tgz","fileCount":74,"integrity":"sha512-/uOM4j/3RN83/hHk8sEapl8PeodYaglpaq/71fTsrFQzpwCVCNYZ1eNtMJG0F9Q2OTpOIhoI61Eg59hlqjuq5g==","signatures":[{"sig":"MEUCIA2QgqZVsGdlNHa5AGVAd3/5i1vUDvSnamvsOSoFsd/YAiEA1K20nuorGFYcckGSCe/HGj5NXbVTRH9/wg9HX8KIblM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3948948},"type":"module","engines":{"node":">=18"},"gitHead":"8d4b9a28397beddc437b3e0ba85fe35bf37a3c62","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Tappable, highlighted file paths","zh":"终端文件路径高亮可点","date":"2026-07-12","version":"0.13.0"},{"en":"Name a takeover session · Homebrew install","zh":"接管会话可自定义名称 + Homebrew 一键安装","date":"2026-07-11","version":"0.12.3"},{"en":"Home-screen icon: right size & always fresh","zh":"修复主屏图标偏大 / 换图标后不刷新","date":"2026-07-11","version":"0.12.2"},{"en":"New brand icon & two-tone wordmark","zh":"全新品牌图标与双色字标","date":"2026-07-11","version":"0.12.1"},{"en":"Swipe-scroll full-screen apps · feedback channels · chat drafts kept","zh":"全屏程序也能滑动滚动 · 反馈入口 · 聊天草稿不丢","date":"2026-07-11","version":"0.12.0"},{"en":"Fixes startup crash on Node 18","zh":"修复 Node 18 下无法启动的问题","date":"2026-07-09","version":"0.11.1"},{"en":"China-usable tunnels · setup redesigned","zh":"国内可用隧道 natapp/cpolar · 配置向导重做","date":"2026-07-08","version":"0.11.0"},{"en":"Preview an update before installing · handmux open","zh":"升级前预览新功能 · 电脑 handmux open 接管","date":"2026-07-06","version":"0.10.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.13.0_1783844260592_0.4170424470091103","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"handmux","version":"0.14.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.14.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"cfaf4f58b32bf2e3335072209b20893b7a01ca1f","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.14.0.tgz","fileCount":75,"integrity":"sha512-nlfGPDl5Zh7cohXY5ohLBHqB8vJeZbUoN9mrI7MVTmWjTjmKShq4PEeLWSo0RT35CcofPkbTWZFkFcHG6KDttg==","signatures":[{"sig":"MEUCIQCj3b9qvyTDfSUSUSojgya2fa5Op46olZRj3ZCUyj+vVQIgBbARUiemC7fqw4OZYHEa/scvtewwUVqF03Wkl5XAOjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3981566},"type":"module","engines":{"node":">=18"},"gitHead":"54100ea77efaae99259056a092a35b44e0928425","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Terminal select & copy · scripts reuse the push channel","zh":"终端文字选中拷贝 · 脚本复用推送通道","date":"2026-07-13","version":"0.14.0"},{"en":"Tappable, highlighted file paths","zh":"终端文件路径高亮可点","date":"2026-07-12","version":"0.13.0"},{"en":"Name a takeover session · Homebrew install","zh":"接管会话可自定义名称 + Homebrew 一键安装","date":"2026-07-11","version":"0.12.3"},{"en":"Home-screen icon: right size & always fresh","zh":"修复主屏图标偏大 / 换图标后不刷新","date":"2026-07-11","version":"0.12.2"},{"en":"New brand icon & two-tone wordmark","zh":"全新品牌图标与双色字标","date":"2026-07-11","version":"0.12.1"},{"en":"Swipe-scroll full-screen apps · feedback channels · chat drafts kept","zh":"全屏程序也能滑动滚动 · 反馈入口 · 聊天草稿不丢","date":"2026-07-11","version":"0.12.0"},{"en":"Fixes startup crash on Node 18","zh":"修复 Node 18 下无法启动的问题","date":"2026-07-09","version":"0.11.1"},{"en":"China-usable tunnels · setup redesigned","zh":"国内可用隧道 natapp/cpolar · 配置向导重做","date":"2026-07-08","version":"0.11.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.14.0_1783942554973_0.0023809314451608277","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"handmux","version":"0.15.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.15.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"991a3ece66a3df8314e81752bd92f2864a72a1a9","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.15.0.tgz","fileCount":85,"integrity":"sha512-frB9Kj77id1ZCvKr2UghXec7K7A2v0F2MIhnQWwK5Ilv/GHNvna2pYeOt926WbT56JXnIe6Y/SVIh5khfjG5ww==","signatures":[{"sig":"MEUCIDPdKmXf3MxwDKQWyvSSwCaYwkFmfJ3WivpM4zePVmM5AiEAzd20hgddt5DgAiKdNTrxMJ/NN3SEvb697MkdMHlCMGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4325456},"type":"module","engines":{"node":">=18"},"gitHead":"a5fd2c31a3b1ece4a15d22c3bc538c9d08bd1c91","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Keyboard-aware terminal · scroll inside full-screen apps","zh":"键盘弹起终端自适应 · 全屏程序可上下滚动","date":"2026-07-14","version":"0.15.0"},{"en":"Terminal select & copy · scripts reuse the push channel","zh":"终端文字选中拷贝 · 脚本复用推送通道","date":"2026-07-13","version":"0.14.0"},{"en":"Tappable, highlighted file paths","zh":"终端文件路径高亮可点","date":"2026-07-12","version":"0.13.0"},{"en":"Name a takeover session · Homebrew install","zh":"接管会话可自定义名称 + Homebrew 一键安装","date":"2026-07-11","version":"0.12.3"},{"en":"Home-screen icon: right size & always fresh","zh":"修复主屏图标偏大 / 换图标后不刷新","date":"2026-07-11","version":"0.12.2"},{"en":"New brand icon & two-tone wordmark","zh":"全新品牌图标与双色字标","date":"2026-07-11","version":"0.12.1"},{"en":"Swipe-scroll full-screen apps · feedback channels · chat drafts kept","zh":"全屏程序也能滑动滚动 · 反馈入口 · 聊天草稿不丢","date":"2026-07-11","version":"0.12.0"},{"en":"Fixes startup crash on Node 18","zh":"修复 Node 18 下无法启动的问题","date":"2026-07-09","version":"0.11.1"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.15.0_1784024077550_0.8906135007913072","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"handmux","version":"0.16.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.16.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"1a1c57577f0ff6d01e7ede82bffef8f117d1581f","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.16.0.tgz","fileCount":85,"integrity":"sha512-s1Tu9F6W/+DB6DAHkjxw2E0oIcqPy1uDFWi87N9JkhxONlhjMYqmTqGphmTnfrKzwj1YD4LC5j0HUziFqnp3YA==","signatures":[{"sig":"MEUCIBVQdh/Ldu53CEzm/HKyfDijfNFNKnSUVPjL7mqijvwWAiEAhiSG8oO1iy+RsdyFehgp4bbFTRuVsL1APBSi23BiSE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4346510},"type":"module","engines":{"node":">=18"},"gitHead":"c7b8a3c5c3d50ee85c447dfa55cd40a1439b439a","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Split-layout map · create & close panes from the phone","zh":"分屏布局地图 · 手机也能建/删窗格","date":"2026-07-15","version":"0.16.0"},{"en":"Keyboard-aware terminal · scroll inside full-screen apps","zh":"键盘弹起终端自适应 · 全屏程序可上下滚动","date":"2026-07-14","version":"0.15.0"},{"en":"Terminal select & copy · scripts reuse the push channel","zh":"终端文字选中拷贝 · 脚本复用推送通道","date":"2026-07-13","version":"0.14.0"},{"en":"Tappable, highlighted file paths","zh":"终端文件路径高亮可点","date":"2026-07-12","version":"0.13.0"},{"en":"Name a takeover session · Homebrew install","zh":"接管会话可自定义名称 + Homebrew 一键安装","date":"2026-07-11","version":"0.12.3"},{"en":"Home-screen icon: right size & always fresh","zh":"修复主屏图标偏大 / 换图标后不刷新","date":"2026-07-11","version":"0.12.2"},{"en":"New brand icon & two-tone wordmark","zh":"全新品牌图标与双色字标","date":"2026-07-11","version":"0.12.1"},{"en":"Swipe-scroll full-screen apps · feedback channels · chat drafts kept","zh":"全屏程序也能滑动滚动 · 反馈入口 · 聊天草稿不丢","date":"2026-07-11","version":"0.12.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.16.0_1784113358732_0.5191974853394019","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"handmux","version":"0.17.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.17.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"5631e8a431946a3f0883a761063382f7eed2c280","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.17.0.tgz","fileCount":90,"integrity":"sha512-US1GSvPm8EkkqS4yOWUFdp4R32ipmf5uOGuQdNlmm1esjQzW2nuhr7ogwrZd1jr+Tb439fw8RCFZikrEtOqhRg==","signatures":[{"sig":"MEYCIQClw+/y6OIwRNDYLTxp5EgUcR2Bq5FmDjewzbv+Lyyn4QIhANpBQtfF15sFpi0ePQoMsMfyI1K5W0bq49ga1LV51lWF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4501251},"type":"module","engines":{"node":">=18"},"gitHead":"090127f3bcbedc23db201c8d129da0aaaf88f8c1","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Chat view (experimental) · notification inbox · one-tap localhost preview","zh":"对话视图(实验性)· 通知记录 · 本机地址一键预览","date":"2026-07-18","version":"0.17.0"},{"en":"Split-layout map · create & close panes from the phone","zh":"分屏布局地图 · 手机也能建/删窗格","date":"2026-07-15","version":"0.16.0"},{"en":"Keyboard-aware terminal · scroll inside full-screen apps","zh":"键盘弹起终端自适应 · 全屏程序可上下滚动","date":"2026-07-14","version":"0.15.0"},{"en":"Terminal select & copy · scripts reuse the push channel","zh":"终端文字选中拷贝 · 脚本复用推送通道","date":"2026-07-13","version":"0.14.0"},{"en":"Tappable, highlighted file paths","zh":"终端文件路径高亮可点","date":"2026-07-12","version":"0.13.0"},{"en":"Name a takeover session · Homebrew install","zh":"接管会话可自定义名称 + Homebrew 一键安装","date":"2026-07-11","version":"0.12.3"},{"en":"Home-screen icon: right size & always fresh","zh":"修复主屏图标偏大 / 换图标后不刷新","date":"2026-07-11","version":"0.12.2"},{"en":"New brand icon & two-tone wordmark","zh":"全新品牌图标与双色字标","date":"2026-07-11","version":"0.12.1"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.17.0_1784377972844_0.977873454664046","host":"s3://npm-registry-packages-npm-production"}},"0.17.3":{"name":"handmux","version":"0.17.3","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.17.3","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"26e3b05628d3af5e1adaf0e6895a46dd087c2fbc","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.17.3.tgz","fileCount":90,"integrity":"sha512-NvcjH7Va9ZRxd/nT7cbCu7sEnouovvOzappNSRiGxbgKTBTUzMlZeB2B2Z7MS6VXwkjln/jsaHD7+BTDCQEn1Q==","signatures":[{"sig":"MEUCIQCZD6azA+06O6m05FdC4sy08vLgT/HXlGA5yLVCvIpJRQIgE+CeKQRkrnTbXSW8+2QvU/AmkyZWLE5CkbhUwvUwK1Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4506559},"type":"module","engines":{"node":">=18"},"gitHead":"84a509cf40b8aab4f337075208d10165570a8e76","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Third fix for native-install Claude detection, device-verified","zh":"三修官方一键安装的 Claude 识别,真机已验证","date":"2026-07-19","version":"0.17.3"},{"en":"Chat view (experimental) · notification inbox · one-tap localhost preview","zh":"对话视图(实验性)· 通知记录 · 本机地址一键预览","date":"2026-07-18","version":"0.17.0"},{"en":"Split-layout map · create & close panes from the phone","zh":"分屏布局地图 · 手机也能建/删窗格","date":"2026-07-15","version":"0.16.0"},{"en":"Keyboard-aware terminal · scroll inside full-screen apps","zh":"键盘弹起终端自适应 · 全屏程序可上下滚动","date":"2026-07-14","version":"0.15.0"},{"en":"Terminal select & copy · scripts reuse the push channel","zh":"终端文字选中拷贝 · 脚本复用推送通道","date":"2026-07-13","version":"0.14.0"},{"en":"Tappable, highlighted file paths","zh":"终端文件路径高亮可点","date":"2026-07-12","version":"0.13.0"},{"en":"Name a takeover session · Homebrew install","zh":"接管会话可自定义名称 + Homebrew 一键安装","date":"2026-07-11","version":"0.12.3"},{"en":"Home-screen icon: right size & always fresh","zh":"修复主屏图标偏大 / 换图标后不刷新","date":"2026-07-11","version":"0.12.2"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.17.3_1784439694724_0.36271923735882927","host":"s3://npm-registry-packages-npm-production"}},"0.17.4":{"name":"handmux","version":"0.17.4","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.17.4","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"349ed8d0efa604edb11f91f6929e984e689438bc","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.17.4.tgz","fileCount":91,"integrity":"sha512-3vm3sYeNKMk5KjCryt55lZ8wZd2nKE/ILlnRPkIRUPB0Flb7pdObdYOr7eONVK7slofWiW0T2kBeRy0+tK6gEw==","signatures":[{"sig":"MEUCIBMETtWvPzOIbHlTgCjupZ0pT1F1fDeuDCOzIdEPrbRrAiEA2FUuIYkD3bmyu7msX2/t/XJ7lsSESs3+lQwTWsuadPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4511601},"type":"module","engines":{"node":">=18"},"gitHead":"2f3c2f5f65f535dadfc01ceaad36a5093aef9274","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"HTTPS localhost previews fixed · safer notification links","zh":"HTTPS 本机预览修复 · 通知链接安全加固","date":"2026-07-19","version":"0.17.4"},{"en":"Third fix for native-install Claude detection, device-verified","zh":"三修官方一键安装的 Claude 识别,真机已验证","date":"2026-07-19","version":"0.17.3"},{"en":"Chat view (experimental) · notification inbox · one-tap localhost preview","zh":"对话视图(实验性)· 通知记录 · 本机地址一键预览","date":"2026-07-18","version":"0.17.0"},{"en":"Split-layout map · create & close panes from the phone","zh":"分屏布局地图 · 手机也能建/删窗格","date":"2026-07-15","version":"0.16.0"},{"en":"Keyboard-aware terminal · scroll inside full-screen apps","zh":"键盘弹起终端自适应 · 全屏程序可上下滚动","date":"2026-07-14","version":"0.15.0"},{"en":"Terminal select & copy · scripts reuse the push channel","zh":"终端文字选中拷贝 · 脚本复用推送通道","date":"2026-07-13","version":"0.14.0"},{"en":"Tappable, highlighted file paths","zh":"终端文件路径高亮可点","date":"2026-07-12","version":"0.13.0"},{"en":"Name a takeover session · Homebrew install","zh":"接管会话可自定义名称 + Homebrew 一键安装","date":"2026-07-11","version":"0.12.3"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.17.4_1784470858059_0.14913528676362686","host":"s3://npm-registry-packages-npm-production"}},"0.17.5":{"name":"handmux","version":"0.17.5","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.17.5","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"62808eb3edccc6c46d81c66f982b817c5ba63ca7","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.17.5.tgz","fileCount":93,"integrity":"sha512-uCO0Bs6YIkHA+e7ow+12qCEOHEK3inN9qf4iCpdCluUp/FJ3QAp6XRxZUFe+s9Eh48uenVBNWxxHkT/iOwQV7w==","signatures":[{"sig":"MEQCICg3b3gzss5Iv0gAB4a5mA/spICUsyZIIJfZHD+K2L46AiAzBzyGdUK4sNE9m/uM5F6FtjIuc8KrbHJcMJGbf7jKYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4536198},"type":"module","engines":{"node":">=18"},"gitHead":"2ac2ec2bc04c4a75df03a2a0f1f9eef1942961ca","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Notification setup fixed · stronger chat and settings reliability","zh":"通知开启修复 · 长会话与设置可靠性提升","date":"2026-07-20","version":"0.17.5"},{"en":"HTTPS localhost previews fixed · safer notification links","zh":"HTTPS 本机预览修复 · 通知链接安全加固","date":"2026-07-19","version":"0.17.4"},{"en":"Third fix for native-install Claude detection, device-verified","zh":"三修官方一键安装的 Claude 识别,真机已验证","date":"2026-07-19","version":"0.17.3"},{"en":"Chat view (experimental) · notification inbox · one-tap localhost preview","zh":"对话视图(实验性)· 通知记录 · 本机地址一键预览","date":"2026-07-18","version":"0.17.0"},{"en":"Split-layout map · create & close panes from the phone","zh":"分屏布局地图 · 手机也能建/删窗格","date":"2026-07-15","version":"0.16.0"},{"en":"Keyboard-aware terminal · scroll inside full-screen apps","zh":"键盘弹起终端自适应 · 全屏程序可上下滚动","date":"2026-07-14","version":"0.15.0"},{"en":"Terminal select & copy · scripts reuse the push channel","zh":"终端文字选中拷贝 · 脚本复用推送通道","date":"2026-07-13","version":"0.14.0"},{"en":"Tappable, highlighted file paths","zh":"终端文件路径高亮可点","date":"2026-07-12","version":"0.13.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.17.5_1784485536787_0.30595322418041326","host":"s3://npm-registry-packages-npm-production"}},"0.17.6":{"name":"handmux","version":"0.17.6","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.17.6","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"8d04be8fe67107b2ac335672fda0ad42374395f8","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.17.6.tgz","fileCount":93,"integrity":"sha512-yAR8sZBGzjN5FmORfkzOyjBHq5sQ6qSJMVrMijgvTBlnzCjqCFMzE/CjnzTzs5qMuGZSn2s0DEA8DYvdCZ2gNg==","signatures":[{"sig":"MEYCIQCStPETYTDn8mP5x9g4tRykyglTvFJqTo1CACXobGCk9gIhAKFqiAIMnY8oZ9NA/qZj++JDZarMR1EAfmOqt4N9dToh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4545755},"type":"module","engines":{"node":">=18"},"gitHead":"173c5b3197a6ae8106d850a9f46a4c99168d885e","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Traceable push results · safer chats and permissions","zh":"推送结果可追踪 · 对话与权限操作更可靠","date":"2026-07-20","version":"0.17.6"},{"en":"Notification setup fixed · stronger chat and settings reliability","zh":"通知开启修复 · 长会话与设置可靠性提升","date":"2026-07-20","version":"0.17.5"},{"en":"HTTPS localhost previews fixed · safer notification links","zh":"HTTPS 本机预览修复 · 通知链接安全加固","date":"2026-07-19","version":"0.17.4"},{"en":"Third fix for native-install Claude detection, device-verified","zh":"三修官方一键安装的 Claude 识别,真机已验证","date":"2026-07-19","version":"0.17.3"},{"en":"Chat view (experimental) · notification inbox · one-tap localhost preview","zh":"对话视图(实验性)· 通知记录 · 本机地址一键预览","date":"2026-07-18","version":"0.17.0"},{"en":"Split-layout map · create & close panes from the phone","zh":"分屏布局地图 · 手机也能建/删窗格","date":"2026-07-15","version":"0.16.0"},{"en":"Keyboard-aware terminal · scroll inside full-screen apps","zh":"键盘弹起终端自适应 · 全屏程序可上下滚动","date":"2026-07-14","version":"0.15.0"},{"en":"Terminal select & copy · scripts reuse the push channel","zh":"终端文字选中拷贝 · 脚本复用推送通道","date":"2026-07-13","version":"0.14.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.17.6_1784523042513_0.47007361031037154","host":"s3://npm-registry-packages-npm-production"}},"0.17.7":{"name":"handmux","version":"0.17.7","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.17.7","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"96022866c9894eb749727a36f83395437e9bc2ac","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.17.7.tgz","fileCount":94,"integrity":"sha512-/u5IM6vyjUWijQi2Zw8J0JkdEBjjzOAsbsbFe9xrUWiCnnHNNag2xngSiaw5hqPYvgF8fozx8X1dRw5Jdn3sUw==","signatures":[{"sig":"MEQCIF1uNUn+D4DrEjLVxSxBW9Zn7xwsO35tyL6KzbhkJWpIAiArG4mErHgZEMBB+2C6xYboP0sj2hXh7+8legm8qrJUlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4561031},"type":"module","engines":{"node":">=18"},"gitHead":"18b1b7a510909c37a6909aefb72f088291ed63a5","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Single-instance startup guard · WSL status fix","zh":"单实例启动兜底 · WSL 状态命令修复","date":"2026-07-20","version":"0.17.7"},{"en":"Traceable push results · safer chats and permissions","zh":"推送结果可追踪 · 对话与权限操作更可靠","date":"2026-07-20","version":"0.17.6"},{"en":"Notification setup fixed · stronger chat and settings reliability","zh":"通知开启修复 · 长会话与设置可靠性提升","date":"2026-07-20","version":"0.17.5"},{"en":"HTTPS localhost previews fixed · safer notification links","zh":"HTTPS 本机预览修复 · 通知链接安全加固","date":"2026-07-19","version":"0.17.4"},{"en":"Third fix for native-install Claude detection, device-verified","zh":"三修官方一键安装的 Claude 识别,真机已验证","date":"2026-07-19","version":"0.17.3"},{"en":"Chat view (experimental) · notification inbox · one-tap localhost preview","zh":"对话视图(实验性)· 通知记录 · 本机地址一键预览","date":"2026-07-18","version":"0.17.0"},{"en":"Split-layout map · create & close panes from the phone","zh":"分屏布局地图 · 手机也能建/删窗格","date":"2026-07-15","version":"0.16.0"},{"en":"Keyboard-aware terminal · scroll inside full-screen apps","zh":"键盘弹起终端自适应 · 全屏程序可上下滚动","date":"2026-07-14","version":"0.15.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.17.7_1784531554924_0.8239950810086876","host":"s3://npm-registry-packages-npm-production"}},"0.17.8":{"name":"handmux","version":"0.17.8","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.17.8","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"65f3082fca9b41213e96b3d50637fdc9cc3a1df5","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.17.8.tgz","fileCount":94,"integrity":"sha512-2XTTtB6F+LQ7PBdXyAfGwUJKx6TMvjZvYrvAui43pKqnSiTeEZWjqipHKA62oC3O66OZTtE3wFcny/QdikD0AA==","signatures":[{"sig":"MEQCIAxeWJA34u0waMW/qxQIth581zfIifSn6pljmEyUW6kIAiBg/RcIVgh3xxIAU4iDiiyyGytJF8VGV0bcu+J8A79isg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4563274},"type":"module","engines":{"node":">=18"},"gitHead":"aa683f39dee5f4e09e52f52ade056eaf0537dd36","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Pane dimensions in the map · iPhone interaction fixes","zh":"分屏地图显示尺寸 · iPhone 交互修复","date":"2026-07-20","version":"0.17.8"},{"en":"Single-instance startup guard · WSL status fix","zh":"单实例启动兜底 · WSL 状态命令修复","date":"2026-07-20","version":"0.17.7"},{"en":"Traceable push results · safer chats and permissions","zh":"推送结果可追踪 · 对话与权限操作更可靠","date":"2026-07-20","version":"0.17.6"},{"en":"Notification setup fixed · stronger chat and settings reliability","zh":"通知开启修复 · 长会话与设置可靠性提升","date":"2026-07-20","version":"0.17.5"},{"en":"HTTPS localhost previews fixed · safer notification links","zh":"HTTPS 本机预览修复 · 通知链接安全加固","date":"2026-07-19","version":"0.17.4"},{"en":"Third fix for native-install Claude detection, device-verified","zh":"三修官方一键安装的 Claude 识别,真机已验证","date":"2026-07-19","version":"0.17.3"},{"en":"Chat view (experimental) · notification inbox · one-tap localhost preview","zh":"对话视图(实验性)· 通知记录 · 本机地址一键预览","date":"2026-07-18","version":"0.17.0"},{"en":"Split-layout map · create & close panes from the phone","zh":"分屏布局地图 · 手机也能建/删窗格","date":"2026-07-15","version":"0.16.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.17.8_1784551940891_0.0809189910202961","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"handmux","version":"0.18.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.18.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"ba416cca407f2523e0f56343c77c4c0e2db027c7","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.18.0.tgz","fileCount":116,"integrity":"sha512-/UJDJaoYaBnqTDbCL/65RowsZ18iMfGK+3E5lWc1s7zlekq2WhV4E+mz8+M35r0r2PMa3QYuI3D5+viq/iwO3Q==","signatures":[{"sig":"MEUCIQCaXPuppx+SG0Q/PNGFFuAU7h6KXIuJ7ohCoHed2wbbfAIgfzEBoE/fEdjU5WByVAptchM4A+hil0lvBpsKOh7yBAE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4823693},"type":"module","engines":{"node":">=18"},"gitHead":"a0e0721c27616c3c3bde8a459563d0b09dbaec25","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs","test:workspace-docker":"HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Tmux workspace recovery · customizable shortcuts","zh":"Tmux 工作区恢复 · 快捷栏自由定制","date":"2026-07-22","version":"0.18.0"},{"en":"Pane dimensions in the map · iPhone interaction fixes","zh":"分屏地图显示尺寸 · iPhone 交互修复","date":"2026-07-20","version":"0.17.8"},{"en":"Single-instance startup guard · WSL status fix","zh":"单实例启动兜底 · WSL 状态命令修复","date":"2026-07-20","version":"0.17.7"},{"en":"Traceable push results · safer chats and permissions","zh":"推送结果可追踪 · 对话与权限操作更可靠","date":"2026-07-20","version":"0.17.6"},{"en":"Notification setup fixed · stronger chat and settings reliability","zh":"通知开启修复 · 长会话与设置可靠性提升","date":"2026-07-20","version":"0.17.5"},{"en":"HTTPS localhost previews fixed · safer notification links","zh":"HTTPS 本机预览修复 · 通知链接安全加固","date":"2026-07-19","version":"0.17.4"},{"en":"Third fix for native-install Claude detection, device-verified","zh":"三修官方一键安装的 Claude 识别,真机已验证","date":"2026-07-19","version":"0.17.3"},{"en":"Chat view (experimental) · notification inbox · one-tap localhost preview","zh":"对话视图(实验性)· 通知记录 · 本机地址一键预览","date":"2026-07-18","version":"0.17.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.18.0_1784731380364_0.918268813808506","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"handmux","version":"0.19.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.19.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"49f96ce2092e2ca945ed7985de7be3243229390c","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.19.0.tgz","fileCount":118,"integrity":"sha512-OtfhcFpL7NrPOEN5ZapgQtwl81lsQMg+62nuY02hCziA1XUd8JcSM/ni2IQKQThGmApUTMfg/PTIY+fxNI6zMg==","signatures":[{"sig":"MEYCIQCLvlxNWEEf84+RJdsXvqRPVbUDgSexNpYItr+XjLDkYgIhAIMyt+CkDtip9ENKCuspFU8LJiUivwtvXefKWWzgfZVj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4857425},"type":"module","engines":{"node":">=18"},"gitHead":"8e902151b616bd3909ddfe35e28828ef9fbab01c","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs","test:workspace-docker":"HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Desktop keyboard input · faster window switching","zh":"电脑物理键盘直输 · Window 切换更流畅","date":"2026-07-25","version":"0.19.0"},{"en":"Tmux workspace recovery · customizable shortcuts","zh":"Tmux 工作区恢复 · 快捷栏自由定制","date":"2026-07-22","version":"0.18.0"},{"en":"Pane dimensions in the map · iPhone interaction fixes","zh":"分屏地图显示尺寸 · iPhone 交互修复","date":"2026-07-20","version":"0.17.8"},{"en":"Single-instance startup guard · WSL status fix","zh":"单实例启动兜底 · WSL 状态命令修复","date":"2026-07-20","version":"0.17.7"},{"en":"Traceable push results · safer chats and permissions","zh":"推送结果可追踪 · 对话与权限操作更可靠","date":"2026-07-20","version":"0.17.6"},{"en":"Notification setup fixed · stronger chat and settings reliability","zh":"通知开启修复 · 长会话与设置可靠性提升","date":"2026-07-20","version":"0.17.5"},{"en":"HTTPS localhost previews fixed · safer notification links","zh":"HTTPS 本机预览修复 · 通知链接安全加固","date":"2026-07-19","version":"0.17.4"},{"en":"Third fix for native-install Claude detection, device-verified","zh":"三修官方一键安装的 Claude 识别,真机已验证","date":"2026-07-19","version":"0.17.3"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.19.0_1784967080252_0.5777229752299669","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"handmux","version":"0.20.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.20.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"4e281440fd49a5987fb7cf6ba6a4f64cb8b60336","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.20.0.tgz","fileCount":120,"integrity":"sha512-9lplFym+9tQ4yDkU9MWfI2MKS250mVyuDxZaWid27XXfWHJP40F3iQWKsEvjGevrfiJ+ScFx98wmNOLUxihzUg==","signatures":[{"sig":"MEUCIQDVF/M/vEsaJwWrpt+N+lqkVBpvOL97BhmWKQFHMCymxgIgQJZX6H3u2By8PQiEOiORDSXqgkP3D2RNttFrJXItDbQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4945084},"type":"module","engines":{"node":">=18"},"gitHead":"bdcbd8d45f3d3ef916c2024d5d2d3d3d16d8ef98","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs","test:workspace-docker":"HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Live terminal pushing · automatic network fallback","zh":"终端实时推送 · 弱网自动回退","date":"2026-07-26","version":"0.20.0"},{"en":"Desktop keyboard input · faster window switching","zh":"电脑物理键盘直输 · Window 切换更流畅","date":"2026-07-25","version":"0.19.0"},{"en":"Tmux workspace recovery · customizable shortcuts","zh":"Tmux 工作区恢复 · 快捷栏自由定制","date":"2026-07-22","version":"0.18.0"},{"en":"Pane dimensions in the map · iPhone interaction fixes","zh":"分屏地图显示尺寸 · iPhone 交互修复","date":"2026-07-20","version":"0.17.8"},{"en":"Single-instance startup guard · WSL status fix","zh":"单实例启动兜底 · WSL 状态命令修复","date":"2026-07-20","version":"0.17.7"},{"en":"Traceable push results · safer chats and permissions","zh":"推送结果可追踪 · 对话与权限操作更可靠","date":"2026-07-20","version":"0.17.6"},{"en":"Notification setup fixed · stronger chat and settings reliability","zh":"通知开启修复 · 长会话与设置可靠性提升","date":"2026-07-20","version":"0.17.5"},{"en":"HTTPS localhost previews fixed · safer notification links","zh":"HTTPS 本机预览修复 · 通知链接安全加固","date":"2026-07-19","version":"0.17.4"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.20.0_1785061186727_0.4644595828048703","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"handmux","version":"0.20.1","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.20.1","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"8bc80f8f4f33ab655e5886ecd4b9065053f7801d","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.20.1.tgz","fileCount":120,"integrity":"sha512-1zpUMuss9GS2y4fV6fbs9qfSa/xdO8cBRfoDG2YtTCA6R38fxYQZp8vCXa1cQFQAvyu6btugiaCoZjAI0+Y3VQ==","signatures":[{"sig":"MEQCIB85ZldgTnTOmsin5N6NrqrKr6QMzLFgTXvUuVN7BORWAiBqYEo3oPK9jKcPRi93xPwjP4mFUBTxiGD/Ffs8KR91UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4948206},"type":"module","engines":{"node":">=18"},"gitHead":"7c8915248410b07b2602c8c0b5a0358528c04eeb","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs","test:workspace-docker":"HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Reliable chat sending · uninterrupted desktop input","zh":"聊天发送修复 · 电脑键盘不中断","date":"2026-07-26","version":"0.20.1"},{"en":"Live terminal pushing · automatic network fallback","zh":"终端实时推送 · 弱网自动回退","date":"2026-07-26","version":"0.20.0"},{"en":"Desktop keyboard input · faster window switching","zh":"电脑物理键盘直输 · Window 切换更流畅","date":"2026-07-25","version":"0.19.0"},{"en":"Tmux workspace recovery · customizable shortcuts","zh":"Tmux 工作区恢复 · 快捷栏自由定制","date":"2026-07-22","version":"0.18.0"},{"en":"Pane dimensions in the map · iPhone interaction fixes","zh":"分屏地图显示尺寸 · iPhone 交互修复","date":"2026-07-20","version":"0.17.8"},{"en":"Single-instance startup guard · WSL status fix","zh":"单实例启动兜底 · WSL 状态命令修复","date":"2026-07-20","version":"0.17.7"},{"en":"Traceable push results · safer chats and permissions","zh":"推送结果可追踪 · 对话与权限操作更可靠","date":"2026-07-20","version":"0.17.6"},{"en":"Notification setup fixed · stronger chat and settings reliability","zh":"通知开启修复 · 长会话与设置可靠性提升","date":"2026-07-20","version":"0.17.5"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.20.1_1785077093242_0.16568827334480685","host":"s3://npm-registry-packages-npm-production"}},"0.20.2":{"name":"handmux","version":"0.20.2","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.20.2","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"61d441599a124d595d4b0766bed312feeb6f0f4d","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.20.2.tgz","fileCount":120,"integrity":"sha512-LqemRZBakSZaM4mcAtd9EEDLeLKSp6VoNbtvZL2M3sbeWuZAvQaBLddQeeXH9KH32CMA+SjUqNCRUGdRXTpKsw==","signatures":[{"sig":"MEYCIQDc9Ho9jWBH+MbojG9lh3egnOPnFUBqxrLO8lcB445FJgIhAKqskWKJdnNjSmQ28odwhzBq8mUSYAIS+gGqeDlBmlay","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4949520},"type":"module","engines":{"node":">=18"},"gitHead":"88145117882d066aa6da5a67a6c5df08627d85a4","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs","test:workspace-docker":"HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Smoother long-running live terminals","zh":"实时终端长时间运行更流畅","date":"2026-07-27","version":"0.20.2"},{"en":"Reliable chat sending · uninterrupted desktop input","zh":"聊天发送修复 · 电脑键盘不中断","date":"2026-07-26","version":"0.20.1"},{"en":"Live terminal pushing · automatic network fallback","zh":"终端实时推送 · 弱网自动回退","date":"2026-07-26","version":"0.20.0"},{"en":"Desktop keyboard input · faster window switching","zh":"电脑物理键盘直输 · Window 切换更流畅","date":"2026-07-25","version":"0.19.0"},{"en":"Tmux workspace recovery · customizable shortcuts","zh":"Tmux 工作区恢复 · 快捷栏自由定制","date":"2026-07-22","version":"0.18.0"},{"en":"Pane dimensions in the map · iPhone interaction fixes","zh":"分屏地图显示尺寸 · iPhone 交互修复","date":"2026-07-20","version":"0.17.8"},{"en":"Single-instance startup guard · WSL status fix","zh":"单实例启动兜底 · WSL 状态命令修复","date":"2026-07-20","version":"0.17.7"},{"en":"Traceable push results · safer chats and permissions","zh":"推送结果可追踪 · 对话与权限操作更可靠","date":"2026-07-20","version":"0.17.6"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.20.2_1785090213210_0.44716212269071876","host":"s3://npm-registry-packages-npm-production"}},"0.20.3":{"name":"handmux","version":"0.20.3","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.20.3","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"b27c97bc0210df7022437fe07b4304dc2f6cbc9a","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.20.3.tgz","fileCount":120,"integrity":"sha512-x3Q3C3mO9xxpVfI70s/WByHyahpOsk2SY8yP1LaDurKgBhyNt4RTN6cCcEYP2el8KJgWC9SLaHF+qdrtzHnVRQ==","signatures":[{"sig":"MEUCIQDdwKwGIWluaLnlvD6+RjP4Yde3l3WbmQk/lBkk3Ffz5wIgQ91SkHt30JIwjgujy0qYEC3Pc/svJViJXxLM17i2vK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4952961},"type":"module","engines":{"node":">=18"},"gitHead":"8048d9db7a12fa0ca9b898ced9391b845bd9d42a","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs","test:workspace-docker":"HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"More stable, smoother live terminals","zh":"实时终端显示更稳定流畅","date":"2026-08-01","version":"0.20.3"},{"en":"Smoother long-running live terminals","zh":"实时终端长时间运行更流畅","date":"2026-07-27","version":"0.20.2"},{"en":"Reliable chat sending · uninterrupted desktop input","zh":"聊天发送修复 · 电脑键盘不中断","date":"2026-07-26","version":"0.20.1"},{"en":"Live terminal pushing · automatic network fallback","zh":"终端实时推送 · 弱网自动回退","date":"2026-07-26","version":"0.20.0"},{"en":"Desktop keyboard input · faster window switching","zh":"电脑物理键盘直输 · Window 切换更流畅","date":"2026-07-25","version":"0.19.0"},{"en":"Tmux workspace recovery · customizable shortcuts","zh":"Tmux 工作区恢复 · 快捷栏自由定制","date":"2026-07-22","version":"0.18.0"},{"en":"Pane dimensions in the map · iPhone interaction fixes","zh":"分屏地图显示尺寸 · iPhone 交互修复","date":"2026-07-20","version":"0.17.8"},{"en":"Single-instance startup guard · WSL status fix","zh":"单实例启动兜底 · WSL 状态命令修复","date":"2026-07-20","version":"0.17.7"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.20.3_1785547696857_0.10879208140545882","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"handmux","version":"0.21.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.21.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"5a8d6d29e7e7de3227a1cced985cc630838f8e8d","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.21.0.tgz","fileCount":135,"integrity":"sha512-kTyua7woCF/lIXdW2tmU4rCIRm3lshz8AOzAYHyfAKHQtjjT3jOTeEiu0C+WlvH+OUHxPqUO7QNWZhG2rmU3rQ==","signatures":[{"sig":"MEYCIQCJ6zFe+pO1JTuKztfJtMeI0o2w+qPtZ7M2sg28CdYr8gIhAOSpd5LRaExo5PJbQgQXAn4fnLgVNhmPXlnj71dLTii7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5098163},"type":"module","engines":{"node":">=20"},"gitHead":"d56d6aec520b9a69481b1f7fb17f88a2f5b4c2e8","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs","test:workspace-docker":"HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Web preview: direct, computer proxy, and static folders","zh":"网页预览：手机直连、电脑代理与静态目录","date":"2026-08-03","version":"0.21.0"},{"en":"More stable, smoother live terminals","zh":"实时终端显示更稳定流畅","date":"2026-08-01","version":"0.20.3"},{"en":"Smoother long-running live terminals","zh":"实时终端长时间运行更流畅","date":"2026-07-27","version":"0.20.2"},{"en":"Reliable chat sending · uninterrupted desktop input","zh":"聊天发送修复 · 电脑键盘不中断","date":"2026-07-26","version":"0.20.1"},{"en":"Live terminal pushing · automatic network fallback","zh":"终端实时推送 · 弱网自动回退","date":"2026-07-26","version":"0.20.0"},{"en":"Desktop keyboard input · faster window switching","zh":"电脑物理键盘直输 · Window 切换更流畅","date":"2026-07-25","version":"0.19.0"},{"en":"Tmux workspace recovery · customizable shortcuts","zh":"Tmux 工作区恢复 · 快捷栏自由定制","date":"2026-07-22","version":"0.18.0"},{"en":"Pane dimensions in the map · iPhone interaction fixes","zh":"分屏地图显示尺寸 · iPhone 交互修复","date":"2026-07-20","version":"0.17.8"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.21.0_1785696632905_0.4736728090628317","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"handmux","version":"0.22.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.22.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"c853b00cc0664242df483632ad56f5f33ffffb74","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.22.0.tgz","fileCount":135,"integrity":"sha512-Qfz0WYmd7+OQQem/8tMEoxN9FUtaDliBGWTWD4DQgmmpuQwFmuShYRsRw3QdGgVs0OLwxeVlYf+PokH8kGzXtw==","signatures":[{"sig":"MEUCIQCOxCLYzPwykK9g08dJcCX5Ev0AVTEdU8pNjKqa7g8jhgIgVonQY1VBKtoFvSTUwFRhPWvY+FOuE0hjjbboxF6YU6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5105417},"type":"module","engines":{"node":">=20"},"gitHead":"cb05c5686994b2f81f395a2467aa339d4d353859","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs","test:workspace-host":"HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Full-screen Settings · clearer window and pane management","zh":"全屏设置 · 窗口与分屏管理更清晰","date":"2026-08-03","version":"0.22.0"},{"en":"Web preview: direct, computer proxy, and static folders","zh":"网页预览：手机直连、电脑代理与静态目录","date":"2026-08-03","version":"0.21.0"},{"en":"More stable, smoother live terminals","zh":"实时终端显示更稳定流畅","date":"2026-08-01","version":"0.20.3"},{"en":"Smoother long-running live terminals","zh":"实时终端长时间运行更流畅","date":"2026-07-27","version":"0.20.2"},{"en":"Reliable chat sending · uninterrupted desktop input","zh":"聊天发送修复 · 电脑键盘不中断","date":"2026-07-26","version":"0.20.1"},{"en":"Live terminal pushing · automatic network fallback","zh":"终端实时推送 · 弱网自动回退","date":"2026-07-26","version":"0.20.0"},{"en":"Desktop keyboard input · faster window switching","zh":"电脑物理键盘直输 · Window 切换更流畅","date":"2026-07-25","version":"0.19.0"},{"en":"Tmux workspace recovery · customizable shortcuts","zh":"Tmux 工作区恢复 · 快捷栏自由定制","date":"2026-07-22","version":"0.18.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.22.0_1785773182374_0.993610669046288","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"handmux","version":"0.22.1","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.22.1","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"80158e72923d0a642fb78c9971fdba056d8041bf","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.22.1.tgz","fileCount":136,"integrity":"sha512-aAZAoJioKl1eXM3siJlX8xEbZ0YlVEM+73s+DiyN+qq7VX0CZB5ONv02NXkd1lGwNfTF8EsadeO+wf9vnIcuFg==","signatures":[{"sig":"MEUCIQCzySKqZCeSs8t7c0EeRHyj0FpIXdjjO6urqD4HNg+YKAIgP6nhmmW4AX4mtO9Vjp/nBTwCxdcC2Hd2zBHOfOeoeuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5115960},"type":"module","engines":{"node":">=20"},"gitHead":"537aced37f01a612a8bb26f084e7ea3094ffda48","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs","test:workspace-host":"HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Separate page width and site-version controls","zh":"网页宽度与网站版本分开控制","date":"2026-08-04","version":"0.22.1"},{"en":"Full-screen Settings · clearer window and pane management","zh":"全屏设置 · 窗口与分屏管理更清晰","date":"2026-08-03","version":"0.22.0"},{"en":"Web preview: direct, computer proxy, and static folders","zh":"网页预览：手机直连、电脑代理与静态目录","date":"2026-08-03","version":"0.21.0"},{"en":"More stable, smoother live terminals","zh":"实时终端显示更稳定流畅","date":"2026-08-01","version":"0.20.3"},{"en":"Smoother long-running live terminals","zh":"实时终端长时间运行更流畅","date":"2026-07-27","version":"0.20.2"},{"en":"Reliable chat sending · uninterrupted desktop input","zh":"聊天发送修复 · 电脑键盘不中断","date":"2026-07-26","version":"0.20.1"},{"en":"Live terminal pushing · automatic network fallback","zh":"终端实时推送 · 弱网自动回退","date":"2026-07-26","version":"0.20.0"},{"en":"Desktop keyboard input · faster window switching","zh":"电脑物理键盘直输 · Window 切换更流畅","date":"2026-07-25","version":"0.19.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.22.1_1785807619487_0.8560897764418121","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"handmux","version":"0.23.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.23.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"4f9ed458a1c275ddfb9e3631ca34b7ea31041944","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.23.0.tgz","fileCount":141,"integrity":"sha512-0qaREMQraOjcRJJUTFIG3mwsKgKs0Sysuztz+nU+i90j4vbEOkZyktO2X3W21Ovw1xmP4KAuoWv6l+CBDyqDbw==","signatures":[{"sig":"MEQCIFVxnMoSApE77lW/akNnRzVCMEA+QFTh/co+SayA1C3xAiAb5zg6WjvbV/qH9kHXAYx7RMOaMO+9WayNFL7dLS57cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5360620},"type":"module","engines":{"node":">=20"},"gitHead":"3ee1eaa90906c83b1d16329b9f8e4230b4821da6","scripts":{"dev":"node bin/handmux.js start --foreground","test":"vitest run","start":"node bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"node bin/handmux.js","prepack":"node scripts/bundle-web.mjs","test:workspace-host":"HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Managed Codex chat is here","zh":"Codex 托管对话正式上线","date":"2026-08-09","version":"0.23.0"},{"en":"Separate page width and site-version controls","zh":"网页宽度与网站版本分开控制","date":"2026-08-04","version":"0.22.1"},{"en":"Full-screen Settings · clearer window and pane management","zh":"全屏设置 · 窗口与分屏管理更清晰","date":"2026-08-03","version":"0.22.0"},{"en":"Web preview: direct, computer proxy, and static folders","zh":"网页预览：手机直连、电脑代理与静态目录","date":"2026-08-03","version":"0.21.0"},{"en":"More stable, smoother live terminals","zh":"实时终端显示更稳定流畅","date":"2026-08-01","version":"0.20.3"},{"en":"Smoother long-running live terminals","zh":"实时终端长时间运行更流畅","date":"2026-07-27","version":"0.20.2"},{"en":"Reliable chat sending · uninterrupted desktop input","zh":"聊天发送修复 · 电脑键盘不中断","date":"2026-07-26","version":"0.20.1"},{"en":"Live terminal pushing · automatic network fallback","zh":"终端实时推送 · 弱网自动回退","date":"2026-07-26","version":"0.20.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","supertest":"^7.0.0"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.23.0_1786248803316_0.6200540965341148","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"handmux","version":"0.24.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.24.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"7afac3f6b5d3f8a27368f3c2d817cbfe836d9dcc","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.24.0.tgz","fileCount":157,"integrity":"sha512-IllolpAAwAOobPZQyH54iWudSa82HlnwXTuinfxT4o8mn/1/5BPNQopbnuCmLTfM3Ye2HPsGCMCVI9G9taYzjA==","signatures":[{"sig":"MEQCIE7zYOrpNI2WzwlPQnhuLHPJmTTp1Zdogpm0YZf2OyaUAiBDD7wyHy9Y+7ckfDFmxsqLr1ZoKaQ6XfnaktFRhKSXgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5694753},"type":"module","engines":{"node":">=20"},"gitHead":"99a3cc6e0de271493262a5af57b590bc1223171c","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Native Codex task progress and Goals","zh":"Codex 任务进度与 Goal 原生上线","date":"2026-08-11","version":"0.24.0"},{"en":"Managed Codex chat is here","zh":"Codex 托管对话正式上线","date":"2026-08-09","version":"0.23.0"},{"en":"Separate page width and site-version controls","zh":"网页宽度与网站版本分开控制","date":"2026-08-04","version":"0.22.1"},{"en":"Full-screen Settings · clearer window and pane management","zh":"全屏设置 · 窗口与分屏管理更清晰","date":"2026-08-03","version":"0.22.0"},{"en":"Web preview: direct, computer proxy, and static folders","zh":"网页预览：手机直连、电脑代理与静态目录","date":"2026-08-03","version":"0.21.0"},{"en":"More stable, smoother live terminals","zh":"实时终端显示更稳定流畅","date":"2026-08-01","version":"0.20.3"},{"en":"Smoother long-running live terminals","zh":"实时终端长时间运行更流畅","date":"2026-07-27","version":"0.20.2"},{"en":"Reliable chat sending · uninterrupted desktop input","zh":"聊天发送修复 · 电脑键盘不中断","date":"2026-07-26","version":"0.20.1"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.2","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"20.19.43","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.24.0_1786460920821_0.6948965108777159","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"handmux","version":"0.25.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.25.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"08830b2256df3489bb690b0d4a3d08a3d6a920d2","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.25.0.tgz","fileCount":225,"integrity":"sha512-UYrZgDQORJBI33HEVlU0PeQrk0Qkr3HolzM/+4iv9via3oGuwiyFJCevma8Xh67vivXvyALK5XMFEuflhFYmDA==","signatures":[{"sig":"MEQCIF6Dg+E4nVu8PYYDZLvhbx8q9vGYncEP3DrEhUmoJoCTAiBsHHXgPTzPLHkXO0PwZ23WZMgSIm/s0UBOp/KPjOfqPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6929227},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"12892908b2456a9311998740d1c91de213b49f15","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Native Pi support · more reliable agent chat","zh":"Pi 原生接入 · 多 Agent 对话更可靠","date":"2026-09-01","version":"0.25.0"},{"en":"Native Codex task progress and Goals","zh":"Codex 任务进度与 Goal 原生上线","date":"2026-08-11","version":"0.24.0"},{"en":"Managed Codex chat is here","zh":"Codex 托管对话正式上线","date":"2026-08-09","version":"0.23.0"},{"en":"Separate page width and site-version controls","zh":"网页宽度与网站版本分开控制","date":"2026-08-04","version":"0.22.1"},{"en":"Full-screen Settings · clearer window and pane management","zh":"全屏设置 · 窗口与分屏管理更清晰","date":"2026-08-03","version":"0.22.0"},{"en":"Web preview: direct, computer proxy, and static folders","zh":"网页预览：手机直连、电脑代理与静态目录","date":"2026-08-03","version":"0.21.0"},{"en":"More stable, smoother live terminals","zh":"实时终端显示更稳定流畅","date":"2026-08-01","version":"0.20.3"},{"en":"Smoother long-running live terminals","zh":"实时终端长时间运行更流畅","date":"2026-07-27","version":"0.20.2"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.25.0_1788237778738_0.3170296085808322","host":"s3://npm-registry-packages-npm-production"}},"0.25.1":{"name":"handmux","version":"0.25.1","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.25.1","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"6d75b7af07f8a2d48ea3d49a9bf941ed99928cf5","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.25.1.tgz","fileCount":225,"integrity":"sha512-g44mkSb2SBbz+lqARWN3jzu39j70XvVt578WUuZSxB8ztox2MzL3fnICvcKfPFfdJ1vhptKSileEOszuKs6GKw==","signatures":[{"sig":"MEQCIBAKp4bcLdZBuXQIsBWA2bBmTUiHcttEe3QJ7FMND9uIAiAdqCHXaBqN7dNQCYkiNHI+YjydtIA6VARBamvBWDXgmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6930043},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"bf00c6a8b278623137fdee0420044ebc88bae4a3","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Fixed Codex ghost tasks and blank chats","zh":"修复 Codex 幽灵任务与对话空白","date":"2026-09-02","version":"0.25.1"},{"en":"Native Pi support · more reliable agent chat","zh":"Pi 原生接入 · 多 Agent 对话更可靠","date":"2026-09-01","version":"0.25.0"},{"en":"Native Codex task progress and Goals","zh":"Codex 任务进度与 Goal 原生上线","date":"2026-08-11","version":"0.24.0"},{"en":"Managed Codex chat is here","zh":"Codex 托管对话正式上线","date":"2026-08-09","version":"0.23.0"},{"en":"Separate page width and site-version controls","zh":"网页宽度与网站版本分开控制","date":"2026-08-04","version":"0.22.1"},{"en":"Full-screen Settings · clearer window and pane management","zh":"全屏设置 · 窗口与分屏管理更清晰","date":"2026-08-03","version":"0.22.0"},{"en":"Web preview: direct, computer proxy, and static folders","zh":"网页预览：手机直连、电脑代理与静态目录","date":"2026-08-03","version":"0.21.0"},{"en":"More stable, smoother live terminals","zh":"实时终端显示更稳定流畅","date":"2026-08-01","version":"0.20.3"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.25.1_1788279326770_0.006471438182576561","host":"s3://npm-registry-packages-npm-production"}},"0.25.2":{"name":"handmux","version":"0.25.2","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.25.2","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"c67d58083e5050f79858a27c942a2a74c5dfb29e","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.25.2.tgz","fileCount":225,"integrity":"sha512-dGB2dOOfJ1l4tWi78XPtG/x3nZ2d9r5SpAR8gDHQv0CaMj4La4obXNnPccmk9puk2P7iVwdoIz15Yb4NrYdvwQ==","signatures":[{"sig":"MEUCIB//OpQLcIn+Ir2KOM+koq5osCRoZfhP+w2PVoZ3zJSJAiEAwTAteBj5CyeSDr+UgoyqLhd0eFC30C1Y2bvLRJFfSUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6940141},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"4a9a2976441359212b42e0e20797edf2e92b817b","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Fixed Agent chat streams, queues, and tool paths","zh":"修复 Agent 对话断流、排队与工具路径","date":"2026-09-02","version":"0.25.2"},{"en":"Fixed Codex ghost tasks and blank chats","zh":"修复 Codex 幽灵任务与对话空白","date":"2026-09-02","version":"0.25.1"},{"en":"Native Pi support · more reliable agent chat","zh":"Pi 原生接入 · 多 Agent 对话更可靠","date":"2026-09-01","version":"0.25.0"},{"en":"Native Codex task progress and Goals","zh":"Codex 任务进度与 Goal 原生上线","date":"2026-08-11","version":"0.24.0"},{"en":"Managed Codex chat is here","zh":"Codex 托管对话正式上线","date":"2026-08-09","version":"0.23.0"},{"en":"Separate page width and site-version controls","zh":"网页宽度与网站版本分开控制","date":"2026-08-04","version":"0.22.1"},{"en":"Full-screen Settings · clearer window and pane management","zh":"全屏设置 · 窗口与分屏管理更清晰","date":"2026-08-03","version":"0.22.0"},{"en":"Web preview: direct, computer proxy, and static folders","zh":"网页预览：手机直连、电脑代理与静态目录","date":"2026-08-03","version":"0.21.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.25.2_1788355203938_0.7234710830791562","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"handmux","version":"0.26.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.26.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"d8cf249565bde31fd68b4bb6c3fe370e096aebcf","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.26.0.tgz","fileCount":226,"integrity":"sha512-EVO8TmgR2juqED0OoMYrM94tS9YNDBnb/Xwkh/wjbQScu9+nSEsXqDBUTaGNTDGX7BBJNmFb5rM0L1plPTIdWg==","signatures":[{"sig":"MEUCIQCLbZ7NpuFoGaG8DFQ6nbxAVoPlAXLU45UG1OAa0P85iQIgMlIdF8awpDfrwukqmmpPF5yIPJVIGR66pt6gmkSJS8w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6971134},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"88f6dcffadd7b64eb15fd5d235547731e5f83c08","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Precise chat copy · Pi context status","zh":"对话精细复制 · Pi 上下文状态","date":"2026-09-04","version":"0.26.0"},{"en":"Fixed Agent chat streams, queues, and tool paths","zh":"修复 Agent 对话断流、排队与工具路径","date":"2026-09-02","version":"0.25.2"},{"en":"Fixed Codex ghost tasks and blank chats","zh":"修复 Codex 幽灵任务与对话空白","date":"2026-09-02","version":"0.25.1"},{"en":"Native Pi support · more reliable agent chat","zh":"Pi 原生接入 · 多 Agent 对话更可靠","date":"2026-09-01","version":"0.25.0"},{"en":"Native Codex task progress and Goals","zh":"Codex 任务进度与 Goal 原生上线","date":"2026-08-11","version":"0.24.0"},{"en":"Managed Codex chat is here","zh":"Codex 托管对话正式上线","date":"2026-08-09","version":"0.23.0"},{"en":"Separate page width and site-version controls","zh":"网页宽度与网站版本分开控制","date":"2026-08-04","version":"0.22.1"},{"en":"Full-screen Settings · clearer window and pane management","zh":"全屏设置 · 窗口与分屏管理更清晰","date":"2026-08-03","version":"0.22.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.26.0_1788528979705_0.5548456262850248","host":"s3://npm-registry-packages-npm-production"}},"0.27.1":{"name":"handmux","version":"0.27.1","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.27.1","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"1cc5ee8944c54ec04615f0a67fa2df2f366792aa","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.27.1.tgz","fileCount":237,"integrity":"sha512-p5vT0lgwnw3TbHKv0X11HHxMXNYKZhwzvxxqZ+omgWm7Il36AcND0x5miCks7IuMzvLzCzOnSIwduZ2EYX5puA==","signatures":[{"sig":"MEQCIE0pGp6mGtzPAOHTjoEA0bNxoX9VgPNTMX8j+IRPC0dEAiAwBiMsgRjSWGdFqLk9XKXER/0kWZuf0gB7OvbiErC+HA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7106944},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"51918ffb93a580ebc72eda1b9ea7ff89c9aee308","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Tencent voice · terminal cursor fixes · Codex chat recovery","zh":"腾讯语音 · 终端光标修复 · Codex 对话恢复","date":"2026-09-08","version":"0.27.1"},{"en":"Tencent voice input · more accurate terminal typing","zh":"腾讯语音输入 · 终端输入更准确","date":"2026-09-05","version":"0.27.0"},{"en":"Precise chat copy · Pi context status","zh":"对话精细复制 · Pi 上下文状态","date":"2026-09-04","version":"0.26.0"},{"en":"Fixed Agent chat streams, queues, and tool paths","zh":"修复 Agent 对话断流、排队与工具路径","date":"2026-09-02","version":"0.25.2"},{"en":"Fixed Codex ghost tasks and blank chats","zh":"修复 Codex 幽灵任务与对话空白","date":"2026-09-02","version":"0.25.1"},{"en":"Native Pi support · more reliable agent chat","zh":"Pi 原生接入 · 多 Agent 对话更可靠","date":"2026-09-01","version":"0.25.0"},{"en":"Native Codex task progress and Goals","zh":"Codex 任务进度与 Goal 原生上线","date":"2026-08-11","version":"0.24.0"},{"en":"Managed Codex chat is here","zh":"Codex 托管对话正式上线","date":"2026-08-09","version":"0.23.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.27.1_1788798895662_0.5429348524506699","host":"s3://npm-registry-packages-npm-production"}},"0.27.2":{"name":"handmux","version":"0.27.2","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.27.2","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"b76691a7d0205b923e70d557cdca5e08dd978045","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.27.2.tgz","fileCount":237,"integrity":"sha512-qE/3VG0VQRODmXClLYJfQzkLY2XIFXPlO0F+w9HZg3qjYItKGNd5eEF9FVfnbYs8FMhJ++gCrMb4axg7XokQmQ==","signatures":[{"sig":"MEQCICyiDYMBfHRzLRObHhZHdGobdinLpyrQxfseZoAFtmLPAiB4BQrrppj8zyv+A1wglCKS/8mv28uhPDoVa5hhp987cQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7107484},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"57cad5152278022da73a95c5626ef799c446f89f","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Fix intermittent authentication prompts across tabs","zh":"修复多标签页偶发鉴权弹窗","date":"2026-09-08","version":"0.27.2"},{"en":"Tencent voice · terminal cursor fixes · Codex chat recovery","zh":"腾讯语音 · 终端光标修复 · Codex 对话恢复","date":"2026-09-08","version":"0.27.1"},{"en":"Tencent voice input · more accurate terminal typing","zh":"腾讯语音输入 · 终端输入更准确","date":"2026-09-05","version":"0.27.0"},{"en":"Precise chat copy · Pi context status","zh":"对话精细复制 · Pi 上下文状态","date":"2026-09-04","version":"0.26.0"},{"en":"Fixed Agent chat streams, queues, and tool paths","zh":"修复 Agent 对话断流、排队与工具路径","date":"2026-09-02","version":"0.25.2"},{"en":"Fixed Codex ghost tasks and blank chats","zh":"修复 Codex 幽灵任务与对话空白","date":"2026-09-02","version":"0.25.1"},{"en":"Native Pi support · more reliable agent chat","zh":"Pi 原生接入 · 多 Agent 对话更可靠","date":"2026-09-01","version":"0.25.0"},{"en":"Native Codex task progress and Goals","zh":"Codex 任务进度与 Goal 原生上线","date":"2026-08-11","version":"0.24.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.27.2_1788871068568_0.9504915255332878","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"handmux","version":"0.29.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.29.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"4e2d0b0cd010586d111e3ec185bcbcf637116d49","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.29.0.tgz","fileCount":249,"integrity":"sha512-rfX9Zo2NOWUuvNTpjH4Fd7PiFXUVyIazGwbPvzY3F/aMJWC1fGOJbLX8bbYedCFUsGso9bXnpICKIqIYkvzfvg==","signatures":[{"sig":"MEUCIGpW2xiwtGTNUe86bmZbZ0VGN5vyZAGAHL6emt1Q0Bw9AiEAjFUWZQwETgyBjk3Ia3y2rSsBfZ/1pHRL3Z7/I8gHEQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7427731},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"606736d9aaf2371ea967a78be58ffba5c4d041c2","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Trusted device and address protection","zh":"可信设备与可信地址保护","date":"2026-09-16","version":"0.29.0"},{"en":"More reliable Claude chat · tool image previews","zh":"Claude 对话更可靠 · 工具图片预览","date":"2026-09-11","version":"0.28.0"},{"en":"Fix intermittent authentication prompts across tabs","zh":"修复多标签页偶发鉴权弹窗","date":"2026-09-08","version":"0.27.2"},{"en":"Tencent voice · terminal cursor fixes · Codex chat recovery","zh":"腾讯语音 · 终端光标修复 · Codex 对话恢复","date":"2026-09-08","version":"0.27.1"},{"en":"Tencent voice input · more accurate terminal typing","zh":"腾讯语音输入 · 终端输入更准确","date":"2026-09-05","version":"0.27.0"},{"en":"Precise chat copy · Pi context status","zh":"对话精细复制 · Pi 上下文状态","date":"2026-09-04","version":"0.26.0"},{"en":"Fixed Agent chat streams, queues, and tool paths","zh":"修复 Agent 对话断流、排队与工具路径","date":"2026-09-02","version":"0.25.2"},{"en":"Fixed Codex ghost tasks and blank chats","zh":"修复 Codex 幽灵任务与对话空白","date":"2026-09-02","version":"0.25.1"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.29.0_1789557289490_0.2643734511604665","host":"s3://npm-registry-packages-npm-production"}},"0.29.1":{"name":"handmux","version":"0.29.1","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.29.1","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"50416a9cc092a506b932a3b65cea696495f15a2f","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.29.1.tgz","fileCount":249,"integrity":"sha512-OyBh9DK8E5Zswt3yueJAAnc9loLvMaMMQKrVaxh1Hb/ubbP6JHJSwJZZwrgiQh/wRvMLWHTQ5fHsN+ED4KDw6w==","signatures":[{"sig":"MEQCIDS7sPAwEW5W35VCGNHja4ELYculZ7TT1YnN6XM9PQFhAiBoAdU7V/UN03xnXMh8aLXqwsh/ueGzVjVBb8DaW9HXcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCx5xC466dYRcQMQhUO9jbwP0pE9o8xP2+TmvaZoI1IkgIgVA7IwJM+tXBiPGTNL8F06/0ci0VgJEmPG7A8T740PvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7437956},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"1d5949bf70527a10dff69496db96b96aa8bbbee0","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Fix lost Claude chat entries · no slowdown after long runs","zh":"修复 Claude 对话入口丢失 · 长时间运行不再变卡","date":"2026-09-18","version":"0.29.1"},{"en":"Trusted device and address protection","zh":"可信设备与可信地址保护","date":"2026-09-16","version":"0.29.0"},{"en":"More reliable Claude chat · tool image previews","zh":"Claude 对话更可靠 · 工具图片预览","date":"2026-09-11","version":"0.28.0"},{"en":"Fix intermittent authentication prompts across tabs","zh":"修复多标签页偶发鉴权弹窗","date":"2026-09-08","version":"0.27.2"},{"en":"Tencent voice · terminal cursor fixes · Codex chat recovery","zh":"腾讯语音 · 终端光标修复 · Codex 对话恢复","date":"2026-09-08","version":"0.27.1"},{"en":"Tencent voice input · more accurate terminal typing","zh":"腾讯语音输入 · 终端输入更准确","date":"2026-09-05","version":"0.27.0"},{"en":"Precise chat copy · Pi context status","zh":"对话精细复制 · Pi 上下文状态","date":"2026-09-04","version":"0.26.0"},{"en":"Fixed Agent chat streams, queues, and tool paths","zh":"修复 Agent 对话断流、排队与工具路径","date":"2026-09-02","version":"0.25.2"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.29.1_1789745634211_0.9837344249373745","host":"s3://npm-registry-packages-npm-production"}},"0.29.2":{"name":"handmux","version":"0.29.2","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.29.2","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"05f89467ce560800821e805ccab69f322bd306f8","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.29.2.tgz","fileCount":249,"integrity":"sha512-EQ3JPJ50caOmueuWwOLM0+JErwLVVetJJkwaVCC5M2awNSxEfafK8U4exPHWn8So3cdbtloOEmMwICpT7SlyyQ==","signatures":[{"sig":"MEQCICWOKgPWwyHANEkgWPvBSxqNH164tcf4gfJLhsvt29eeAiA3f8Jg0eXfsAg2ZQoMzQM52MzTDLwXXUT5V5pth3Iwdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCkqXSQc1nB/sToUmvOBk1NCx9+SuUIdGFsWg3Iz3CnWgIhAKINiu1iUbHymy6oTUhw+BOOWDCmEJstjtIVbA1/j+NR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7438632},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"5a7a411be7296a3ed65b024394a02b1057de2f9b","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Compatibility fix for Claude event reporting on Linux","zh":"修复 Linux 下 Claude 事件上报的兼容问题","date":"2026-09-18","version":"0.29.2"},{"en":"Fix lost Claude chat entries · no slowdown after long runs","zh":"修复 Claude 对话入口丢失 · 长时间运行不再变卡","date":"2026-09-18","version":"0.29.1"},{"en":"Trusted device and address protection","zh":"可信设备与可信地址保护","date":"2026-09-16","version":"0.29.0"},{"en":"More reliable Claude chat · tool image previews","zh":"Claude 对话更可靠 · 工具图片预览","date":"2026-09-11","version":"0.28.0"},{"en":"Fix intermittent authentication prompts across tabs","zh":"修复多标签页偶发鉴权弹窗","date":"2026-09-08","version":"0.27.2"},{"en":"Tencent voice · terminal cursor fixes · Codex chat recovery","zh":"腾讯语音 · 终端光标修复 · Codex 对话恢复","date":"2026-09-08","version":"0.27.1"},{"en":"Tencent voice input · more accurate terminal typing","zh":"腾讯语音输入 · 终端输入更准确","date":"2026-09-05","version":"0.27.0"},{"en":"Precise chat copy · Pi context status","zh":"对话精细复制 · Pi 上下文状态","date":"2026-09-04","version":"0.26.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.29.2_1789747274288_0.4010211333666964","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"handmux","version":"0.30.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.30.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"c11805451a0ca89f4565d87550541da98ada5c1b","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.30.0.tgz","fileCount":312,"integrity":"sha512-VVGWtKa3eeL4kYpO0l10bCKbHi9RapJ3FdsWkAuWG5XNOAGqeKXtJhbXM0D527hNeoso3rRno0GHAkxtYQwdQA==","signatures":[{"sig":"MEQCICP6P7hCo0SNjruGvYmT3YIRzVzSQv+EDFMU7bpIj6AxAiALFxmrbv+l3rtej5OHIPEBqyzYqRkIQr9fxs5MHDx/fA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD5bGzYkAAuuCGetGI/Xdhtf37npgqhCF0PGP9+SQTu9QIgL9GYIdZP9tJYO9FqHJWMbpgN2wzqhQ05ve1yt0c+rBQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12664946},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"5ae59671ef5c798ea78b1f0a27e9d4f3eafb9062","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"A full document reader: read-aloud, outline, search, diagrams","zh":"文档预览全面升级：朗读、目录、查找、图表","date":"2026-09-19","version":"0.30.0"},{"en":"Compatibility fix for Claude event reporting on Linux","zh":"修复 Linux 下 Claude 事件上报的兼容问题","date":"2026-09-18","version":"0.29.2"},{"en":"Fix lost Claude chat entries · no slowdown after long runs","zh":"修复 Claude 对话入口丢失 · 长时间运行不再变卡","date":"2026-09-18","version":"0.29.1"},{"en":"Trusted device and address protection","zh":"可信设备与可信地址保护","date":"2026-09-16","version":"0.29.0"},{"en":"More reliable Claude chat · tool image previews","zh":"Claude 对话更可靠 · 工具图片预览","date":"2026-09-11","version":"0.28.0"},{"en":"Fix intermittent authentication prompts across tabs","zh":"修复多标签页偶发鉴权弹窗","date":"2026-09-08","version":"0.27.2"},{"en":"Tencent voice · terminal cursor fixes · Codex chat recovery","zh":"腾讯语音 · 终端光标修复 · Codex 对话恢复","date":"2026-09-08","version":"0.27.1"},{"en":"Tencent voice input · more accurate terminal typing","zh":"腾讯语音输入 · 终端输入更准确","date":"2026-09-05","version":"0.27.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.30.0_1789819016474_0.930223124184443","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"handmux","version":"0.31.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.31.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"2857033a2a6d00d9162d686e06a63453d385a632","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.31.0.tgz","fileCount":326,"integrity":"sha512-3KHQ+MIyWh7I7GxrKNifCJMDufV5iD/NpJtL7oOFjY62aefvdPr6E5hdNyAYGmJavKUqfMYxeo3R4bZ1wRmMiA==","signatures":[{"sig":"MEQCIB+vLCYbl+lRmdLDSHMN1aFDCABkT3IcrXDqvFQRnjVsAiBJnMxcqgWU8WL8slfRl4PQAjMirnSNouu8nuvoQuRYjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDhAy99LTGdfnwFcGgwpW16uES9w09++Jl95vftyhs+wAIhAN0GH/pPfnBLhdgWtvk6ek1xXUgyudPVuGOWEPmDXt89","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12269587},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"aed635f47227573630570fd0e5a237ad171f768c","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"CodeBuddy chat support · more reliable Agent state","zh":"CodeBuddy 对话接入 · Agent 状态更可靠","date":"2026-09-22","version":"0.31.0"},{"en":"A full document reader: read-aloud, outline, search, diagrams","zh":"文档预览全面升级：朗读、目录、查找、图表","date":"2026-09-19","version":"0.30.0"},{"en":"Compatibility fix for Claude event reporting on Linux","zh":"修复 Linux 下 Claude 事件上报的兼容问题","date":"2026-09-18","version":"0.29.2"},{"en":"Fix lost Claude chat entries · no slowdown after long runs","zh":"修复 Claude 对话入口丢失 · 长时间运行不再变卡","date":"2026-09-18","version":"0.29.1"},{"en":"Trusted device and address protection","zh":"可信设备与可信地址保护","date":"2026-09-16","version":"0.29.0"},{"en":"More reliable Claude chat · tool image previews","zh":"Claude 对话更可靠 · 工具图片预览","date":"2026-09-11","version":"0.28.0"},{"en":"Fix intermittent authentication prompts across tabs","zh":"修复多标签页偶发鉴权弹窗","date":"2026-09-08","version":"0.27.2"},{"en":"Tencent voice · terminal cursor fixes · Codex chat recovery","zh":"腾讯语音 · 终端光标修复 · Codex 对话恢复","date":"2026-09-08","version":"0.27.1"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.31.0_1790047679630_0.37541982924175543","host":"s3://npm-registry-packages-npm-production"}},"0.31.1":{"name":"handmux","version":"0.31.1","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.31.1","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"85c04de078e7d03f67c80f2d379f3dde6ce910a3","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.31.1.tgz","fileCount":326,"integrity":"sha512-pQqkR9DiRRzFz59Spi9rQEpxp5CnLa+Z8fC00DmQIRf3kuR9pRyqBCZdH/3sqHcMzYgnmZq9XPJ8iApHs+H34g==","signatures":[{"sig":"MEUCIQDkiLIPp8IlXdA7G8RG8BXKAvaQJDd08qDMEzLPoG6WnwIgBEhM8ec/VXvA3tjcUzdaJ6SN1j55vPcD9TJT6TNHJaI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCfS8v1ip33lNrU4HJ5krPVMQ6TFmTpmfSmRwx6lS4TzAIgQpDJACgU0c1aMcYe9TR67twWfgFYWJ1IibbiQ9uXx3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12272083},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"c6385056617d67b2bad97d3d35ac76272f9a110e","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Queue by default · refusals can be sent again","zh":"忙时默认排队 · 被拒可重发","date":"2026-09-22","version":"0.31.1"},{"en":"CodeBuddy chat support · more reliable Agent state","zh":"CodeBuddy 对话接入 · Agent 状态更可靠","date":"2026-09-22","version":"0.31.0"},{"en":"A full document reader: read-aloud, outline, search, diagrams","zh":"文档预览全面升级：朗读、目录、查找、图表","date":"2026-09-19","version":"0.30.0"},{"en":"Compatibility fix for Claude event reporting on Linux","zh":"修复 Linux 下 Claude 事件上报的兼容问题","date":"2026-09-18","version":"0.29.2"},{"en":"Fix lost Claude chat entries · no slowdown after long runs","zh":"修复 Claude 对话入口丢失 · 长时间运行不再变卡","date":"2026-09-18","version":"0.29.1"},{"en":"Trusted device and address protection","zh":"可信设备与可信地址保护","date":"2026-09-16","version":"0.29.0"},{"en":"More reliable Claude chat · tool image previews","zh":"Claude 对话更可靠 · 工具图片预览","date":"2026-09-11","version":"0.28.0"},{"en":"Fix intermittent authentication prompts across tabs","zh":"修复多标签页偶发鉴权弹窗","date":"2026-09-08","version":"0.27.2"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.31.1_1790074798330_0.7403191061777907","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"handmux","version":"0.32.0","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","_id":"handmux@0.32.0","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"homepage":"https://handmux.com","bugs":{"url":"https://github.com/handmux/handmux/issues"},"bin":{"handmux":"bin/handmux.js"},"dist":{"shasum":"e1649cbdd8628277b2f6de23d79fbdafaa168bef","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.32.0.tgz","fileCount":326,"integrity":"sha512-cfJGuerW50uQSqsCICIC6J47aEWkT0n/kWSVmyBI9nZixZvuUfFUQASogfkGRHdpEn6YjQKCfBM5ZY3EnykeZg==","signatures":[{"sig":"MEUCIQDt/2o0xZyb1on9hlrD/QEnLwP0/S+NjxCL2tl1Qh5tEgIgQRYGCxpEIK+61/ggwOv0ERNsnUaYqsSzet0quDocxU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCfNkmSiORrnkOtkNtjQwB44i1UQFCcLP56mKdW3c0euQIhAL5nUjWpeFn81FdXDlvSHvvmqbnsiqe3x8iPZWiAL2NP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12315421},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"47f5853d96ef8647818f96efdd1ea6267bb88380","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"whatsNew":[{"en":"Project and session navigation, rebuilt","zh":"项目与会话导航全面升级 · 抽屉切换更顺滑","date":"2026-09-24","version":"0.32.0"},{"en":"Queue by default · refusals can be sent again","zh":"忙时默认排队 · 被拒可重发","date":"2026-09-22","version":"0.31.1"},{"en":"CodeBuddy chat support · more reliable Agent state","zh":"CodeBuddy 对话接入 · Agent 状态更可靠","date":"2026-09-22","version":"0.31.0"},{"en":"A full document reader: read-aloud, outline, search, diagrams","zh":"文档预览全面升级：朗读、目录、查找、图表","date":"2026-09-19","version":"0.30.0"},{"en":"Compatibility fix for Claude event reporting on Linux","zh":"修复 Linux 下 Claude 事件上报的兼容问题","date":"2026-09-18","version":"0.29.2"},{"en":"Fix lost Claude chat entries · no slowdown after long runs","zh":"修复 Claude 对话入口丢失 · 长时间运行不再变卡","date":"2026-09-18","version":"0.29.1"},{"en":"Trusted device and address protection","zh":"可信设备与可信地址保护","date":"2026-09-16","version":"0.29.0"},{"en":"More reliable Claude chat · tool image previews","zh":"Claude 对话更可靠 · 工具图片预览","date":"2026-09-11","version":"0.28.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/handmux_0.32.0_1790253042932_0.4486971197240648","host":"s3://npm-registry-packages-npm-production"}},"0.32.1":{"_id":"handmux@0.32.1","bin":{"handmux":"bin/handmux.js"},"bugs":{"url":"https://github.com/handmux/handmux/issues"},"dist":{"shasum":"c490e8141bde6183401c404d1158526fdacf2d54","tarball":"https://registry.npmjs.org/handmux/-/handmux-0.32.1.tgz","fileCount":326,"integrity":"sha512-smZQNObSOPnOQvZzeLXXaOBOzPyhDt98MBJjuNYvQw4zav8qyg8VnNbl/IK6JKAIW7HPp3jx8hbbWTQZOmZWVA==","signatures":[{"sig":"MEQCIFF/MTQsCTCRe11R3jgqJDEi/7Y5cjPhNdvizN53gR6QAiACh2wC+UrAkaiPsWMarl1DRbBE2zVkkuon9hqtx+tceA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCpHssZG1VT7M5eyLuJdEHCsuw+5L1onBG/8kLGBf1uYQIhAJBZe+NzvfXmOo75BYvbqMTStgfabZ20HCwc8U7u9e/F"}],"unpackedSize":12346711},"name":"handmux","type":"module","author":{"name":"yuanyuanzijin"},"engines":{"node":">=22.16.0"},"gitHead":"4785bd0078c422433056a907eeb95b78ab77555f","license":"AGPL-3.0-only","scripts":{"dev":"npm run build:server && node dist/bin/handmux.js start --foreground","test":"npm run build:server && vitest run","start":"npm run build:server && node dist/bin/handmux.js start","bundle":"node scripts/bundle-web.mjs","handmux":"npm run build:server && node dist/bin/handmux.js","prepack":"npm run bundle && npm run build:server","test:pack":"node scripts/pack-smoke.mjs","typecheck":"tsc --project tsconfig.json","build:server":"node scripts/build-server.mjs","typecheck:source":"node scripts/check-typescript-product-source.mjs","test:workspace-host":"npm run build:server && HANDMUX_WORKSPACE_HOST=1 vitest run test/workspaceHost.test.js","test:workspace-docker":"npm run build:server && HANDMUX_WORKSPACE_DOCKER=1 vitest run test/workspaceDocker.test.js"},"version":"0.32.1","_npmUser":{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"},"homepage":"https://handmux.com","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"whatsNew":[{"en":"Smoother drawer and workspace switching","zh":"抽屉与工作区切换更顺滑","date":"2026-09-28","version":"0.32.1"},{"en":"Project and session navigation, rebuilt","zh":"项目与会话导航全面升级 · 抽屉切换更顺滑","date":"2026-09-24","version":"0.32.0"},{"en":"Queue by default · refusals can be sent again","zh":"忙时默认排队 · 被拒可重发","date":"2026-09-22","version":"0.31.1"},{"en":"CodeBuddy chat support · more reliable Agent state","zh":"CodeBuddy 对话接入 · Agent 状态更可靠","date":"2026-09-22","version":"0.31.0"},{"en":"A full document reader: read-aloud, outline, search, diagrams","zh":"文档预览全面升级：朗读、目录、查找、图表","date":"2026-09-19","version":"0.30.0"},{"en":"Compatibility fix for Claude event reporting on Linux","zh":"修复 Linux 下 Claude 事件上报的兼容问题","date":"2026-09-18","version":"0.29.2"},{"en":"Fix lost Claude chat entries · no slowdown after long runs","zh":"修复 Claude 对话入口丢失 · 长时间运行不再变卡","date":"2026-09-18","version":"0.29.1"},{"en":"Trusted device and address protection","zh":"可信设备与可信地址保护","date":"2026-09-16","version":"0.29.0"}],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"_npmVersion":"10.9.8","description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","directories":{},"maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0","busboy":"^1.6.0","express":"^4.19.2","tunlite":"^0.10.0","web-push":"^3.6.7","compression":"^1.8.1","@clack/prompts":"0.11.0","testcafe-hammerhead":"31.7.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@types/ws":"^8.18.1","supertest":"^7.0.0","typescript":"6.0.3","@types/node":"22.20.1","@types/busboy":"^1.5.4","@types/express":"4.17.25","@types/web-push":"^3.6.4","@types/supertest":"7.2.1","@types/compression":"^1.8.1"},"optionalDependencies":{"qrcode-terminal":"^0.12.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/handmux_0.32.1_1790526973357_0.471279523653958"}}},"time":{"created":"2026-06-28T07:49:29.762Z","modified":"2026-09-27T16:36:13.690Z","0.5.0":"2026-06-28T07:49:30.027Z","0.5.1":"2026-06-28T14:49:11.454Z","0.5.2":"2026-06-28T16:01:43.203Z","0.5.3":"2026-06-28T17:55:36.540Z","0.6.0":"2026-07-03T15:29:43.338Z","0.7.0":"2026-07-03T15:30:00.982Z","0.8.0":"2026-07-04T17:01:50.474Z","0.9.0":"2026-07-05T15:58:29.749Z","0.9.1":"2026-07-06T05:44:52.975Z","0.10.0":"2026-07-06T12:07:05.217Z","0.11.0":"2026-07-08T03:38:02.800Z","0.11.1":"2026-07-09T04:05:41.010Z","0.12.0":"2026-07-10T17:12:16.002Z","0.12.1":"2026-07-10T20:04:21.352Z","0.12.2":"2026-07-11T02:14:43.829Z","0.12.3":"2026-07-11T08:23:24.239Z","0.13.0":"2026-07-12T08:17:40.813Z","0.14.0":"2026-07-13T11:35:55.174Z","0.15.0":"2026-07-14T10:14:37.751Z","0.16.0":"2026-07-15T11:02:38.967Z","0.17.0":"2026-07-18T12:32:53.088Z","0.17.1":"2026-07-18T15:16:26.646Z","0.17.2":"2026-07-18T16:27:23.677Z","0.17.3":"2026-07-19T05:41:34.963Z","0.17.4":"2026-07-19T14:20:58.287Z","0.17.5":"2026-07-19T18:25:37.050Z","0.17.6":"2026-07-20T04:50:42.728Z","0.17.7":"2026-07-20T07:12:35.160Z","0.17.8":"2026-07-20T12:52:21.098Z","0.18.0":"2026-07-22T14:43:00.657Z","0.19.0":"2026-07-25T08:11:20.447Z","0.20.0":"2026-07-26T10:19:46.942Z","0.20.1":"2026-07-26T14:44:53.448Z","0.20.2":"2026-07-26T18:23:33.494Z","0.20.3":"2026-08-01T01:28:17.203Z","0.21.0":"2026-08-02T18:50:33.166Z","0.22.0":"2026-08-03T16:06:22.653Z","0.22.1":"2026-08-04T01:40:19.933Z","0.23.0":"2026-08-09T04:13:23.556Z","0.24.0":"2026-08-11T15:08:41.102Z","0.25.0":"2026-09-01T04:42:58.976Z","0.25.1":"2026-09-01T16:15:27.004Z","0.25.2":"2026-09-02T13:20:04.171Z","0.26.0":"2026-09-04T13:36:19.918Z","0.27.1":"2026-09-07T16:34:55.902Z","0.27.2":"2026-09-08T12:37:48.802Z","0.29.0":"2026-09-16T11:14:49.764Z","0.29.1":"2026-09-18T15:33:54.448Z","0.29.2":"2026-09-18T16:01:14.521Z","0.30.0":"2026-09-19T11:56:56.652Z","0.31.0":"2026-09-22T03:27:59.934Z","0.31.1":"2026-09-22T10:59:58.519Z","0.32.0":"2026-09-24T12:30:43.152Z","0.32.1":"2026-09-27T16:36:13.547Z"},"bugs":{"url":"https://github.com/handmux/handmux/issues"},"author":{"name":"yuanyuanzijin"},"license":"AGPL-3.0-only","homepage":"https://handmux.com","keywords":["tmux","mobile","terminal","claude-code","remote","pwa"],"repository":{"url":"git+https://github.com/handmux/handmux.git","type":"git"},"description":"A mobile vibe-coding cockpit — built on tmux: drive your live session, Claude Code / Codex — anything a terminal can run — from your phone.","maintainers":[{"name":"yuanyuanzijin","email":"yuanyuanzijin@gmail.com"}],"readme":"<p align=\"center\"><img src=\"assets/readme-banner.png\" alt=\"handmux\" width=\"420\"></p>\n\n<p align=\"center\">🌐 <a href=\"README.md\">English</a> &nbsp;·&nbsp; 🇨🇳 <b>中文</b></p>\n\n<p align=\"center\"><a href=\"https://handmux.com\"><b>handmux.com</b></a></p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/handmux\"><img src=\"https://img.shields.io/npm/v/handmux?color=cb3837&logo=npm\" alt=\"npm\"></a>\n  <a href=\"https://github.com/handmux/handmux/actions/workflows/test.yml\"><img src=\"https://github.com/handmux/handmux/actions/workflows/test.yml/badge.svg\" alt=\"CI\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-AGPL--3.0-blue\" alt=\"license: AGPL-3.0\"></a>\n  <a href=\"https://nodejs.org\"><img src=\"https://img.shields.io/badge/node-%E2%89%A522.16-339933?logo=node.js&logoColor=white\" alt=\"node\"></a>\n</p>\n\n> **一部手机,一整套移动 Vibe Coding 驾驶舱。** 基于 tmux——电脑上一行命令、手机扫码,你正跑着的会话、Claude Code、Codex、git、预览、文档全到手里,创造力随时随地都在你手上。\n\nhandmux 把电脑上的**同一个实时 tmux 工作区**带到手机或桌面浏览器。你可以继续使用 Claude Code、Codex、Pi 或任何终端工具，查看改动、处理确认、预览应用和传输文件，而不用另开一套远程会话。它完全开源、自托管，手机无需安装 App，也无需注册 handmux 账号。\n\n<p align=\"center\">\n  <img src=\"assets/handmux-run.gif\" alt=\"handmux:说出需求,Claude Code 写好,点文件名即可预览结果\" width=\"280\">\n  &nbsp;&nbsp;\n  <img src=\"assets/handmux-doc.gif\" alt=\"handmux:需要你时推送提醒,查看 git 仓库和每个 agent 的用量\" width=\"280\">\n  <br>\n  <em>真实手机浏览器、真实 pane——左:说出需求,Claude Code 直接写好,点文件名即可预览;右:需要你时推送提醒,查看 git 仓库与各 agent 用量。</em>\n</p>\n\n**[📖 文档](https://handmux.com/docs)** · **[🧭 路线图](ROADMAP.md#中文)** · **[📝 更新日志](CHANGELOG.md)** · **[📦 npm](https://www.npmjs.com/package/handmux)**\n\n## 快速上手 · 约一分钟\n\n**电脑上**需要 tmux 和 Node ≥ 22.16(手机只要个浏览器)。二选一:\n\n**Homebrew —— macOS 首选** · 顺带帮你装好 Node + tmux:\n\n```bash\nbrew install handmux/tap/handmux\n```\n\n**npm —— 任意平台** · 若你已经有 Node:\n\n```bash\nnpm i -g handmux\n```\n\n然后跑起来:\n\n```bash\nhandmux start        # 仅本机 / 同 wifi,不对外暴露\n```\n\n`start` 会打印一个**二维码**(外加地址和 token)。**手机扫它**——token 在码里,首次打开即登录。你会看到自己真实的 tmux 会话,点一个就开始操作。\n\n想从**任何地方**都连得上?加一个参数开一条免费公网 HTTPS 链接:\n\n```bash\nhandmux start --tunnel cloudflare   # 即时公网地址(自动装 cloudflared)\n```\n\n> 隧道类型、自建、Windows/WSL2、完整命令与参数 → 见 **[文档](https://handmux.com/docs)**。\n\n## 为什么是 handmux\n\n- **🧶 同一个工作区，到处继续。** 手机操控的是电脑上正在运行的真实 tmux pane，不是截图，也不是另一套云端会话。\n- **🔔 不必守着 Agent。** 随时查看哪些 pane 正在工作或等你处理，需要时收到通知并在手机上确认。\n- **🧰 完整的移动开发驾驶舱。** 终端、Agent 对话、Git、预览、文档、文件、用量和想法收集集中在一起。\n- **🔒 天生自托管。** 浏览器连接你自己的电脑，中间没有 handmux 账号服务或中转服务器。\n\n## 功能一览\n\n- **实时终端**——手机和电脑操控同一个 tmux pane，支持历史记录、物理键盘输入和原生复制粘贴。\n- **Agent 对话**——以流式对话操作 Codex；可选的 Claude Code 与 Pi 接入也能在支持的对话流程里使用同一个工作区。\n- **收件箱与确认**——集中查看多个 pane、接收推送，并远程处理权限或计划确认。\n- **Git 与预览**——查看仓库，并从浏览器打开运行中的网站、内网页面或静态目录。\n- **文档与文件**——打开可读文件、听文档朗读，并双向上传、下载或分享文件。\n- **想法与语音**——按窗口保存想法，并通过支持的讯飞或腾讯识别模式输入文字。\n- **用量概览**——查看支持的 Agent 订阅额度和已配置 API 服务商余额，完整密钥不会返回浏览器。\n- **会话韧性**——弱网下自动恢复连接，电脑重启后可恢复已保存的 tmux 工作区结构。\n- **脚本推送**——通过 `handmux push` 从本地脚本或 CI 向手机发送通知。\n- **零安装 PWA**——添加到主屏即可全屏使用，支持中文、English、日本語和 한국어。\n\n## Agent 接入\n\nCodex 接入已内置；Pi 和 Claude Code 接入可按需开启：\n\n```bash\nhandmux codex [args...]\nhandmux pi [args...]\nhandmux agent enable pi\nhandmux agent enable claude\n```\n\n状态、关闭、兼容和 reload 行为见 **[Agent 接入文档](https://handmux.com/docs#cmd-agent)**。\n\n## 连接方式\n\n默认由浏览器直连你自己的电脑。离开家庭或办公网络时，可使用公网地址，或通过自己的 Cloudflare、natapp、cpolar、SSH 配置建立隧道。详见 **[连接文档](https://handmux.com/docs#tunnels)**。\n\n## 环境要求\n\n电脑需 **Node ≥ 22.16** 与 **tmux ≥ 3.0**;手机只要浏览器。**Windows** 请装进 **WSL2**(真 Linux 内核 + 真 tmux)——见 [文档](https://handmux.com/docs#windows)。\n\n## 反馈与交流\n\n遇到 bug、或者希望 handmux 多干点什么?[**发个 Issue**](https://github.com/handmux/handmux/issues)——这是真正会被跟踪处理的渠道(中英文都行)。也欢迎加入**用户微信群**,反馈直达、用法交流:\n\n<img src=\"https://handmux.com/wechat-qr.png\" alt=\"微信用户群:扫码加作者微信,备注 handmux\" width=\"180\">\n\n## 更多\n\n**[📖 文档](https://handmux.com/docs)** · **[🧭 路线图](ROADMAP.md#中文)** · **[📝 更新日志](CHANGELOG.md)** · **[🔒 安全](SECURITY.md)** · 许可证 **AGPL-3.0**\n\n发现安全问题请私下报告(见 [SECURITY.md](SECURITY.md)),别开公开 issue。\n","readmeFilename":"README.zh-CN.md"}