{"_id":"@cheeko-ai/esp32-voice","_rev":"12-2eb6468c389f7e8a289d54935a589e1d","name":"@cheeko-ai/esp32-voice","dist-tags":{"latest":"2026.2.2-3.11"},"versions":{"2026.2.21":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.21","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.21","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"9a6814bcb623bf67b9678724b258110a2c0697cb","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.21.tgz","fileCount":23,"integrity":"sha512-qB6flpCiMNUuNi340AKMkfXr0mm5L/9/DyDFXMzcVkiGoS2lB28qH469tXOd4arfSyeqxpFev/qsjYdWzxClBQ==","signatures":[{"sig":"MEYCIQCIxl5mKim7QlX3TMqVsLQykVZ9OIBCoSkbLFXGTOqboQIhAMcziILsUrIXJC5IG9uyLf+Wp26TjODK6FD81NffBJYT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163343},"main":"index.ts","type":"module","gitHead":"4bf218c509d892c6159e419f9a35f1246bf73892","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.21_1771845207407_0.34214530647992225","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.1":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.1","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.2-3.1","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"996ed1f2ff8d6a8fc1b9da51cf458a5d0912f0dd","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.1.tgz","fileCount":23,"integrity":"sha512-KjuXzrOgNMXzlYww+3L1MlYYqzOk0YvdcZandjnKKPjMtfS8pfifj589oYHt9anf6+hfKMyyk4rYYlsRo9Phmw==","signatures":[{"sig":"MEUCIQDodeIEMg4QN35s/3zaRWqsdCXyT627KsWbwR9aH7KdZQIgRoYUzkgxVwhLl5wCadE1BM8FSdWNT3w3OzAYc/xKTqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164709},"main":"index.ts","type":"module","gitHead":"4bf218c509d892c6159e419f9a35f1246bf73892","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.2-3.1_1771845769851_0.25130006444252095","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.2":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.2","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.2-3.2","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"b9fc8e7b992659632c867e7b0f4795d615b29da4","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.2.tgz","fileCount":23,"integrity":"sha512-ggBU2ojvaX4TrQEUmq3lM7dEGcu83/A9zuxyJOPImpUPVm2mqr0p54SbQkZ7jeLODrPlegZU7rsnTtD6RjSXcA==","signatures":[{"sig":"MEQCIDzEjFf2ULeP/DYwYZumbbBralNB4tfSkPhY3q2mFSCNAiBjHBjHQis/3h1UT1CcvKgJJDDUAdYBbyuDrNcDsWnvDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164708},"main":"index.ts","type":"module","gitHead":"4bf218c509d892c6159e419f9a35f1246bf73892","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.2-3.2_1771846107863_0.29991143669286835","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.3":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.3","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.2-3.3","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"d89a24d3c9c10cfe6afd938f05a9070a983b02b4","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.3.tgz","fileCount":23,"integrity":"sha512-952sTDLzCe1GoGpZ98P6KTZyYQWXVSlTjLSRnjTYkpJxDAyhhrIdMj/64Hed2P7SltF/2IL8Y9SuO88ZHuX5YA==","signatures":[{"sig":"MEYCIQC/4nWGnO0KaHPMSPvNfz9zM6nGtM+2DQjAGK+MPBgQeAIhAKZKh9mkHGKhiIP/UTqot95rChGtWWL668kRrMeuSw7m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161906},"main":"index.ts","type":"module","gitHead":"4bf218c509d892c6159e419f9a35f1246bf73892","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.2-3.3_1771846320667_0.40233112429128104","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.4":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.4","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.2-3.4","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"ee907e7721beb1fd5f5a7553eca1707c8b9adec0","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.4.tgz","fileCount":23,"integrity":"sha512-ODEIaiup101Il+ej867wq/GImFGQL1ERC11jGINaeACyD2Y/SiVHFmilD/796avc0hl62HbX0xufC7zjyQ+C6w==","signatures":[{"sig":"MEQCIA0kEBOUPNbWLra23d9TeMLvf5y4FLYrPtIQy6ph+Um0AiAwkktCj6BT8CnQ8OmoccVRS0XT1ET2o6DiUtY8ldMk4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164961},"main":"index.ts","type":"module","gitHead":"ab3982890d059809372c6c4c997e53e4b0401c26","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.2-3.4_1771857236144_0.46994063817028997","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.5":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.5","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.2-3.5","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"118ee430455c43cc7d53ae064c4ac2d37ac5fe34","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.5.tgz","fileCount":23,"integrity":"sha512-svh+VTvoq2uErb3+KIXoCz4nNTXdwR5WtDez9DvZ387Oocq7Liee0qxh60jEQnzIFybyEBykeD9Y1+O41gIllA==","signatures":[{"sig":"MEUCIQCzIeG9rUtdy0SPQW8WPesBo1023RS4TDg9yNICcL2BGgIgQo6On8tnFdiLBHmBxwwhr3yfHwUo0eYHWBqjbUWdntE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165148},"main":"index.ts","type":"module","gitHead":"ab3982890d059809372c6c4c997e53e4b0401c26","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.2-3.5_1771866448474_0.7400067387132678","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.6":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.6","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.2-3.6","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"1cda1b5bce5d38ab53002c2add0e09d4e3db1817","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.6.tgz","fileCount":23,"integrity":"sha512-TUvoE5J2mh1fcAyy5pEk38I+XEq01tPlMGTa0HeiiydwRDtL18i4rL3xu19Y0BZFo25JtDymDOZhVOkvvI90EQ==","signatures":[{"sig":"MEUCIQCLwA8WTbHtqUG8f9f5u+JzNi1e2GUDohCiet8d76xE+AIgMuhQgYzXBtWQw3MEEV13rS98x9BrjdOwxw2aNveC3PA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172623},"main":"index.ts","type":"module","gitHead":"e77f9814412e9551d22e3779a89bbddf3d7abb5d","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.2-3.6_1772027135957_0.8817811084063796","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.7":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.7","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.2-3.7","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"bf287992b76ab8053dc4b9a3fb0fe8c79d8e43c3","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.7.tgz","fileCount":23,"integrity":"sha512-WEcf4Hv/nToD4av53NafZH1vszJPqLIGrXTKhXwnpEtU0TK6OyrQ5wUG74zpw1n/qykcpEPtJaY9LdkTO5oX4Q==","signatures":[{"sig":"MEYCIQDYbIFPwbku5R0C2KGkZ3LWMO2B2FPmHeRMMtqk1TMo+wIhAJw3G6dXm5W2jYg3s1pMzbm1I/hOxW2MEnlE4W0CjBoY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172568},"main":"index.ts","type":"module","gitHead":"e77f9814412e9551d22e3779a89bbddf3d7abb5d","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.2-3.7_1772027980357_0.31000981696259045","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.8":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.8","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.2-3.8","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"67bb1d8273ae7918353af34f34956e8a27ea7f86","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.8.tgz","fileCount":23,"integrity":"sha512-HW4sAQxQwkS5x1kY2BLbPAq/C3pVnzYDliLmBTadzvzMdG4RnUY0VIhjHAbKN66EA9MKnaxO6Q09ohkIAcvHQA==","signatures":[{"sig":"MEQCIFy8Lh+mcS6hc1pzJdeTuPhzfugihmWZsJJBHZLYzHJCAiBFIvLiprMtjmF2tSABaWqtXeToCKETCDl/e04PzA6PFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173636},"main":"index.ts","type":"module","gitHead":"e77f9814412e9551d22e3779a89bbddf3d7abb5d","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.2-3.8_1773319688272_0.2815752944878951","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.9":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.9","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.2-3.9","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"8f683544b0641d175255fc5f65ea43c9cb082737","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.9.tgz","fileCount":23,"integrity":"sha512-YFSqXNvgFRSLt4LpAD02QyRLUMaRQrLfGnBYQl8XVAAvaDWljS5Qpr/NsvYA0VW4DUVAcrUJ1nakfhmqApfolw==","signatures":[{"sig":"MEYCIQC9a5/AoLrJwbZbAoXLZG3bT0yrdWro1ZPUXLLGoi6v0AIhAOPaXwjULwg2V/0J8N2/Krnuv0G6lnjTlcludv2vopQy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173646},"main":"index.ts","type":"module","gitHead":"e77f9814412e9551d22e3779a89bbddf3d7abb5d","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.2-3.9_1773320838856_0.839186408226072","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.10":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.10","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"license":"MIT","_id":"@cheeko-ai/esp32-voice@2026.2.2-3.10","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"dist":{"shasum":"6ea331394a1a70ed9874d5c29fe7f2400889d679","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.10.tgz","fileCount":23,"integrity":"sha512-eAVW4l4On2OYDjGaFVm2bwOhm4MHxh9QEeO46snnfrpCXGhKelVMWKZ7EFzvuVQObMkZPndg43jEPDAOGvz8+g==","signatures":[{"sig":"MEUCIASOEi2Fh5mDxIaTpIZgkEKmXGj+Sgx0SNjU+ywZ+wA2AiEAlBNPFxNs1w5W72vdqH6FkU62Kl2xQabn4CboPH+/9U4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174313},"main":"index.ts","type":"module","gitHead":"e77f9814412e9551d22e3779a89bbddf3d7abb5d","private":false,"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"openclaw":{"channel":{"id":"esp32voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","label":"ESP32 Voice","order":90,"docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","selectionLabel":"ESP32 Voice (plugin)"},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git","directory":"extensions/esp32-voice"},"_npmVersion":"10.9.4","description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0","zod":"^4.3.6","opusscript":"^0.0.8"},"_hasShrinkwrap":false,"devDependencies":{"openclaw":">=2026.1.0","@types/ws":"^8.5.12"},"_npmOperationalInternal":{"tmp":"tmp/esp32-voice_2026.2.2-3.10_1773371042222_0.676637817309002","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3.11":{"name":"@cheeko-ai/esp32-voice","version":"2026.2.2-3.11","private":false,"description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","type":"module","license":"MIT","main":"index.ts","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"repository":{"type":"git","url":"git+https://github.com/openclaw/openclaw.git","directory":"extensions/esp32-voice"},"dependencies":{"opusscript":"^0.0.8","ws":"^8.18.0","zod":"^4.3.6"},"devDependencies":{"@types/ws":"^8.5.12","openclaw":">=2026.1.0"},"openclaw":{"extensions":["./index.ts"],"channel":{"id":"esp32voice","label":"ESP32 Voice","selectionLabel":"ESP32 Voice (plugin)","docsPath":"/channels/esp32-voice","docsLabel":"esp32-voice","blurb":"ESP32 voice device channel — speech-to-text-to-speech with pluggable STT/TTS providers (Deepgram, ElevenLabs, and more).","order":90},"install":{"npmSpec":"@cheeko-ai/esp32-voice","localPath":"extensions/esp32-voice","defaultChoice":"npm"}},"_id":"@cheeko-ai/esp32-voice@2026.2.2-3.11","gitHead":"e77f9814412e9551d22e3779a89bbddf3d7abb5d","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"homepage":"https://github.com/openclaw/openclaw#readme","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-sojB2Nis3mpoLrGbuhZ6a6EW1L7NWCqL5o/WW5vL7zapKlM38wv6mMH7GvnRq/lu7yVJg8eHseiv3O0cWxExXg==","shasum":"4566ef2f24708312654979e5789cf473ba3980bf","tarball":"https://registry.npmjs.org/@cheeko-ai/esp32-voice/-/esp32-voice-2026.2.2-3.11.tgz","fileCount":23,"unpackedSize":174240,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDwt6oBcDqzMoIkw50D0bBJHsDZ2MMBd7ca7EF7ypiXGAiEA6p3QLA3MLSRVbVdvH7NRhA+tJGJQH0w6PivH8aAYOL8="}]},"_npmUser":{"name":"cheeko-ai","email":"abilash@altio.me"},"directories":{},"maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/esp32-voice_2026.2.2-3.11_1773371296613_0.5050526372624813"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-23T11:13:27.323Z","modified":"2026-03-13T03:08:16.906Z","2026.2.21":"2026-02-23T11:13:27.546Z","2026.2.2-3.1":"2026-02-23T11:22:49.993Z","2026.2.2-3.2":"2026-02-23T11:28:28.019Z","2026.2.2-3.3":"2026-02-23T11:32:00.813Z","2026.2.2-3.4":"2026-02-23T14:33:56.300Z","2026.2.2-3.5":"2026-02-23T17:07:28.646Z","2026.2.2-3.6":"2026-02-25T13:45:36.113Z","2026.2.2-3.7":"2026-02-25T13:59:40.510Z","2026.2.2-3.8":"2026-03-12T12:48:08.389Z","2026.2.2-3.9":"2026-03-12T13:07:18.971Z","2026.2.2-3.10":"2026-03-13T03:04:02.411Z","2026.2.2-3.11":"2026-03-13T03:08:16.775Z"},"bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"license":"MIT","homepage":"https://github.com/openclaw/openclaw#readme","keywords":["openclaw","esp32","voice","stt","tts","deepgram","elevenlabs","iot","speech-to-text","text-to-speech"],"repository":{"type":"git","url":"git+https://github.com/openclaw/openclaw.git","directory":"extensions/esp32-voice"},"description":"OpenClaw ESP32 Voice channel plugin — voice-to-text-to-voice device integration with pluggable STT/TTS providers","maintainers":[{"name":"cheeko-ai","email":"abilash@altio.me"}],"readme":"# 🎤 ESP32 Voice — OpenClaw Extension\n\nTurn a Cheeko ESP32 board into a voice AI assistant powered by OpenClaw.\nPush to talk → speak → get a spoken response.\n\n---\n\n## Quick Start\n\n### Step 1 — Install the plugin\n\n```bash\nopenclaw plugins install @cheeko-ai/esp32-voice\n```\n\n### Step 2 — Run the setup wizard\n\n```bash\nopenclaw channels add\n# Select \"ESP32 Voice (plugin)\" from the menu\n```\n\nThe wizard guides you through:\n\n| Step | What happens |\n|------|-------------|\n| **1. Connect to Cheeko** | Browser opens automatically → log in → Settings → Connect OpenClaw → paste the token |\n| **2. STT setup** | Enter your Deepgram API key |\n| **3. TTS setup** | Enter your ElevenLabs API key + voice ID |\n| **4. Add device** | Browser opens automatically → add your ESP32 device |\n\nAll keys are saved to `~/.openclaw/.env` automatically — you only do this once.\n\n> **Note:** Use Node.js 22. Run `nvm use 22` before any openclaw commands.\n\n---\n\n### Step 3 — Start the Gateway\n\n```bash\nopenclaw gateway\n```\n\nThe plugin starts the voice WebSocket server on port **8765** and auto-registers your machine's URL with the Cheeko dashboard.\n\n---\n\n### Step 4 — Start the OTA server\n\nThe OTA server tells your ESP32 where to connect on boot:\n\n```bash\nGATEWAY_TOKEN=<your-gateway-token> node $(openclaw plugins path @cheeko-ai/esp32-voice)/ota-server.js\n```\n\nIt prints your URLs:\n\n```\n🦞 ESP32 OTA Mock Server\n   Auto-detected MAC IP : 192.168.1.10\n   OTA Server           : http://192.168.1.10:8080/cheeko/ota/\n   Voice WebSocket      : ws://192.168.1.10:8765/\n```\n\n> **Gateway token** — found in `~/.openclaw/openclaw.json` under `gateway.auth.token`.\n\n---\n\n### Step 5 — Flash your ESP32\n\nIn your Cheeko firmware settings, set the OTA URL to what the server printed:\n\n```\nhttp://192.168.1.10:8080/cheeko/ota/\n```\n\nReboot the device. It fetches its config, connects to the voice server, and is ready.\n**Hold the button → speak → release → hear the response.**\n\n---\n\n## How It Works\n\n```\nESP32 (Cheeko firmware)\n  │  Opus audio frames  →  WebSocket port 8765\n  ▼\n[esp32-voice plugin]\n  │  STT: Deepgram       →  transcript text\n  │  LLM: OpenClaw Gateway (port 18789)  →  response text\n  │  TTS: ElevenLabs     →  Opus audio frames\n  ▼\nESP32 speaker\n```\n\nThe plugin runs its own WebSocket server on port **8765** — completely separate from the OpenClaw Gateway port (18789). No changes to OpenClaw core are needed.\n\n---\n\n## Cheeko Dashboard Pairing\n\n1. Log in to the Cheeko dashboard → **Settings → Connect OpenClaw**\n2. The dashboard generates a short pairing token (e.g. `XK9-2M4`)\n3. Paste it into the setup wizard (or set `CHEEKO_PAIR=XK9-2M4` in `~/.openclaw/.env`)\n4. On next gateway start, the plugin POSTs your voice URL to the dashboard automatically\n5. Your ESP32 devices now know where to connect\n\n---\n\n## Configuration\n\nKeys can be set in `~/.openclaw/.env` (recommended) or in `~/.openclaw/openclaw.json` under `channels.esp32voice`.\n\n```bash\n# ~/.openclaw/.env\nDEEPGRAM_API_KEY=your-deepgram-key\nELEVENLABS_API_KEY=your-elevenlabs-key\nCHEEKO_PAIR=XK9-2M4\n```\n\n### All options\n\n| Key | Type | Default | Description |\n|-----|------|---------|-------------|\n| `enabled` | boolean | `true` | Enable/disable the channel |\n| `sttApiKey` | string | — | Deepgram API key |\n| `sttModel` | string | `\"nova-2\"` | Deepgram model |\n| `ttsApiKey` | string | — | ElevenLabs API key |\n| `ttsVoiceId` | string | Rachel | ElevenLabs voice ID |\n| `ttsModel` | string | `\"eleven_turbo_v2_5\"` | ElevenLabs model |\n| `language` | string | `\"en\"` | Language code (ISO 639-1) |\n| `maxResponseLength` | number | `500` | Max response chars (keep short for voice) |\n| `voiceOptimized` | boolean | `true` | Tells the AI to respond concisely without markdown |\n\n### Environment variables\n\n| Variable | Description |\n|----------|-------------|\n| `DEEPGRAM_API_KEY` | Deepgram STT API key |\n| `ELEVENLABS_API_KEY` | ElevenLabs TTS API key |\n| `ELEVENLABS_VOICE_ID` | ElevenLabs voice ID (optional) |\n| `ELEVENLABS_MODEL_ID` | ElevenLabs model (optional) |\n| `CHEEKO_PAIR` | Pairing token from Cheeko dashboard |\n| `GATEWAY_TOKEN` | Required for OTA server |\n| `MAC_IP` | Override auto-detected LAN IP |\n| `ESP32_VOICE_PORT` | Voice WebSocket port (default: `8765`) |\n\n---\n\n## Gateway HTTP Endpoints\n\nThe plugin registers these endpoints on the OpenClaw Gateway port (18789):\n\n| Endpoint | Description |\n|----------|-------------|\n| `GET /__openclaw__/esp32-voice/health` | Health check — shows configured STT/TTS status |\n| `GET /__openclaw__/esp32-voice/otp` | Generate a one-time device pairing code |\n| `GET /__openclaw__/esp32-voice/devices` | List currently paired devices |\n\n---\n\n## Troubleshooting\n\n**ESP32 shows \"connecting\" but never \"listening\"**\n- Check the OTA server is running and the ESP32 fetched its config (watch OTA server logs)\n- Make sure firewall allows port 8765 inbound\n- Confirm `GATEWAY_TOKEN` matches `gateway.auth.token` in `~/.openclaw/openclaw.json`\n\n**Dashboard pairing fails**\n- Paste only the short token (e.g. `XK9-2M4`), not the full command string\n- Token expires after 10 minutes — generate a new one from the dashboard if needed\n\n**No audio from ESP32 speaker**\n- Check ElevenLabs key is valid and has quota remaining\n- Plugin outputs 24kHz mono Opus at 60ms frames — confirm firmware matches\n\n**STT timeout / empty transcript**\n- Validate Deepgram key: `curl https://api.deepgram.com/v1/auth -H \"Authorization: Token YOUR_KEY\"`\n- Check the ESP32 is actually sending audio (hold button while speaking)\n\n---\n\n## Supported Hardware\n\nTested with:\n- (Cheeko ESP32-S3 board) — recommended\n- Any ESP32 board running Cheeko ESP32 firmware\n\n---\n\n## Plugin Management\n\n```bash\n# Update to latest version\nopenclaw plugins update @cheeko-ai/esp32-voice\n\n# Remove the plugin\nopenclaw plugins uninstall @cheeko-ai/esp32-voice\n\n# List all installed plugins\nopenclaw plugins list\n\n# Enable / disable without removing\nopenclaw plugins enable @cheeko-ai/esp32-voice\nopenclaw plugins disable @cheeko-ai/esp32-voice\n```\n\n---\n\n## License\n\nMIT — Published under [@cheeko-ai](https://www.npmjs.com/org/cheeko-ai) on npm.\n","readmeFilename":"README.md"}