{"_id":"@byricky/claudeding","_rev":"13-7d18d83c7e7908c9e6e4c60a40aa9b0b","name":"@byricky/claudeding","dist-tags":{"latest":"1.0.18"},"versions":{"1.0.0":{"name":"@byricky/claudeding","version":"1.0.0","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.0","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"0db488797f7bfcf58dc9b4537e5ac2f75c3ff83b","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.0.tgz","fileCount":23,"integrity":"sha512-w1zSW6RGnyoZHGLIgdwoIo+Gl4bCYQ6byi9JQ/yVzalsEsV+RIuUBb1ojXcaXBT7h2jHn7N6WmOPCiOCpFgEDA==","signatures":[{"sig":"MEQCIH3bKI33yLvTr+mxjE/3UiZm4HyVjzboROnYYPlx0EZWAiBxzqU0YcEV13ta5E49/YN72O8D6cIBWi+JZqiUh4fsIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1163290},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"b6e7a9992b66588628a61ae59e987132b57a4166","scripts":{"test":"echo \"No tests yet\" && exit 0"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"inquirer":"^13.4.1","commander":"^12.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.0_1776283734193_0.24848707679062088","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@byricky/claudeding","version":"1.0.1","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.1","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"09872581ff47aedad4675be7c5a5b6ff4f3c14ac","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.1.tgz","fileCount":23,"integrity":"sha512-k4kjSzmFuYQMQJJTDsj1aNnUe718nSAQ8Rqu9kt8wdbOXGEGZSzSensAiqv7lbocF/8Tu5eIQ1tvi5XaPSCTRQ==","signatures":[{"sig":"MEYCIQCysKuxZzCm29CBQF0IIB+C7wT26SmGREqY2Ry6qjffgAIhAKBLQVB6ehWdQG5iAZBRqXMmMFGlRMpd8aqQ/02LAokK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1163821},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"e4696f8cb63d9f734677d734787876b6779bea7a","scripts":{"test":"echo \"No tests yet\" && exit 0"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"inquirer":"^13.4.1","commander":"^12.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.1_1776285006733_0.8394494130942742","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@byricky/claudeding","version":"1.0.3","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.3","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"cdab1160726a5ded579f2ac7c59cce75e6ed7491","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.3.tgz","fileCount":23,"integrity":"sha512-R9rrgu4x/BRd+hJPXoafjJukVwjnWKXvujFdT2CvKYYhKpmTV6pzXBgFv73mzc2IkBwvOznLV87QiCdKdm420Q==","signatures":[{"sig":"MEYCIQCtNcgPEVFT8ZkMmbtAPG1Y2XZZYI+7Vq+ESwA7dx8NjQIhANXrFJZuBBULg9LXyL+JOqCXnhU9Cyyl9sOhSjzPYQl4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1165130},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"ee846993850a1bcd9793419ddce75184abe5c4e2","scripts":{"test":"echo \"No tests yet\" && exit 0"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"inquirer":"^13.4.1","commander":"^12.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.3_1776285955748_0.5795555373147943","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@byricky/claudeding","version":"1.0.4","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.4","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"fb047081210b6b1401f6aea7a7f910eb6c64bda4","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.4.tgz","fileCount":24,"integrity":"sha512-qWD3CHN+T8FIQd1dBRAC1n24kzRkbP40iGFwNC3kn8moyKNTDi6K+o+u8Hcoya7VtpFfZA62elig61zZt5Q/CQ==","signatures":[{"sig":"MEQCIAIHObRufrR6+1uwvGC11C54EXsaxfcp4V7qvihWZUvgAiBPz9DHJZZ2N9tfb9xrsOsU+2X8ewx9qGwiyk/TFPEkkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1202617},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"641c5237fe9deb92954da1d76810d595d3d1ff3c","scripts":{"test":"echo \"No tests yet\" && exit 0"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"inquirer":"^13.4.1","commander":"^12.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.4_1776286582631_0.42733483401389094","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@byricky/claudeding","version":"1.0.5","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.5","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"54f9a3a63bf11afe4bade89c2f589aba6a4442e1","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.5.tgz","fileCount":27,"integrity":"sha512-ztHMYWXF3iEH5uD931F/9ul6IJzy2FS/a/4+0F6uXe5VZ2Lo4uhsNP2J7K+lNp2RThKVUyv4H83rOnCWgO1WLg==","signatures":[{"sig":"MEYCIQDEwflbkphn8ybwtSn+eF+zl7X5tsOzF70RjZBkm+D3vQIhAO+tlpYf3ObkTgifHtyYSEgpfw3R+ZVU9lIb0G2UU3nG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1212485},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"c910e39adf5b613f38beef806930c44b0f25894c","scripts":{"test":"echo \"No tests yet\" && exit 0","postuninstall":"node scripts/postuninstall.js"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"inquirer":"^13.4.1","commander":"^12.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.5_1776287805941_0.4257567025025506","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@byricky/claudeding","version":"1.0.8","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.8","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"3e25e912d163fc66fa99e7a5516fa4e9e8d6210e","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.8.tgz","fileCount":33,"integrity":"sha512-R07jHMc3GrfUbQfbuemQ5zGUXDuvJJKT6Fzju0cCNCeP1V+y7mz4bWpuOCa798nWuZOmRK9Ox+vi7+InYNxgMg==","signatures":[{"sig":"MEYCIQCRxxU3tpKY0H9Blzjad70AgHfkfep9CXYrnSnmRHUlegIhALBSzOfJlwfusGqveF7S69WOPnPNgOmtNxDlPwP1ouRq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1241762},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"a975f9d626a2ec29e969a4f0b1af9f688a28af60","scripts":{"test":"echo \"No tests yet\" && exit 0","postuninstall":"node scripts/postuninstall.js"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"inquirer":"^13.4.1","commander":"^12.0.0"},"_hasShrinkwrap":false,"optionalDependencies":{"menubar":"^9.5.2"},"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.8_1776289118659_0.9928301882571664","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@byricky/claudeding","version":"1.0.10","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.10","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"31c20ba2520e42d1544974cf51029fcfad05c140","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.10.tgz","fileCount":39,"integrity":"sha512-1SICDNca2/kAumP4xRTAYBICY4yn/gB1gCY4i+ktVO26ij/EZHH/ZGStFzXJH6zTFmepHY8q0htFntjU2vb5cw==","signatures":[{"sig":"MEUCIHpG3W1FwfiH96HEO0WVMYRhGZYAiDdx7fZhkUs7GMzAAiEArlt6KIoA6eRmOEGPqM9PfrPh9FZWj1zUEKri4CLgAy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2356961},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"a265504936ec5b52a315c84f68a16b73c72e6be4","scripts":{"test":"echo \"No tests yet\" && exit 0","postuninstall":"node scripts/postuninstall.js"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"inquirer":"^13.4.1","commander":"^12.0.0"},"_hasShrinkwrap":false,"optionalDependencies":{"menubar":"^9.5.2"},"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.10_1776293129407_0.9187751568861418","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@byricky/claudeding","version":"1.0.11","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.11","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"9f30b6bf57a68eae522f2d2a9e37d88a5a837247","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.11.tgz","fileCount":39,"integrity":"sha512-deIiUUOEdFLp2fmAkEKmqZVpRF3BFToVbgoNtWYb2kn1FA/Q7cCZl16Dmj4l0LNZ6ClYegT74FNkXvVHINczig==","signatures":[{"sig":"MEUCICG8rQhI0HzGuLBaUAhBQBUQ/4ahyL6zU/2gOwxUOePlAiEAs9iGNQDD7jq1dheGBIpvW6VOCbga+U8NYaBJqpsnOxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2357815},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"57727c39618064474e60b5729a3aad21c5b86d0b","scripts":{"test":"echo \"No tests yet\" && exit 0","postuninstall":"node scripts/postuninstall.js"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"inquirer":"^13.4.1","commander":"^12.0.0"},"_hasShrinkwrap":false,"optionalDependencies":{"menubar":"^9.5.2"},"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.11_1776293283212_0.8020615136012814","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@byricky/claudeding","version":"1.0.12","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.12","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"cb55569e1459e3b9c36ba21b410a16eb4b1a9865","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.12.tgz","fileCount":40,"integrity":"sha512-La2lpiHM47fPR/zuhSPTX+ciGOb2W7rSHYCAlvQ2CpsZ/eu4vp2GZTGbOj7mktAIfWQEW9PrI4sBluW2boOaQw==","signatures":[{"sig":"MEUCIGIo6Oy0oqAXNgKbcabeg4n9G7ynUjSuelpM9z1LPiV1AiEA5kveS/2GBW2m+QMlF48+bIbLWlBhq0M8ZhC0VK02PEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2364789},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"57727c39618064474e60b5729a3aad21c5b86d0b","scripts":{"test":"echo \"No tests yet\" && exit 0","postuninstall":"node scripts/postuninstall.js"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"inquirer":"^13.4.1","commander":"^12.0.0"},"_hasShrinkwrap":false,"optionalDependencies":{"menubar":"^9.5.2"},"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.12_1776297962929_0.3892533080611138","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@byricky/claudeding","version":"1.0.14","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.14","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"187ab33ba1279bfbaf03a828645f1bc57843ce2b","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.14.tgz","fileCount":40,"integrity":"sha512-dCval+Pl3SvVgxg8Tx7RrBbbn2oPfOqOVwcGxQFjqRamj1k2h6RaC8m6bqTMRfEtSU2X135S+nUAyKBzBfDESA==","signatures":[{"sig":"MEUCIBM0WA/8jBg5RYsFc+CWaO9IX7MsqeZB4gMoYhQ72ylfAiEAsmswIXdap42gI7DZexj4aUzWQNnCtPf7f7epCqZGMQI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2361744},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"72578baa39219eaea087ff09e99ff5d7dec165a8","scripts":{"test":"echo \"No tests yet\" && exit 0","postuninstall":"node scripts/postuninstall.js"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"inquirer":"^13.4.1","commander":"^12.0.0","@clack/prompts":"^1.2.0"},"_hasShrinkwrap":false,"optionalDependencies":{"menubar":"^9.5.2"},"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.14_1776298925081_0.583687323934357","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@byricky/claudeding","version":"1.0.16","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.16","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"a74c9762083faf13298d98dccf6115ddca064c76","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.16.tgz","fileCount":42,"integrity":"sha512-KDF9kPJiz3MMSHnDUoIllgsWAfCA+I+ootGx464/VoScsoIPZKlPkhZlWnlmU2raaeMVq3/p5D8m5HJou73ONg==","signatures":[{"sig":"MEUCIQDm5YSoJZHjomNjBSvXE4lOp2jg5NNB9bRVAFYGZnjRQwIgHLE2dzZl8SfGz7NrzqryV9g9vPNDTTsXeXtqMW/BqH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2373021},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"186c5af6288999e9a0eb8d5e364939fcd1031cd0","scripts":{"test":"echo \"No tests yet\" && exit 0","postuninstall":"node scripts/postuninstall.js"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"commander":"^12.0.0","@clack/prompts":"^1.2.0"},"_hasShrinkwrap":false,"optionalDependencies":{"menubar":"^9.5.2"},"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.16_1776304997316_0.9698728346682746","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@byricky/claudeding","version":"1.0.17","keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","_id":"@byricky/claudeding@1.0.17","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"bin":{"claudeding":"bin/claudeding.js"},"dist":{"shasum":"a7f2a1b36b3b06b2d0b5fa1459e4f1e5d7601b3f","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.17.tgz","fileCount":42,"integrity":"sha512-vC/R+hufe5gw1XZ77VbSsv5B4PFyOYxXiU5X2Xtr8ru+1jqqnMuqqAnRdN2H9JZMyN3oiGsf76vAmETn1TPiAw==","signatures":[{"sig":"MEUCIAL6R5H8i++YrJTk8+pqSxMmzGd5B+rB++k/L9pyuA+8AiEA/GDlUpbrXhDiCb+aXYWlvSnhNdya29KujMf59mgKZfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2377873},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"7c578264fab1a5afc658d41070504e099dd74630","scripts":{"test":"echo \"No tests yet\" && exit 0","postuninstall":"node scripts/postuninstall.js"},"_npmUser":{"name":"byricky","email":"ricky@byricky.dev"},"repository":{"url":"git+https://github.com/ImJustRicky/claudeding.git","type":"git"},"_npmVersion":"10.9.4","description":"Audio notifications for Claude Code - hear when tasks complete or need input","directories":{},"_nodeVersion":"22.22.0","dependencies":{"commander":"^12.0.0","@clack/prompts":"^1.2.0"},"_hasShrinkwrap":false,"optionalDependencies":{"menubar":"^9.5.2"},"_npmOperationalInternal":{"tmp":"tmp/claudeding_1.0.17_1776375930934_0.6993613828899106","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@byricky/claudeding","version":"1.0.18","description":"Audio notifications for Claude Code - hear when tasks complete or need input","type":"module","bin":{"claudeding":"bin/claudeding.js"},"scripts":{"test":"echo \"No tests yet\" && exit 0","postuninstall":"node scripts/postuninstall.js"},"keywords":["claude","claude-code","notifications","audio","ding","cli"],"author":{"name":"ImJustRicky"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/ImJustRicky/claudeding.git"},"homepage":"https://github.com/ImJustRicky/claudeding#readme","bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"engines":{"node":">=18.0.0"},"dependencies":{"@clack/prompts":"^1.2.0","commander":"^12.0.0"},"optionalDependencies":{"menubar":"^9.5.2"},"gitHead":"bbb1d3e99b47a09cf63630fc41f8637684142e9c","_id":"@byricky/claudeding@1.0.18","_nodeVersion":"24.15.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-q4iBqp0g2+vwdvDPWVRj1ZM0vvtZXgP8zsyp+noYN4wJ8sMChddXx8bVnczBQNx/XlIGQYsnPrpHBqNi0dqSvw==","shasum":"9d1175709a60fa3b5e2a46bbc66d151465ed6de4","tarball":"https://registry.npmjs.org/@byricky/claudeding/-/claudeding-1.0.18.tgz","fileCount":41,"unpackedSize":2376243,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@byricky%2fclaudeding@1.0.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH26u1nBxd8LXdU/A29eYeqqj6l2/AgWXRkGMKAVV5soAiBPNTeZ8HLIJE4CoZWwroDQgTvsd2AUpTOurTHIPpzkvA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2980e0b9-7412-4de3-8710-a4f2f60c1142"}},"directories":{},"maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claudeding_1.0.18_1788096494915_0.874807661180385"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-15T20:08:54.108Z","modified":"2026-08-30T13:28:15.466Z","1.0.0":"2026-04-15T20:08:54.434Z","1.0.1":"2026-04-15T20:30:06.948Z","1.0.3":"2026-04-15T20:45:55.963Z","1.0.4":"2026-04-15T20:56:22.814Z","1.0.5":"2026-04-15T21:16:46.195Z","1.0.8":"2026-04-15T21:38:38.905Z","1.0.10":"2026-04-15T22:45:29.632Z","1.0.11":"2026-04-15T22:48:03.443Z","1.0.12":"2026-04-16T00:06:03.371Z","1.0.14":"2026-04-16T00:22:05.592Z","1.0.16":"2026-04-16T02:03:17.563Z","1.0.17":"2026-04-16T21:45:31.192Z","1.0.18":"2026-08-30T13:28:15.109Z"},"bugs":{"url":"https://github.com/ImJustRicky/claudeding/issues"},"author":{"name":"ImJustRicky"},"license":"MIT","homepage":"https://github.com/ImJustRicky/claudeding#readme","keywords":["claude","claude-code","notifications","audio","ding","cli"],"repository":{"type":"git","url":"git+https://github.com/ImJustRicky/claudeding.git"},"description":"Audio notifications for Claude Code - hear when tasks complete or need input","maintainers":[{"name":"byricky","email":"ricky@byricky.dev"}],"readme":"# claudeding\n\nAudio notifications for Claude Code. Hear a sound when Claude completes a task or needs your input.\n\n> *claudeding is not affiliated with or endorsed by Anthropic.*\n\n## Installation\n\n```bash\n# Install globally\nnpm install -g @byricky/claudeding\nclaudeding setup\n\n# Or use npx\nnpx @byricky/claudeding setup\n```\n\n## What it does\n\nOnce set up, you'll hear:\n- A **completion sound** when Claude finishes a task\n- A **feedback sound** when Claude is waiting for your input\n- An **error sound** when a tool fails\n\nYou'll also see a system notification showing which project triggered it.\n\n### Smart Features\n\n- **Focus detection**: No sound when you're looking at the terminal (you can already see it)\n- **AFK detection**: Plays sound if you've been idle 30+ seconds, even if terminal is focused\n- **Debouncing**: Multiple Claude instances won't spam you with sounds\n- **Random messages**: Fun notifications with emojis like \"🎉 All done!\" and \"👋 Need your input!\"\n- **Custom messages**: Set your own notification text\n- **Volume control**: Adjust notification volume (0-100)\n- **Quiet hours**: Automatically mute sounds during specified hours\n- **Snooze**: Temporarily pause sounds (`claudeding snooze 30m`)\n- **Menu bar widget**: Quick controls from your menu bar (macOS)\n- **Per-project sounds**: Different sounds for different projects\n- **System DND respect**: Optional integration with macOS Focus mode\n- **Webhooks**: Send notifications to Slack or Discord\n- **Usage stats**: Track your Claude usage patterns (opt-in)\n\nSetup also adds instructions to your `~/.claude/CLAUDE.md` so Claude knows how to control notifications when you ask (e.g., \"mute the dings\").\n\n## Commands\n\n### `claudeding setup`\n\nInstalls hooks into Claude Code, creates config, and adds Claude instructions.\n\n```bash\nclaudeding setup\n\n# With custom sounds\nclaudeding setup --complete-sound ~/sounds/done.wav --feedback-sound ~/sounds/attention.wav\n```\n\n### `claudeding uninstall`\n\nRemoves claudeding hooks and instructions from Claude Code.\n\n```bash\nclaudeding uninstall\n```\n\n### `claudeding status`\n\nQuick overview of current state.\n\n```bash\nclaudeding status\n```\n\nExample output:\n\n```\n  claudeding status\n\n  State: 🔔 Active\n  Volume: 100%\n\n  Hooks:\n    Complete (Stop):        ✓\n    Feedback (Notification): ✓\n    Error (ToolFailure):     ✓\n    Thinking (UserPrompt):   ✗\n\n  Features:\n    Skip when focused: on\n    AFK override:      30s\n    Quiet hours:       off\n    Webhooks:          2 configured\n```\n\n### `claudeding settings`\n\nInteractive settings menu with all configuration options.\n\n```bash\nclaudeding settings\n```\n\nFeatures:\n- Volume control with test\n- Sound picker\n- Preview all sounds\n- Toggle focus detection, AFK, quiet hours, DND\n- Configure webhooks (Slack/Discord)\n- Set custom notification messages\n- Enable/disable easter eggs\n\n### `claudeding mute`\n\nToggle sound mute (notifications still show).\n\n```bash\nclaudeding mute          # Toggle mute on/off\nclaudeding mute --on     # Mute sounds\nclaudeding mute --off    # Unmute sounds\n```\n\n### `claudeding sounds`\n\nInteractive TUI to preview and select from bundled sounds.\n\n```bash\nclaudeding sounds\n```\n\n### `claudeding config`\n\nShows current configuration and hook status.\n\n```bash\nclaudeding config\n```\n\n### `claudeding play <event>`\n\nPlays a sound manually. Useful for testing.\n\n```bash\nclaudeding play complete\nclaudeding play feedback\nclaudeding play error\n\n# Bypass focus detection (plays even when terminal is focused)\nclaudeding play complete --force\n```\n\n### `claudeding doctor`\n\nRun diagnostics to verify setup.\n\n```bash\nclaudeding doctor\n```\n\n### `claudeding enable/disable <event>`\n\nEnable or disable specific event sounds.\n\n```bash\nclaudeding disable error    # Stop playing error sounds\nclaudeding enable error     # Re-enable error sounds\n```\n\n### `claudeding snooze [duration]`\n\nTemporarily pause all sounds.\n\n```bash\nclaudeding snooze 30m       # Snooze for 30 minutes\nclaudeding snooze 2h        # Snooze for 2 hours\nclaudeding snooze           # Check snooze status\nclaudeding snooze --off     # Cancel snooze\n```\n\n### `claudeding tray`\n\nStart a menu bar widget (macOS only). Shows status and quick controls.\n\n```bash\nclaudeding tray\n```\n\nFeatures:\n- **Live status icon**: 🔔 idle, ✅ complete, 👋 needs input, ❌ error, 💤 snoozing, 🔇 muted\n- Mute/unmute toggle\n- Quick snooze buttons (15m, 30m, 1h, 2h)\n- Test sounds\n- Native macOS menu\n- Runs in background\n\n### `claudeding stats`\n\nView usage statistics (off by default to save resources).\n\n```bash\nclaudeding stats --on     # Enable logging\nclaudeding stats          # View stats\nclaudeding stats --off    # Disable logging\n```\n\nExample output:\n\n```\nclaudeding Stats\n\nEvents:\n  Today:     12 complete, 8 feedback, 2 errors\n  This week: 84 complete, 45 feedback, 7 errors\n  This month: 312 complete, 201 feedback, 23 errors\n  All time: 536 total events\n\nInsights:\n  Avg time between feedback: 14m\n  Error rate: 4.3%\n  Peak coding hour: 2PM\n\nTop Projects:\n  1. my-app (234 events)\n  2. api-server (156 events)\n  3. docs (89 events)\n\nHistory file: 42.1 KB (536 events)\n```\n\n## Configuration\n\nConfig is stored at `~/.claudeding.json`:\n\n```json\n{\n  \"sounds\": {\n    \"complete\": null,\n    \"feedback\": null,\n    \"error\": null\n  },\n  \"notify\": true,\n  \"mute\": false,\n  \"volume\": 100,\n  \"skipWhenFocused\": true,\n  \"afkTimeout\": 30,\n  \"respectDnd\": false,\n  \"useProjectConfig\": false,\n  \"logStats\": false,\n  \"quietHours\": {\n    \"enabled\": false,\n    \"start\": \"22:00\",\n    \"end\": \"08:00\"\n  },\n  \"webhooks\": [],\n  \"customMessages\": {\n    \"complete\": [\"Done!\", \"All set!\"],\n    \"feedback\": [\"Your turn!\"],\n    \"error\": [\"Oops!\"]\n  }\n}\n```\n\n| Option | Description |\n|--------|-------------|\n| `sounds.complete` | Name of bundled sound or path to custom WAV/MP3. `null` = default |\n| `sounds.feedback` | Name of bundled sound or path to custom WAV/MP3. `null` = default |\n| `sounds.error` | Name of bundled sound or path to custom WAV/MP3. `null` = default |\n| `notify` | Show system notifications (`true`/`false`) |\n| `mute` | Mute all sounds (`true`/`false`) |\n| `volume` | Volume level 0-100 (default: 100) |\n| `skipWhenFocused` | Skip sounds when terminal is focused (`true`/`false`) |\n| `afkTimeout` | Seconds of idle time before playing sound even when focused. Set to `0` to disable AFK detection |\n| `respectDnd` | Skip sounds when system DND/Focus mode is on (`true`/`false`, default: `false`) |\n| `useProjectConfig` | Use `.claudeding.json` in project root if present (`true`/`false`, default: `false`) |\n| `logStats` | Log events to history file for stats (`true`/`false`, default: `false`) |\n| `quietHours.enabled` | Enable quiet hours (`true`/`false`) |\n| `quietHours.start` | Start time in 24-hour format (e.g., `\"22:00\"`) |\n| `quietHours.end` | End time in 24-hour format (e.g., `\"08:00\"`) |\n| `webhooks` | Array of webhook URLs (Slack/Discord auto-detected) |\n| `customMessages.complete` | Array of custom completion messages |\n| `customMessages.feedback` | Array of custom feedback messages |\n| `customMessages.error` | Array of custom error messages |\n\n### Per-Project Config\n\nWith `useProjectConfig: true`, you can create a `.claudeding.json` in any project root to override global settings:\n\n```json\n{\n  \"sounds\": {\n    \"complete\": \"chord\"\n  },\n  \"volume\": 50\n}\n```\n\n## Webhooks\n\nSend notifications to Slack or Discord when Claude completes tasks or needs input.\n\n### Setup via Settings\n\n```bash\nclaudeding settings\n# → Webhooks → Add webhook → paste URL\n```\n\n### Setup via Config\n\nAdd webhook URLs to `~/.claudeding.json`:\n\n```json\n{\n  \"webhooks\": [\n    \"https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK\",\n    \"https://discord.com/api/webhooks/YOUR/DISCORD/WEBHOOK\"\n  ]\n}\n```\n\nWebhook type (Slack/Discord) is auto-detected from the URL. Messages are formatted appropriately for each platform with emoji indicators and project names.\n\n## Playful Fun\n\nOptional silly features (off by default):\n\n### Jeopardy Thinking Music\n\nPlay Jeopardy theme when Claude starts thinking:\n\n```bash\nclaudeding enable thinking\n```\n\nDisable with `claudeding disable thinking`.\n\n### Fart Easter Egg\n\n1% chance of a random fart sound on any notification:\n\n```bash\nclaudeding enable farts\n```\n\nDisable with `claudeding disable farts`.\n\n## Platform Support\n\n| Platform | Audio | Notifications |\n|----------|-------|---------------|\n| macOS    | `afplay` | terminal-notifier / osascript |\n| Linux    | `paplay` / `aplay` | notify-send |\n| Windows  | PowerShell | Toast notifications |\n\n### macOS: Better Notifications\n\nFor better notification branding, install terminal-notifier:\n\n```bash\nbrew install terminal-notifier\n```\n\nWithout it, notifications show as \"Script Editor\". With it, they show your terminal's icon (VS Code, iTerm, etc.).\n\n## How it works\n\nclaudeding adds hooks to your Claude Code settings (`~/.claude/settings.json`):\n\n- **Notification** hook → plays feedback sound when Claude needs input\n- **Stop** hook → plays completion sound when Claude finishes\n- **PostToolUseFailure** hook → plays error sound when a tool fails\n\nYour existing hooks are preserved. A backup is created at `~/.claude/settings.json.claudeding-backup` before any modifications.\n\n## Troubleshooting\n\n### Install the hooks manually\n\nIf `claudeding setup` didn't run, didn't finish, or you want to install into a specific scope, edit the settings file directly. Claude Code reads hooks from:\n\n| File | Scope |\n|------|-------|\n| `~/.claude/settings.json` | All projects (user) |\n| `.claude/settings.json` | Single project (shareable — commit to repo) |\n| `.claude/settings.local.json` | Single project (gitignored) |\n\nAdd (or merge into) the top-level `\"hooks\"` key:\n\n```json\n{\n  \"hooks\": {\n    \"Notification\": [\n      {\n        \"matcher\": \"\",\n        \"hooks\": [\n          { \"type\": \"command\", \"command\": \"claudeding play feedback\" }\n        ]\n      }\n    ],\n    \"Stop\": [\n      {\n        \"matcher\": \"\",\n        \"hooks\": [\n          { \"type\": \"command\", \"command\": \"claudeding play complete\" }\n        ]\n      }\n    ],\n    \"PostToolUseFailure\": [\n      {\n        \"matcher\": \"\",\n        \"hooks\": [\n          { \"type\": \"command\", \"command\": \"claudeding play error\" }\n        ]\n      }\n    ]\n  }\n}\n```\n\nNotes, straight from the [Claude Code hooks docs](https://docs.claude.com/en/docs/claude-code/hooks):\n\n- `Stop` fires whenever Claude finishes responding. It ignores matchers — you can omit `matcher` entirely.\n- `Notification` matchers are optional. `\"\"` (or omitting) fires on every notification; set to e.g. `\"permission_prompt\"` or `\"idle_prompt\"` to filter.\n- `PostToolUseFailure` fires after a tool call fails. Set `matcher` to a tool name (e.g. `\"Bash\"`) if you want to scope it.\n\nOpt-in extras that `claudeding setup` does **not** enable by default:\n\n```json\n{\n  \"hooks\": {\n    \"UserPromptSubmit\": [\n      { \"hooks\": [{ \"type\": \"command\", \"command\": \"claudeding play thinking\" }] }\n    ],\n    \"PreToolUse\": [\n      { \"matcher\": \"\", \"hooks\": [{ \"type\": \"command\", \"command\": \"claudeding stop-thinking\" }] }\n    ]\n  }\n}\n```\n\nEnable them with `claudeding enable thinking`.\n\n### Hooks installed but nothing happens\n\nRun `claudeding doctor` first — it reports what's missing. Then check the usual suspects:\n\n- **`claudeding` not on Claude Code's `PATH`.** The hook fires, but the command can't be resolved. Test with `which claudeding` from a fresh terminal; if it's missing, reinstall globally (`npm install -g @byricky/claudeding`) or replace `\"command\": \"claudeding …\"` with the absolute path.\n- **`~/.claude/settings.json` has invalid JSON.** One stray comma and Claude Code skips the file. Validate with `node -e 'JSON.parse(require(\"fs\").readFileSync(process.env.HOME + \"/.claude/settings.json\",\"utf8\"))'`.\n- **Hook entries were added mid-session.** Start a new Claude Code session after editing `settings.json`.\n- **You're muted / snoozed.** `claudeding status` shows both. Fix with `claudeding mute --off` / `claudeding snooze --off`.\n- **Terminal focused + not AFK.** By design. Disable with `skipWhenFocused: false`, or lower/disable `afkTimeout` in `~/.claudeding.json`.\n- **Quiet hours / system DND.** Check `quietHours` and `respectDnd` in config.\n- **Volume is 0.** `claudeding settings` → Volume.\n\n### Sounds play in terminal but not from Claude Code\n\nSame PATH issue as above, 95% of the time. Claude Code's hook shell may not load your interactive shell init (e.g. `nvm`-managed `node` not being visible). Fix by using the absolute path to `claudeding` in the hook `command`.\n\n### Menu bar tray is sluggish or shows \"Not Responding\"\n\nUpdate to the latest version — the tray now runs its focus/idle checks asynchronously with a 10s cache and skips menu rebuilds when nothing has changed. Older versions blocked the Electron main thread every 2 seconds.\n\nIf you suspect multiple trays are running:\n\n```bash\npgrep -fl \"Electron.*src/tray/main\\.js\"\npkill  -f  \"Electron.*src/tray/main\\.js\"\nclaudeding tray\n```\n\nThe current build holds a single-instance lock, so duplicate launches exit immediately.\n\n### Start over cleanly\n\n```bash\nclaudeding uninstall   # removes only claudeding's hooks\nclaudeding setup       # reinstalls them\n```\n\n`claudeding uninstall` leaves `~/.claude/settings.json.claudeding-backup` in place — restore it with `cp ~/.claude/settings.json.claudeding-backup ~/.claude/settings.json` if anything got mangled.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}