{"_id":"claude-pager","_rev":"32-7dfb57d193a39d002c8160c8cd608fea","name":"claude-pager","dist-tags":{"beta":"0.3.4-beta.1","latest":"0.3.24"},"versions":{"0.1.0":{"name":"claude-pager","version":"0.1.0","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.1.0","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"66491340958038a738c85f0886bd4ba4a9b6515b","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.1.0.tgz","fileCount":143,"integrity":"sha512-LqLbH8TYbFc734DIOYELTU8aebDHVD0BK4kVoCfDxXHG2vjkLam15YxtI/JMdcIc065VDauDNGbYjU2ZAkM96A==","signatures":[{"sig":"MEYCIQD5kpfPQMfomi0dAO/beBwbmJQrFMSLTNkn3l/gUGpiJgIhAN2gjTVjjF9cAPqhIBHvq1hIqF2RBvaZx624Cbsn9Irx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218065},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"5629fcdc1e907bf45ba4fbc4139c9feac0d24575","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.1.0_1773961987858_0.7701163238880306","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"claude-pager","version":"0.1.1","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.1.1","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"f53a3d5cc6864327b37eddc840a9195fa623f19e","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.1.1.tgz","fileCount":143,"integrity":"sha512-xinkwFLN1zmLpxsI7EeFLG+jiHomVjdSd7zEd+7U6Nrre5Myt4JSwzUftLBtHYndFfgFx3DmE3DC0PlSJRPwiQ==","signatures":[{"sig":"MEQCIFYU2S0hv61rkyHocPxsj4TF95IdVaPVg+aH7/PYJBO2AiAUd7/MYvTE82pYcvyxzfYB0nA9BFpL10q8+Z48h355UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219038},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"5793338b6fd7e75400c9ce82df45a14806350053","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.1.1_1774019099784_0.583799231678803","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"claude-pager","version":"0.1.2","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.1.2","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"fb0f447fc41a005d0ba3d4b7203b85ae1e9b2fa7","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.1.2.tgz","fileCount":143,"integrity":"sha512-cdPFjIrDwIe77xxzKs5q6zJ68Z9AsGxLyPZDeAF7xqTZlce6ywQhOHZcoC5uo8qE38bgygbfTOSdC2JmI5n08g==","signatures":[{"sig":"MEQCIGd2x6np9Ohb9ex44VVI6NJI9+DGpbm7TaVKxBEjCcrKAiAksyF5wfEhNrs0aEGhTRpVFky4g9PCrgUO4TTjvuDWxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219055},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"91283e006cbeb57439328d4306b1a285b5fa9d7c","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.1.2_1774076372911_0.23226634749615616","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"claude-pager","version":"0.1.3","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.1.3","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"de5f8323eca95c61cb4599bfbf57902b9f67d4ae","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.1.3.tgz","fileCount":143,"integrity":"sha512-RNnAMRD39eybFWqHaMjaKHxvex7Cuwi/3cbZthixCAjV13hlzhMuD9AwdjUtcRsOpubNwVilr25O7ViPIXdwRA==","signatures":[{"sig":"MEUCIHq2L44tLmdLz+bYsyiQbkha0FBvwIE08HITSfzTp5ssAiEAnlMK12Qmeet1OccPun4ycmmf7C3IOa3ppzsDavVb5rU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218525},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"7bf1f26028b4ec238472ee4aa149236dab7c43e6","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.1.3_1774193240277_0.8043837573774406","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"claude-pager","version":"0.1.4","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.1.4","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"13eaf8b0bee118b8a733622e6845d10d54f49124","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.1.4.tgz","fileCount":143,"integrity":"sha512-8NbX0XO5WEAcebIV0TN4qV6bDkonf/qhsGf6xaSCreR37NLV6ybSI0j+YA25Tk0DojTCM3/o08aKamSfMLgDLA==","signatures":[{"sig":"MEUCIQDtcvco771kheqxcyb9vCicKLmwLVWoH39ps3p2XDSmdAIgCNshiSUVDtwXsPTaN8QqSYfYfhlw34mt8POCHgswsbc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218529},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"641230c01a5c786fe7aaaa560627e6386da1d37d","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.1.4_1774194336981_0.8181158965430477","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"claude-pager","version":"0.1.5","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.1.5","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"ecd77d655dfd18347b0543c8c462fb24c0f7f295","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.1.5.tgz","fileCount":143,"integrity":"sha512-MWA1rRZBHQjoFH64UGZ+YHTOfiUBFVh6c2RPEvKy0MMxVhMvDJ6sM4Z717eHSAROHIMOxBqYjip83ZeqsJX8rQ==","signatures":[{"sig":"MEUCIGL54BTeuJyUhtjQBLzM83uN+LP+bz91ZQgpRkfcLWKoAiEA54Pmbouo3TemEKy119ZR+yzpq08ISf74G9Izs0Z0XQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218529},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"7a905008fc52a440db8b5d3ad28290aab5cce91c","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.1.5_1774300431851_0.9646381797898456","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"claude-pager","version":"0.1.6","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.1.6","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"4c308c007e57bc24e0ab5f5902d49a3381cbe20f","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.1.6.tgz","fileCount":143,"integrity":"sha512-19Eh5dqGCgtbDoApAtBGYXwBDTU4oQ/VxkRHG3qshXIkE/FuSVZye6AVSwPYtBX4Br7T6p2K0oRLFStWxpCIPw==","signatures":[{"sig":"MEYCIQCjh9v+PkCWnoJ3HLvkN87sX1u5YH6P0xuuTfMKAJftjwIhAIh0H8Ijl1k+pIdCdYIgI20MHa9qKSMmUGtmWCShj9XG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218676},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"dae3af540c16fc7e46af4863dfa477dee1a8eb24","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.1.6_1774394839310_0.7921963230797155","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"claude-pager","version":"0.1.7","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.1.7","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"c137d35907de425d63fe48027d2e705136482ae7","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.1.7.tgz","fileCount":143,"integrity":"sha512-qnjd0yxMBdiB47LEdpStpA+HbnAdR/Cs9b/SfZQxunp+uvLvTLv5r7d+1+QgkqhN9JO4t1emkTMaTeFLgAp2bQ==","signatures":[{"sig":"MEUCIQCZZy6zzfVIhNSt3FdbXd/ToF0dKb9EtcFnBDPfgeIwSQIgWU2OTnHZEtTzXJD7FLwwWu95sdH1dnuaN0K6JFvw5h0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220306},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8c5574d25b3d43ae81fc41bc0f9795007e72ad0c","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.1.7_1774508329400_0.32904727594529737","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"claude-pager","version":"0.2.2","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.2.2","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"28e5065104405cbd26a35b1ed8449d06c237e8a3","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.2.2.tgz","fileCount":167,"integrity":"sha512-LVAaQKCnOjYwg39s3WiUDyL0hNHwckgpYi7K2CAPWmpCzx8URbU8bz8813bdcMq5FVUjbGvGMYMLMFTaxHbb4A==","signatures":[{"sig":"MEYCIQCEAPSuKFTG3dKKBZUMsg+mAkaUgU/GBaHJSwM9qQJn6wIhAI0W/WBE0mweEGYGaqAX7q0/ZEvqtViIEXTco+xQN1KR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338957},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e328ea5359b1909e11c6686c2b290a905339cd68","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.2.2_1775004627300_0.5524317109147958","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"claude-pager","version":"0.3.1","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.1","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"718cf231359bd64f2fa5f15f576b18644e123d96","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.1.tgz","fileCount":179,"integrity":"sha512-amgN+hxkw0mkbniSu2Uah9HC8HGmvMmMuS4zeI/0bUXAa7LdzXpVqrtUVQX3M7a0MlndigXCq2IvgSuzksl5ww==","signatures":[{"sig":"MEYCIQDH5j/ENAFV23LssMeFU5Q+dpjbGZnEey9Lmkz3mJOeYQIhAPZ0oKqpkir1uoC5GHpIK7Uga0xm3w7Px9il80oIM+kv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423593},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"d36a43dcb9a19fbf96750064ae0346464b3044e1","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.1_1775064799246_0.8414822032945344","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"claude-pager","version":"0.3.2","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.2","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"27ee58acbd7a101cd851391e7ca8cb0f0504ae42","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.2.tgz","fileCount":191,"integrity":"sha512-jbcvzlYPNG98DYI3RVx+bOcRL82TeUHQucU4ydKhM+9u905VDwie8IJ0DAdJhUTDLMI+/1tecWHoKZyUY/sTGg==","signatures":[{"sig":"MEYCIQDSoH4uZJ9ncNMXqGSCCgDoLXk+KqRo9VcIkLq/7+JO5gIhAIrMJL9qQI20iYT4J2OjS+6sWSZNfgvrwfuOkeYABYcn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434615},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"7a6cf2393ad2185d0aa4ead25055d7a5a1f886ae","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"10.9.4","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.2_1777469630504_0.19441704616263644","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"claude-pager","version":"0.3.3","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.3","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"9df7114fc848e6fc5ee2d14963d2874462402e1e","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.3.tgz","fileCount":191,"integrity":"sha512-m1BVFa7BtplxOqAmwzsMYWCNOuq5v3DuAUG2RPkWyUG0H9TQOpPLwAuO7LTSm3VazjL7rb22IbLywtHcxaD5bQ==","signatures":[{"sig":"MEUCIQDvXjvywJdeAbdk5B1yCyDkbIjIOC39lHSo/L05P8rxfQIgYw0iFIOx73QxMC+symVaOeNYxixuk91kPUuV33jNtiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":434858},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8acf430b3b6ad9963ed45c1869bafdc18b211d74","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"10.9.4","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.3_1777479073752_0.8166642853667996","host":"s3://npm-registry-packages-npm-production"}},"0.3.4-beta.0":{"name":"claude-pager","version":"0.3.4-beta.0","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.4-beta.0","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"02d2f56f7e68ce860df966838cda942e07f3e26e","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.4-beta.0.tgz","fileCount":191,"integrity":"sha512-mhKLvuxuT9ShgHFKHl19yCv86mp8x02V4IFXcnkkpSnr5HAnAYpMkK5HeUHBHAOendPWKRCLs0MJ0OX9lVgx3w==","signatures":[{"sig":"MEUCIDHhBsWm0cYxcczEe8lC2lchB6P57FCMmH9h+WHkmmxIAiEA9+srg2kocj4gjqCHYw3s4IVn2y3x+I362Hk5YbwrdDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":438652},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"5e779157411dfd885d2eb08f5c43ed29ad988d97","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"10.9.4","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.4-beta.0_1777488865450_0.24728700216552868","host":"s3://npm-registry-packages-npm-production"}},"0.3.4-beta.1":{"name":"claude-pager","version":"0.3.4-beta.1","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.4-beta.1","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"48ad41930b73c74f112effd2c52c1b5cdb9e4c13","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.4-beta.1.tgz","fileCount":191,"integrity":"sha512-jO3idS30jZo+N6YUjE8sCv4lUUkcj5AwGwE4MVPtw9m53XPrRBAemQCVE27dFowNdrDv97yCcn15liSSQRAVKA==","signatures":[{"sig":"MEYCIQD8tXojXBSOca3HYGqGo0TjIYBRHDaDpZzsskmCje0FQwIhAOrlALh04QlOXPXUBym14WFn5m9O/9ri8J7NdaWyrK8a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439977},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"be9bd0097ccc1a3e7eb7f1acd61754dd9ec6866e","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"10.9.4","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"22.22.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.4-beta.1_1777490341890_0.0667507949274726","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"claude-pager","version":"0.3.4","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.4","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"0b1e5c509558eb0f7d3b24978cc753d7883047aa","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.4.tgz","fileCount":191,"integrity":"sha512-ZXaJdi9pZSaVPsMxGnTJBiQpGU7iBhnQ4336d8Vby/Hp08gtwbCsdDNo2GTwgyQmDlcou+TzSo2ysJGknlWviA==","signatures":[{"sig":"MEUCIDsAjIjA/j57i1ran9JFE0mOXrjhpvgEpVWGuWQWkwi0AiEAjGmu4t/sIrBAAsfO5W06LoiOZoBDTnjy2WiIksKkaac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439970},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"f025199c670badce9878ad3ee993e1f491f5147f","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.4_1777562825066_0.7590864505167987","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"claude-pager","version":"0.3.5","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.5","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"38f26064c44e6b7de20fd05bfc4f72f7f2b6ed1f","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.5.tgz","fileCount":191,"integrity":"sha512-nhWW21nzGY22Ppwv46/ycAHujYfLEYRhlqS/qcR/su6OUPpYeUzVYBgRLmsi5W+fpfZsjNeH3/XTdJPnd5fXow==","signatures":[{"sig":"MEUCICr+6LfFRuzvWEGQv7lO2ngmrp2TJxoKWgy1PJrD91CyAiEAjkhb7U5Z4yRcS9DfIvAUyMi/i9xDFf2hN62PiAOvYwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":440428},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"fb0923c30d7627e431b30351c3d3943e9894adc9","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.5_1777673150191_0.6136240349447271","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"claude-pager","version":"0.3.6","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.6","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"79541dc8a5de46fd443d0f6afa1a36d81494ffb6","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.6.tgz","fileCount":191,"integrity":"sha512-w8r0CoKeU9NKxe67AZ4p8HGQUgzp1cDOZI9j3Eu4ZTkHsCtNeiDyfrORTsvHjfH8dUWeHKLwylRcXEOYa4NJtA==","signatures":[{"sig":"MEQCIE3GgZAIS1p0Yt2Ar/biQo1knd9pMkxETG4gl+Nh7lwOAiAw3zqLXk72LLknHaZXDrGce8+Ni4p18oQpqkUyiIV8zA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":444008},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"30a9edb9bee49ee6fd2d9d8b6564517d222e05e8","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.6_1777675269921_0.7112811667423085","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"claude-pager","version":"0.3.7","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.7","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"98e96de6ed421c2a65b9e6f8e36348bbe124d507","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.7.tgz","fileCount":191,"integrity":"sha512-isUzmxSDN2XhQSQMfjYzxm28nfFde6T2XskKDhDoVNRX515qxHSYsbLmJ6O43wWIdW6UA03riZbZWxGRA/5CYg==","signatures":[{"sig":"MEUCIQDcC9bumwvXPz8zeZv2oYM+PQJj7/r60gomTGPqAw64bgIgcW6g+yYS0Mda2YMsHROOoADMapaAhDvqtl91nkLVxLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":444207},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"1a952f394e4d3343ad4452d1e2a257e532ab82fa","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.7_1777677463211_0.10307601925737142","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"claude-pager","version":"0.3.8","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.8","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"d5e6f6ac20b060d9ebcbe243c57ee054e77bf01c","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.8.tgz","fileCount":195,"integrity":"sha512-k0gGd5iKL2BqbnA/5ePC9v1NCjMLAbo72qvQhXk8jwLnUtrjWHXHvUwyV0odOklJNcoyzLk6hJKMWGOqew5J3g==","signatures":[{"sig":"MEUCIA6T3BODrLRwMjGXuNfx+KErm5Gc24NqcLEzYBh7AS46AiEAvdnn+Czw9deGLmnHIL33g3Uwyv5WlP0Hf4GlpKZ7DaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":448591},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e7b93e10a15c78873c05fbd1aa64e2638e404363","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.8_1777714350396_0.7544949718476135","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"claude-pager","version":"0.3.9","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.9","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"bae162d64fc9766bdb3154a9eb208698e6d4cc35","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.9.tgz","fileCount":195,"integrity":"sha512-rxLDRjUDqB8HnioR0Hojibok9VTRuP6vJ52sLwuy2O9s02/hifBs2b+NWE6oyjwfkQCI1+/XrVeJEfT1dnaArQ==","signatures":[{"sig":"MEYCIQClzJ5ZoHibaYD4SM3PHfynMMJpEG4TFnsZ5WmzxLz3vwIhAJwnl7JtHFgAtZBVSVIWkBNUAXpHX+f2ghluYf5KylNw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":449146},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"d3e23606b601c50e9b7ce5d46aaea7a890393f58","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.9_1777716388880_0.49034511125806524","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"claude-pager","version":"0.3.10","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.10","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"60018e51c92234af12417be01efbf6ddbd27f27c","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.10.tgz","fileCount":195,"integrity":"sha512-EUvm2F0YtEHcuDnblBEKISRjsBRS8DPvjBN7TiKunie2f9+bUd5WTDinduFn6/rj5JbDHGk/LZl5hfLCCLvYhQ==","signatures":[{"sig":"MEUCIA1SeaM7ZYXMDwPy+kP0wutDSmAkIZeRVVLfHks1E5JhAiEAhFNPbBsIvHRhDxZoq0WV6znsdGr4MO3OLevd5iRWSAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":451176},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"58853e4137389d54062be4a5050d06acf1ea5f6d","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.10_1777719134948_0.8135405360335906","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"claude-pager","version":"0.3.11","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.11","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"6596746e069a14e67a0b79fa10a6663a6b1cf6e3","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.11.tgz","fileCount":195,"integrity":"sha512-WXiEmLnuR9AhBLMGETqdF5+ZGv6j7WsSt2wR9tsoHk0kxm3+1S5aDadYFWPjmj6T4QKje7vca7F9ij6BasXF9Q==","signatures":[{"sig":"MEQCIBO0q8I4tgS8AFlDwZ+Ky8ZgbWm2W23BvGqPxeAgHEsgAiBCbr4n4eQcvfVJ8gBRqwtpjEUMLLPVHCksPBalxppClA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":455285},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"afbaca13bf18ff4ade1b5ec3a6fbfccf8f51e5eb","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.11_1777793849540_0.39828302580379304","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"claude-pager","version":"0.3.12","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.12","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"8a326e4f8b7db3a33ac84d7dc51fe2b7c05ad221","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.12.tgz","fileCount":195,"integrity":"sha512-KGL75YlUVHqUIgIDjr/NDKTLXlLt6q3DfbhDGNgjtjNzJjkkv2atOpQk3yZg630y3WNQoowBj8Ip2bRm2yayDg==","signatures":[{"sig":"MEYCIQDWridwrU/ci2dgwEBLSC6zJXR31J4lMvWbcaP3F3jqLQIhAP7Nt20356kfC/Pr6mke8YQkckM7YJ5SFLnIINsTN55O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":456657},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"6477cc2538b18d479862f0e8d883edafbe3d6f2c","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.12_1777804056942_0.09469190990939902","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"claude-pager","version":"0.3.13","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.13","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"a75c1bfd023d2c772e7b4e91773ed1b427b2b421","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.13.tgz","fileCount":195,"integrity":"sha512-YRwo3AdjKPRKPX6777DL9ioe3jKtPRw5oDEt7pM8Hu1qg+wtX1oyvjrZKK7vkeuf3Lc/rLmSYLtso8evdobdXA==","signatures":[{"sig":"MEQCIGNMRTCUME+8PQUce0HgjtEK7N1hDnzjiG9g95Lin9Z9AiBXr4SQ6Qt5YdOoBbMeEcjTmwZ77JsLmLHcu43NK8X3Ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":461046},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"987f07585ec65da1b1f3b08b384d6211ca617ce6","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.13_1777815260645_0.5912358915192284","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"claude-pager","version":"0.3.14","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.14","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"28354ec31e8a178243515ae1b47e81be3d92453e","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.14.tgz","fileCount":195,"integrity":"sha512-Lt2gW4mvcgeq/quo+jI5Ru46DfwIyBYfAhpW8XYKfFaSwYLWuRQdf81XTyLAFUv2Rn6JKO65ppFa4mEGpB49vA==","signatures":[{"sig":"MEQCIBRKj0gQ2+uCH9qp+SzKAxsu8H5lSB/21o/ehaMh1pb+AiAHxiJUy0LszT/S0kDyjqPjtJPXCFCtZ6dmvEB/ebb+lQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":467875},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"ea6a2c5ede88622806620909fc641bb00a2b9364","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.14_1777817890084_0.3523304119504187","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"claude-pager","version":"0.3.15","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.15","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"f0dba937b6026783fb02a252d71053d83542f06f","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.15.tgz","fileCount":195,"integrity":"sha512-K/TLGN5Ew41kvc9Zr4hswMe6Jqbuit/81Gh4HuYcTtAXlFB81BA7azjQSQetbRlwNXc/7x0twmPSyt7ZDss/PA==","signatures":[{"sig":"MEQCICKNUYLz1OYQ3ceE83iLUBVdJz+iN0NKQPD3d9TqptGLAiBfyMFPzWwZ8mA1LT0RDKmT4rm/RyAjAUXZkptZDnDb4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469286},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"0f536133132564e9503201209674714d77b5b9fe","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.15_1777902274556_0.5718216466224053","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"claude-pager","version":"0.3.16","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.16","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"6f5ebef64af680a89ef9b46aa3e93b46b8b1548e","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.16.tgz","fileCount":195,"integrity":"sha512-UYknA5SaFFhEWON1N4/ZoWzGTvXC081teC6njxyk+KKirLd5wLJ9TQM4tFSLBnPZiKfoV34Xl33NCPq8BP49kw==","signatures":[{"sig":"MEQCICmpv7DIBjLffxMRnmOpLMAYGnzOw8QdoTHOzGKWbZ9RAiA3oLfbRJV8IkNqhMaBwtDtmzfmmWVolOaaXyCKd+UWtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":470010},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"260ff0b4c20c8f307651d6a7150915e4d69c045b","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.16_1778247643529_0.6070037048995691","host":"s3://npm-registry-packages-npm-production"}},"0.3.17":{"name":"claude-pager","version":"0.3.17","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.17","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"6a3f9c507132f8a136982e0e0f2542bf92d8d6c8","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.17.tgz","fileCount":203,"integrity":"sha512-Ecgq17k6NK6LRKak4HIhyi8GZpACRyy0DHVYJoE6RPMyyZifLD/EqPnNJpc03esmObGvPB3bPpDTJDpdIpa3UQ==","signatures":[{"sig":"MEUCIHkXm7gENGyxgti/FNaQwa0E21ixbEce81ufWiOetUuCAiEA78DsA7CmGv5WxxwnmBiCMKV9RcYU5CjSOV9JG5InbBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488618},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"6622f7028b2bae2b2669ca70c037df59e36ebab1","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.17_1778259057491_0.6965356579027868","host":"s3://npm-registry-packages-npm-production"}},"0.3.19":{"name":"claude-pager","version":"0.3.19","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.19","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"3cc4b05e841c0f93a45c4c4cde5a66ee5a2fbcf5","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.19.tgz","fileCount":203,"integrity":"sha512-SCiFaCfHnhU6xp40N9TlW6bYDzJLhus8ZrUmdtly8cgSCE1rUtBChsgd/M+MVal+dcCMQ+Hm3M+/udhd4WFDKA==","signatures":[{"sig":"MEUCIQC5swdTJK35ZOnQiyQuruHNSVWNSq+7BJZSJbz7K9mVEwIgB+J0e066L2qfj/nTuaKrIAwjLwlWJST1DwKPTU1nTxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":494401},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"3a0c22dc237bf20c1eadb68daf63d464678fb289","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.19_1778506093169_0.3357850690851307","host":"s3://npm-registry-packages-npm-production"}},"0.3.20":{"name":"claude-pager","version":"0.3.20","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.20","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"e7ae778a851fb276d781a535cfcae5e8f441bcd1","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.20.tgz","fileCount":211,"integrity":"sha512-1jdxXmu2D4etw2x7S4hODRFai5dSkXdJJlegX0vrMAZKzXbBUKlD0myxbgYXK4xgwOncq2ruAXwYAjy0SZXMmA==","signatures":[{"sig":"MEUCIQDRectP4bK1E6mTeBYTYivBvwEeigxN+Qwe9xE6FucavgIgVkS/AlOjsufVM0FvYdIAqH4bOc4l9cJzNuud7ZOXoAE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":521488},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e53da55a7cf387b09ad5aeb9fb483e55187cd0ee","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.20_1779786803830_0.6994910103445291","host":"s3://npm-registry-packages-npm-production"}},"0.3.21":{"name":"claude-pager","version":"0.3.21","keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","_id":"claude-pager@0.3.21","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"homepage":"https://github.com/sbassomp/claude-pager","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"dist":{"shasum":"9fcb7e825aed390b66c5ce7a12e6ba67790052f5","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.21.tgz","fileCount":211,"integrity":"sha512-mQ3tcnyAjysQPTJOBjwIzbpwcmn0ZHNnen+ybDhc5le/nG/6T29cnf4eLB9JRAN9GecGL22HbB6JGLC8dS82BA==","signatures":[{"sig":"MEUCIC5RI24R3MPKBX67RzeYNQ3vaSxjmGgf3RoGJBfr5waOAiEAyKNF73KDMN1OruszzIag7qcE+XYfRZa3yEa7X59aEY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":525182},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"5bfbe5ae14701994ad9f5ba0ac1b27c2b4994d3c","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src/","test":"node --test dist/**/*.test.js","build":"tsc","clean":"rm -rf dist/"},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"repository":{"url":"git+https://github.com/sbassomp/claude-pager.git","type":"git"},"_npmVersion":"11.6.2","description":"Remote notification and response relay for Claude Code CLI sessions","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fastify":"^5.3.3","commander":"^13.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^10.0.3","@eslint/js":"^10.0.1","typescript":"^5.8.3","@types/node":"^22.15.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-pager_0.3.21_1780755982809_0.040557920865135655","host":"s3://npm-registry-packages-npm-production"}},"0.3.24":{"name":"claude-pager","version":"0.3.24","description":"Remote notification and response relay for Claude Code CLI sessions","main":"dist/index.js","types":"dist/index.d.ts","bin":{"claude-pager":"dist/cli/index.js","claude-pager-hook":"dist/hooks/index.js"},"scripts":{"build":"tsc","dev":"tsx watch src/cli/index.ts","test":"node --test dist/**/*.test.js","lint":"eslint src/","clean":"rm -rf dist/"},"engines":{"node":">=20"},"keywords":["claude","claude-code","notification","relay","ntfy"],"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/sbassomp/claude-pager.git"},"homepage":"https://github.com/sbassomp/claude-pager","dependencies":{"commander":"^13.1.0","fastify":"^5.3.3"},"devDependencies":{"@eslint/js":"^10.0.1","@types/node":"^22.15.0","eslint":"^10.0.3","tsx":"^4.19.0","typescript":"^5.8.3","typescript-eslint":"^8.57.1"},"gitHead":"e27d7a953ecf3e912f83ca2bb5675287d4a16583","_id":"claude-pager@0.3.24","bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-SRXyGP8BWT9rQXCulFvfiDTv/wyY7R/y22+HE1cvn7BAoxRcOOrR5BVkfqi7U655RVg+VADBUPfB/l/as4/ERQ==","shasum":"6af998dfefaf21b9b40aea1ac654dcb8ed8b35f1","tarball":"https://registry.npmjs.org/claude-pager/-/claude-pager-0.3.24.tgz","fileCount":219,"unpackedSize":568859,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDiYJ85mNQsb7NDfQVYGD38gDChoOSn884wJs9D6AFcFgIhAMN897OKtjR/D1BjjolVDyU/A4/w8CmxM2gxKdLIKOor"}]},"_npmUser":{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"},"directories":{},"maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-pager_0.3.24_1781257439114_0.9705967059187439"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-19T23:13:07.795Z","modified":"2026-06-12T09:43:59.352Z","0.1.0":"2026-03-19T23:13:08.018Z","0.1.1":"2026-03-20T15:04:59.930Z","0.1.2":"2026-03-21T06:59:33.077Z","0.1.3":"2026-03-22T15:27:20.433Z","0.1.4":"2026-03-22T15:45:37.131Z","0.1.5":"2026-03-23T21:13:52.010Z","0.1.6":"2026-03-24T23:27:19.465Z","0.1.7":"2026-03-26T06:58:49.566Z","0.2.2":"2026-04-01T00:50:27.490Z","0.3.1":"2026-04-01T17:33:19.380Z","0.3.2":"2026-04-29T13:33:50.671Z","0.3.3":"2026-04-29T16:11:13.949Z","0.3.4-beta.0":"2026-04-29T18:54:25.646Z","0.3.4-beta.1":"2026-04-29T19:19:02.045Z","0.3.4":"2026-04-30T15:27:05.287Z","0.3.5":"2026-05-01T22:05:50.350Z","0.3.6":"2026-05-01T22:41:10.081Z","0.3.7":"2026-05-01T23:17:43.370Z","0.3.8":"2026-05-02T09:32:30.567Z","0.3.9":"2026-05-02T10:06:29.019Z","0.3.10":"2026-05-02T10:52:15.087Z","0.3.11":"2026-05-03T07:37:29.686Z","0.3.12":"2026-05-03T10:27:37.114Z","0.3.13":"2026-05-03T13:34:20.931Z","0.3.14":"2026-05-03T14:18:10.244Z","0.3.15":"2026-05-04T13:44:34.735Z","0.3.16":"2026-05-08T13:40:43.694Z","0.3.17":"2026-05-08T16:50:57.649Z","0.3.19":"2026-05-11T13:28:13.381Z","0.3.20":"2026-05-26T09:13:23.969Z","0.3.21":"2026-06-06T14:26:22.944Z","0.3.24":"2026-06-12T09:43:59.250Z"},"bugs":{"url":"https://github.com/sbassomp/claude-pager/issues"},"author":{"name":"Seb Bassompierre","email":"sbassompierre@kaseilabs.com"},"license":"MIT","homepage":"https://github.com/sbassomp/claude-pager","keywords":["claude","claude-code","notification","relay","ntfy"],"repository":{"type":"git","url":"git+https://github.com/sbassomp/claude-pager.git"},"description":"Remote notification and response relay for Claude Code CLI sessions","maintainers":[{"name":"sbassompierre","email":"sbassompierre@kaseilabs.com"}],"readme":"# claude-pager\n\n[![npm version](https://img.shields.io/npm/v/claude-pager.svg)](https://www.npmjs.com/package/claude-pager)\n[![downloads](https://img.shields.io/npm/dm/claude-pager.svg)](https://www.npmjs.com/package/claude-pager)\n[![license](https://img.shields.io/npm/l/claude-pager.svg)](https://github.com/sbassomp/claude-pager/blob/main/LICENSE)\n\nGet paged on your phone when Claude Code needs input. Reply from Telegram or ntfy, and `claude-pager` types your response into the correct terminal.\n\n![Dashboard](docs/screenshots/dashboard-v0.3.1.png)\n\n[![Demo video](docs/screenshots/02-notification.png)](https://youtu.be/lwUlf4eXAk4)\n\n> Click the image above to watch the demo (~50s)\n\n## How it works\n\n1. Claude Code hooks fire when an instance needs user input\n2. The hook enriches the event (tool name, last assistant message) and sends it to the daemon\n3. The daemon dispatches a notification to your phone via Telegram or ntfy\n4. You respond — tap Allow/Deny, type a message, or send a voice note\n5. The daemon matches the response to the right session and injects it via `tmux send-keys`\n\n| Step | Screenshot |\n|------|-----------|\n| Claude Code asks for permission | ![Claude waiting](docs/screenshots/01-typing.png) |\n| Notification arrives on your phone | ![Telegram notification](docs/screenshots/02-notification.png) |\n| You reply from Telegram | ![Reply and allow](docs/screenshots/03-allow.png) |\n| Claude resumes automatically | ![Result](docs/screenshots/04-result.png) |\n\n## Features\n\n- **Project notes** — capture ideas while agents work, send them when idle. Input via dashboard, Telegram (\"Note pour X: ...\"), CLI, or voice. Supports image paste.\n- **Web dashboard** — live view of all sessions at `http://localhost:17380/dashboard`, with Allow/Deny buttons, text replies, diff previews, notes panel, CI/CD status, and git info\n- **Multi-session** — run N Claude Code instances in tmux, responses route to the correct pane\n- **Telegram** — inline keyboards (Allow/Deny), reply-to-message routing, voice transcription (Whisper)\n- **ntfy** — self-hosted or ntfy.sh, mobile push notifications\n- **CI/CD integration** — GitLab and GitHub pipeline status per project (main/staging)\n- **Smart tmux titles** — terminal tabs auto-update with the current session topic\n- **Session recovery** — `claude-pager recover` detects existing Claude sessions in tmux\n- **Smart routing** — `#id response` for explicit targeting, auto-route for single session, session picker for ambiguous cases\n- **Fallback by project** — if a session UUID is no longer registered, matches by `cwd` (project directory)\n\n## Requirements\n\n- Node.js >= 20\n- tmux (for response injection — `brew install tmux` on macOS, `apt install tmux` on Debian/Ubuntu)\n- Linux, macOS, or WSL (see [Windows support](#windows-support))\n- A Telegram bot or ntfy server for notifications\n\n> **macOS note:** the `xdotool` injector is X11-only and unavailable. Use the default `tmux` injector (recommended) or the [VS Code extension](vscode-extension/) for response injection. The daemon, dashboard, and notifications all work natively.\n\n## Installation\n\n```bash\nnpm install -g claude-pager\n```\n\n## Setup\n\nInteractive configuration — creates `~/.claude-pager/config.json` and installs Claude Code hooks in `~/.claude/settings.json`:\n\n```bash\nclaude-pager setup\n```\n\nThe setup wizard lets you choose between **Telegram** and **ntfy** as notification channel, and verifies the connection.\n\n### Telegram\n\nYou need a Telegram bot token (from [@BotFather](https://t.me/BotFather)) and a chat ID. The setup command walks you through obtaining both.\n\n### ntfy\n\nPoint to your ntfy server (self-hosted or `https://ntfy.sh`) with a topic and optional authentication (user/password or token).\n\n## Usage\n\n### Start the daemon\n\n```bash\n# Foreground (for testing)\nclaude-pager start\n\n# As a systemd user service (recommended)\ncat > ~/.config/systemd/user/claude-pager.service << 'EOF'\n[Unit]\nDescription=Claude Code Relay Daemon\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nType=simple\nExecStart=%h/.local/bin/claude-pager start\nExecStop=%h/.local/bin/claude-pager stop\nRestart=on-failure\nRestartSec=5\nEnvironment=NODE_ENV=production\n\n[Install]\nWantedBy=default.target\nEOF\n# If claude-pager is installed via nvm, adjust ExecStart path:\n#   ExecStart=/home/you/.nvm/versions/node/v22.x.x/bin/claude-pager start\nsystemctl --user daemon-reload\nsystemctl --user enable --now claude-pager\n```\n\n### Launch Claude Code in tmux\n\n```bash\nclaude-pager run              # opens a new tmux session with claude\nclaude-pager run --resume     # pass args through to claude\n```\n\nOr just run `claude` directly inside tmux — the `SessionStart` hook registers the session automatically.\n\n### Recover existing sessions\n\nIf you already have Claude Code running in tmux panes:\n\n```bash\nclaude-pager recover\n```\n\n### Other commands\n\n```bash\nclaude-pager status           # daemon status + health check\nclaude-pager pending          # list pending questions\nclaude-pager stop             # stop the daemon\n```\n\n## Responding to notifications\n\n### Telegram\n\n- **Permission prompts** — tap the inline **Allow** or **Deny** button\n- **Idle prompts** — reply to the notification message with your answer\n- **Voice** — send a voice message, it gets transcribed and injected\n- **Free messages** — send a message without replying; if one session is active it goes there, otherwise a session picker appears\n\n### ntfy\n\n- Reply with `#<id> <response>` to target a specific notification\n- If only one question is pending, any reply routes to it\n- `allow` / `deny` auto-route to the most recent permission prompt\n\n## Web Dashboard\n\nOpen `http://127.0.0.1:17380/dashboard` in your browser. The dashboard shows:\n\n- All active sessions grouped by project\n- **Allow/Deny buttons** for permission prompts — respond without switching to Telegram\n- **Text input** for idle sessions — send a message directly to any Claude instance\n- **CI/CD pipeline status** per project (GitLab / GitHub Actions)\n- **Git status** — branch, modified files, unpushed commits, committed/pushed flags\n- **\"Needs Testing\"** badge when CI fails or code is unpushed\n- **Pin projects** to lock their dashboard position\n- **Expandable titles** — click \"...\" to see the full message\n- **Dismiss button** (🗑) to remove stale sessions\n- **Diff preview** for Edit permission prompts — see what will change before allowing\n- **Notes panel** per project — add, reorder, send, and delete notes inline\n- SSE push for instant updates, polling as fallback\n- tmux tab titles auto-update with the current session topic\n\n> **Note:** Claude Code serializes permission prompts — each sub-agent waits for its response before the next one asks, even when running in parallel. To skip permission prompts for specific tools, configure `permissions.allow` in `~/.claude/settings.json`.\n\n## Project Notes\n\nCapture ideas while agents are busy. Notes are stored per project and can be sent to a session when it becomes idle.\n\n### Adding notes\n\n```bash\n# CLI\nclaude-pager note myproject \"fix the login CSS\"\nclaude-pager notes                    # list all pending notes\n\n# Telegram (text or voice)\nNote pour myproject: fix the login CSS\n\n# Dashboard\n# Type in the \"Add a note...\" field, or paste an image (Ctrl+V)\n```\n\n### API\n\n```bash\n# Add a note\ncurl -X POST http://localhost:17380/api/v1/notes \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"project\":\"myproject\",\"text\":\"fix the CSS\"}'\n\n# List notes\ncurl http://localhost:17380/api/v1/notes?project=myproject\n\n# Send a note to its project's idle session\ncurl -X POST http://localhost:17380/api/v1/notes/<id>/send\n```\n\nNotes with images are stored in `~/.claude-pager/note-images/` (max 5 MB per image).\n\n## Configuration\n\n`~/.claude-pager/config.json`:\n\n```json\n{\n  \"port\": 17380,\n  \"channel\": {\n    \"type\": \"telegram\",\n    \"telegram\": {\n      \"botToken\": \"123456:ABC...\",\n      \"chatId\": 12345678\n    }\n  },\n  \"injector\": \"auto\"\n}\n```\n\n| Key | Default | Description |\n|-----|---------|-------------|\n| `port` | `17380` | Daemon HTTP port (localhost only) |\n| `channel.type` | `\"ntfy\"` | `\"ntfy\"` or `\"telegram\"` |\n| `injector` | `\"auto\"` | `\"auto\"`, `\"tmux\"`, or `\"xdotool\"` |\n| `ci.type` | — | `\"gitlab\"` or `\"github\"` (optional) |\n| `ci.gitlab.url` | — | GitLab server URL |\n| `ci.gitlab.token` | — | Personal access token (scope: `read_api`) |\n| `ci.github.token` | — | Personal access token (scope: `actions:read`) |\n\nThe hook port can be overridden with `CLAUDE_PAGER_PORT` environment variable.\n\n## Windows Support\n\nclaude-pager works on Windows through **WSL** (Windows Subsystem for Linux). This is the recommended setup.\n\n### Quick start (WSL)\n\n1. Install WSL if you don't have it:\n   ```powershell\n   wsl --install\n   ```\n\n2. Inside WSL, install Node.js, tmux, and claude-pager:\n   ```bash\n   sudo apt update && sudo apt install -y tmux\n   curl -fsSL https://fnm.vercel.app/install | bash  # or nvm\n   fnm install 22\n   npm install -g claude-pager\n   ```\n\n3. Configure and run:\n   ```bash\n   claude-pager setup\n   claude-pager start &\n   claude-pager run\n   ```\n\n4. Open the dashboard from Windows at `http://localhost:17380/dashboard` — WSL forwards the port automatically.\n\n### Tips\n\n- **Notifications work from anywhere** — Telegram, ntfy, and the web dashboard all work regardless of OS since they're HTTP-based.\n- **VS Code + WSL** — open your project with `code .` from WSL. The integrated terminal runs inside WSL, so tmux works normally.\n- **Windows Terminal** — pin a WSL tab for your claude-pager sessions. tmux inside Windows Terminal works great.\n- **Multiple distros** — claude-pager runs in whichever WSL distro you install it in. Sessions don't cross distro boundaries.\n\n### Native Windows (without WSL)\n\nNot currently supported. The response injection relies on tmux, which requires a Unix environment. A VS Code extension for native Windows support is on the roadmap.\n\n## Architecture\n\nStrategy + Factory pattern for pluggable components:\n\n```\nsrc/\n├── channels/          # Notification channels (ntfy, telegram)\n│   ├── channel.ts     # ChannelProvider interface\n│   └── factory.ts\n├── injectors/         # Terminal input injection (tmux, xdotool)\n│   ├── injector.ts    # InputInjector interface\n│   └── factory.ts\n├── daemon/            # HTTP server + response routing\n│   ├── server.ts      # Fastify routes with JSON Schema validation\n│   └── handlers.ts    # Channel listener logic (routing, picker)\n├── dashboard/         # Web dashboard (enricher, transcript, git, CI, HTML)\n├── sessions/          # Session tracking + pending question store\n├── hooks/             # Claude Code hook entry point\n├── utils/             # Shared utilities (html, json, validation)\n├── cli/               # Commander CLI\n└── voice/             # Telegram voice transcription (Whisper)\n```\n\nSee `docs/ARCHITECTURE.md` for the detailed flow.\n\n## Security\n\n- HTTP API binds to `127.0.0.1` only — no network exposure\n- Input validation with Fastify JSON Schema + custom validators (`isValidEventType`, `isValidSessionId`)\n- No shell injection — all child processes use `execFileSync` with argument arrays\n- Minimal context in notifications — tool names, project names, and truncated tool input (max 300 chars)\n- Memory-bounded maps (capped at 500-1000 entries)\n- Safe JSON parsing with fallbacks for corrupted files\n\n## Development\n\n```bash\nnpm run build          # TypeScript compilation\nnpm test               # Run all tests (node:test)\nnpm run lint           # ESLint with typescript-eslint\nnpm run dev            # Dev mode (tsx watch)\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}