{"_id":"@agenticros/jarvis","_rev":"9-eee0df81019bf60fefe62b724c0ea9a0","name":"@agenticros/jarvis","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.0":{"name":"@agenticros/jarvis","version":"0.1.0","keywords":["agenticros","jarvis","voice","speech","tts","stt","wake-word","kokoro","openclaw"],"author":{"name":"AgenticROS"},"license":"Apache-2.0","_id":"@agenticros/jarvis@0.1.0","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/agenticros-skill-jarvis#readme","bugs":{"url":"https://github.com/agenticros/agenticros-skill-jarvis/issues"},"dist":{"shasum":"34070e7777f6915b8a23570724507d6dd6326608","tarball":"https://registry.npmjs.org/@agenticros/jarvis/-/jarvis-0.1.0.tgz","fileCount":82,"integrity":"sha512-BICTk8dB28wAFH7bW0hmgs7cDunS9Fd6Ue9j7KdhEGZGTfrk2OGPhihAXiSociGxR0MV5FUYUaz9XoaDEi988A==","signatures":[{"sig":"MEUCIQCelDjEMc+E0AeaXPcfhThs+v47i/iTkQHQ2uLvzi9xrQIgfJMYztWL6r88fafxFZoKE2O79+A61LSP0w1TS4kzXSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174430},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"89f44a30e54a03d58decf984716f9bbf1c545ce9","scripts":{"dev":"npx agenticros skills dev","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"agenticros":{"id":"jarvis","categories":["audio","communication","human-interaction"],"description":"Conversational voice front-end for AgenticROS: Hey Jarvis wake word, Kokoro TTS, RealSense presence greetings, and OpenClaw tool use for seeing, scanning, and following.","displayName":"Jarvis","screenshots":["docs/icon.png"],"capabilities":[{"id":"jarvis_listen","tool":"jarvis_control","verb":"listen","blocks_base":false,"description":"Start or stop the always-on voice loop (microphone, wake word, TTS).","interruptible":true},{"id":"jarvis_speak","tool":"jarvis_speak","verb":"speak","blocks_base":false,"description":"Speak a line of text through Kokoro TTS (espeak fallback).","interruptible":true}]},"repository":{"url":"git+https://github.com/agenticros/agenticros-skill-jarvis.git","type":"git"},"_npmVersion":"10.9.8","description":"Voice assistant for AgenticROS robots — wake word, speech I/O, OpenClaw agent, and RealSense presence greetings.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"kokoro-js":"^1.2.1","@agenticros/core":"^0.8.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/jarvis_0.1.0_1786727334224_0.7453718023215403","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@agenticros/jarvis","version":"0.1.1","keywords":["agenticros","jarvis","voice","speech","tts","stt","wake-word","kokoro","openclaw"],"author":{"name":"AgenticROS"},"license":"Apache-2.0","_id":"@agenticros/jarvis@0.1.1","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/agenticros-skill-jarvis#readme","bugs":{"url":"https://github.com/agenticros/agenticros-skill-jarvis/issues"},"dist":{"shasum":"570af452a14fcdfef34852f689b0b95951975f4d","tarball":"https://registry.npmjs.org/@agenticros/jarvis/-/jarvis-0.1.1.tgz","fileCount":82,"integrity":"sha512-S4DHqPdErzGmBt5XMD0DfbPx7+zyCIvA+AoJZ1J7b1lTxGV2MRhkBcH8/mfwTi4QiqQO0xbDyqNebyajxYOBmw==","signatures":[{"sig":"MEUCIF0HSBBqEWbFA3VW4V+Y1ek4dlimhJ+fN/kVs1kiwEbmAiEArRbrDuQOdNFp5VvPb2j6glUFKkJ0v7HBcTJUuN75T+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174949},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"b3c5f6238ca07b932b6db92e9c87f974d624e028","scripts":{"dev":"npx agenticros skills dev","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"agenticros":{"id":"jarvis","categories":["audio","communication","human-interaction"],"description":"Conversational voice front-end for AgenticROS: Hey Jarvis wake word, Kokoro TTS, RealSense presence greetings, and OpenClaw tool use for seeing, scanning, and following.","displayName":"Jarvis","screenshots":["docs/icon.png"],"capabilities":[{"id":"jarvis_listen","tool":"jarvis_control","verb":"listen","blocks_base":false,"description":"Start or stop the always-on voice loop (microphone, wake word, TTS).","interruptible":true},{"id":"jarvis_speak","tool":"jarvis_speak","verb":"speak","blocks_base":false,"description":"Speak a line of text through Kokoro TTS (espeak fallback).","interruptible":true}]},"repository":{"url":"git+https://github.com/agenticros/agenticros-skill-jarvis.git","type":"git"},"_npmVersion":"11.13.0","description":"Voice assistant for AgenticROS robots — wake word, speech I/O, OpenClaw agent, and RealSense presence greetings.","directories":{},"_nodeVersion":"26.1.0","dependencies":{"kokoro-js":"^1.2.1","@agenticros/core":"^0.8.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/jarvis_0.1.1_1786733153883_0.20570355621737368","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@agenticros/jarvis","version":"0.1.2","keywords":["agenticros","jarvis","voice","speech","tts","stt","wake-word","kokoro","openclaw"],"author":{"name":"AgenticROS"},"license":"Apache-2.0","_id":"@agenticros/jarvis@0.1.2","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/agenticros-skill-jarvis#readme","bugs":{"url":"https://github.com/agenticros/agenticros-skill-jarvis/issues"},"dist":{"shasum":"442710f82fa4787cd6644c1648a0ddb0c0ca5e35","tarball":"https://registry.npmjs.org/@agenticros/jarvis/-/jarvis-0.1.2.tgz","fileCount":82,"integrity":"sha512-LuU55JUtg2Km1/FvY3W6awUw51+uHqmMTfXc5rkXvHqAq9pag7shodF9h3A52V+gafGkqixYJlbU0RKF7c351g==","signatures":[{"sig":"MEUCIQCOavgJz3O0G8RrWRkv1lF4vj8oPn7XECs6CqAd4lK0TwIgcIVya7FdNpT5rsiv+1ja1BrzyzQYUIYGtVi2lp9zhw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178646},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"144349c1f263d64f7d9cc568f61bf77176adb5ad","scripts":{"dev":"npx agenticros skills dev","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"agenticros":{"id":"jarvis","categories":["audio","communication","human-interaction"],"description":"Conversational voice front-end for AgenticROS: Hey Jarvis wake word, Kokoro TTS, RealSense presence greetings, and OpenClaw tool use for seeing, scanning, and following.","displayName":"Jarvis","screenshots":["docs/icon.png"],"capabilities":[{"id":"jarvis_listen","tool":"jarvis_control","verb":"listen","blocks_base":false,"description":"Start or stop the always-on voice loop (microphone, wake word, TTS).","interruptible":true},{"id":"jarvis_speak","tool":"jarvis_speak","verb":"speak","blocks_base":false,"description":"Speak a line of text through Kokoro TTS (espeak fallback).","interruptible":true}]},"repository":{"url":"git+https://github.com/agenticros/agenticros-skill-jarvis.git","type":"git"},"_npmVersion":"11.13.0","description":"Voice assistant for AgenticROS robots — wake word, speech I/O, OpenClaw agent, and RealSense presence greetings.","directories":{},"_nodeVersion":"26.1.0","dependencies":{"kokoro-js":"^1.2.1","@agenticros/core":"^0.8.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/jarvis_0.1.2_1786739640691_0.6290542197026152","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@agenticros/jarvis","version":"0.1.3","keywords":["agenticros","jarvis","voice","speech","tts","stt","wake-word","kokoro","openclaw"],"author":{"name":"AgenticROS"},"license":"Apache-2.0","_id":"@agenticros/jarvis@0.1.3","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/agenticros-skill-jarvis#readme","bugs":{"url":"https://github.com/agenticros/agenticros-skill-jarvis/issues"},"dist":{"shasum":"30baa18156fc0355cf3856c8806ad99c078a993b","tarball":"https://registry.npmjs.org/@agenticros/jarvis/-/jarvis-0.1.3.tgz","fileCount":86,"integrity":"sha512-+RAXu4FjJ7nu3f1rdT+aiB72hBJPKsT5SBfqyg+RUG31pv4RBzj60TLrAPqVRgMyzzPf7qt/yST0+97okeOedg==","signatures":[{"sig":"MEUCIQCeJ1K9mkrYfhDtdWiFpk8uYXf42S1McY0Proa+69NYfwIgHkjuGP8Ij1ZpH//6dsVWUSoDyU2KzyF5S2AA+wmQyd0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184024},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"7f9d4c0f2161906cf0aea879d78ed9980af40709","scripts":{"dev":"npx agenticros skills dev","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"agenticros":{"id":"jarvis","categories":["audio","communication","human-interaction"],"description":"Conversational voice front-end for AgenticROS: Hey Jarvis wake word, Kokoro TTS, RealSense presence greetings, and OpenClaw tool use for seeing, scanning, and following.","displayName":"Jarvis","screenshots":["docs/icon.png"],"capabilities":[{"id":"jarvis_listen","tool":"jarvis_control","verb":"listen","blocks_base":false,"description":"Start or stop the always-on voice loop (microphone, wake word, TTS).","interruptible":true},{"id":"jarvis_speak","tool":"jarvis_speak","verb":"speak","blocks_base":false,"description":"Speak a line of text through Kokoro TTS (espeak fallback).","interruptible":true}]},"repository":{"url":"git+https://github.com/agenticros/agenticros-skill-jarvis.git","type":"git"},"_npmVersion":"11.13.0","description":"Voice assistant for AgenticROS robots — wake word, speech I/O, OpenClaw agent, and RealSense presence greetings.","directories":{},"_nodeVersion":"26.1.0","dependencies":{"kokoro-js":"^1.2.1","@agenticros/core":"^0.8.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/jarvis_0.1.3_1786895885649_0.09067601584936025","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@agenticros/jarvis","version":"0.1.4","keywords":["agenticros","jarvis","voice","speech","tts","stt","wake-word","kokoro","openclaw"],"author":{"name":"AgenticROS"},"license":"Apache-2.0","_id":"@agenticros/jarvis@0.1.4","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/agenticros-skill-jarvis#readme","bugs":{"url":"https://github.com/agenticros/agenticros-skill-jarvis/issues"},"dist":{"shasum":"d89ac7bf2900e78e684682db2ea6f512b710ede0","tarball":"https://registry.npmjs.org/@agenticros/jarvis/-/jarvis-0.1.4.tgz","fileCount":86,"integrity":"sha512-iawMwtPI+bAvzVAJ/VIwZatvsizrK6VLukrfw3UZSnpxE+i2JtHdOXNRUkLF1/RToHYKJFEux4NMm+Gc+fktVg==","signatures":[{"sig":"MEYCIQDcMBiOkIUJ/3qwrTSJPAfpWrJtkvSgqa+f6qrCR1PvegIhAOxvpMRwLImBeacgSxhV/yxipfBr0RT+4iFh2Gu+01eJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185453},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"6695af8333eef634129aa5b77f7198d0993b1206","scripts":{"dev":"npx agenticros skills dev","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"agenticros":{"id":"jarvis","categories":["audio","communication","human-interaction"],"description":"Conversational voice front-end for AgenticROS: Hey Jarvis wake word, Kokoro TTS, RealSense presence greetings, and OpenClaw tool use for seeing, scanning, and following.","displayName":"Jarvis","screenshots":["docs/icon.png"],"capabilities":[{"id":"jarvis_listen","tool":"jarvis_control","verb":"listen","blocks_base":false,"description":"Start or stop the always-on voice loop (microphone, wake word, TTS).","interruptible":true},{"id":"jarvis_speak","tool":"jarvis_speak","verb":"speak","blocks_base":false,"description":"Speak a line of text through Kokoro TTS (espeak fallback).","interruptible":true}]},"repository":{"url":"git+https://github.com/agenticros/agenticros-skill-jarvis.git","type":"git"},"_npmVersion":"11.13.0","description":"Voice assistant for AgenticROS robots — wake word, speech I/O, OpenClaw agent, and RealSense presence greetings.","directories":{},"_nodeVersion":"26.1.0","dependencies":{"kokoro-js":"^1.2.1","@agenticros/core":"^0.8.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/jarvis_0.1.4_1786897855084_0.9490184542767146","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@agenticros/jarvis","version":"0.1.5","keywords":["agenticros","jarvis","voice","speech","tts","stt","wake-word","kokoro","openclaw"],"author":{"name":"AgenticROS"},"license":"Apache-2.0","_id":"@agenticros/jarvis@0.1.5","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/agenticros-skill-jarvis#readme","bugs":{"url":"https://github.com/agenticros/agenticros-skill-jarvis/issues"},"dist":{"shasum":"989a46eec9fe60a0de09cb34acc333445f4652e5","tarball":"https://registry.npmjs.org/@agenticros/jarvis/-/jarvis-0.1.5.tgz","fileCount":86,"integrity":"sha512-x/HDTfukPtqokA+zZqX1XzuQWW9x1HnR6g1v8/qGFhcefpbH2WYrDL0rHFzybBwa8eRQiWel/K1TjBEZ18rO8g==","signatures":[{"sig":"MEYCIQD9m5LP7fcOUGUTqMXCA5z5D1LJHQPC+b8THvR6B1YnhAIhAMSunE611YrWgaarqcq5qO+0drZ12Zj1SnjJ/cmMBcKP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185725},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"3a60a08afa7ac0d0203d030b5a785ac2bc92def9","scripts":{"dev":"npx agenticros skills dev","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"agenticros":{"id":"jarvis","categories":["audio","communication","human-interaction"],"description":"Conversational voice front-end for AgenticROS: Hey Jarvis wake word, Kokoro TTS, RealSense presence greetings, and OpenClaw tool use for seeing, scanning, and following.","displayName":"Jarvis","screenshots":["docs/icon.png"],"capabilities":[{"id":"jarvis_listen","tool":"jarvis_control","verb":"listen","blocks_base":false,"description":"Start or stop the always-on voice loop (microphone, wake word, TTS).","interruptible":true},{"id":"jarvis_speak","tool":"jarvis_speak","verb":"speak","blocks_base":false,"description":"Speak a line of text through Kokoro TTS (espeak fallback).","interruptible":true}]},"repository":{"url":"git+https://github.com/agenticros/agenticros-skill-jarvis.git","type":"git"},"_npmVersion":"11.13.0","description":"Voice assistant for AgenticROS robots — wake word, speech I/O, OpenClaw agent, and RealSense presence greetings.","directories":{},"_nodeVersion":"26.1.0","dependencies":{"kokoro-js":"^1.2.1","@agenticros/core":"^0.8.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/jarvis_0.1.5_1786908395552_0.504358203897592","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@agenticros/jarvis","version":"0.1.6","keywords":["agenticros","jarvis","voice","speech","tts","stt","wake-word","kokoro","openclaw"],"author":{"name":"AgenticROS"},"license":"Apache-2.0","_id":"@agenticros/jarvis@0.1.6","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/agenticros-skill-jarvis#readme","bugs":{"url":"https://github.com/agenticros/agenticros-skill-jarvis/issues"},"dist":{"shasum":"caeb3e30c7570440e02a1d8dbced0b3d7c77d8b3","tarball":"https://registry.npmjs.org/@agenticros/jarvis/-/jarvis-0.1.6.tgz","fileCount":90,"integrity":"sha512-An+rRjy6NL197/PgY06xFtk8N5OHJCyjQkc7UQVM1AXNL4qrEf8M/eVjUubHeZmUasAam0wFHS6aHuXRqUWdyw==","signatures":[{"sig":"MEUCIQDG/Ca0/U3GZp5AVNOcUfPRrujDktAVWqKDEUJwDBQAsQIgf7KYVJLWEhnFuQn4OgD0L/nPczMQjSclBv3PviO67dI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200696},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"d9f0103df637d0d675720cd1bb8c032f81146e5c","scripts":{"dev":"npx agenticros skills dev","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"agenticros":{"id":"jarvis","categories":["audio","communication","human-interaction"],"description":"Conversational voice front-end for AgenticROS: Hey Jarvis wake word, fast chat for everyday questions, Kokoro TTS, RealSense presence greetings, and OpenClaw for robot skills.","displayName":"Jarvis","screenshots":["docs/icon.png"],"capabilities":[{"id":"jarvis_listen","tool":"jarvis_control","verb":"listen","blocks_base":false,"description":"Start or stop the always-on voice loop (microphone, wake word, TTS).","interruptible":true},{"id":"jarvis_speak","tool":"jarvis_speak","verb":"speak","blocks_base":false,"description":"Speak a line of text through Kokoro TTS (espeak fallback).","interruptible":true}]},"repository":{"url":"git+https://github.com/agenticros/agenticros-skill-jarvis.git","type":"git"},"_npmVersion":"10.9.8","description":"Voice assistant for AgenticROS robots — wake word, speech I/O, OpenClaw agent, and RealSense presence greetings.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"kokoro-js":"^1.2.1","@agenticros/core":"^0.8.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/jarvis_0.1.6_1787331832020_0.09626469008654515","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@agenticros/jarvis","version":"0.1.7","keywords":["agenticros","jarvis","voice","speech","tts","stt","wake-word","kokoro","openclaw"],"author":{"name":"AgenticROS"},"license":"Apache-2.0","_id":"@agenticros/jarvis@0.1.7","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/agenticros-skill-jarvis#readme","bugs":{"url":"https://github.com/agenticros/agenticros-skill-jarvis/issues"},"dist":{"shasum":"6ad97df32fc17d498a5c704597e3a2cfa506f4c7","tarball":"https://registry.npmjs.org/@agenticros/jarvis/-/jarvis-0.1.7.tgz","fileCount":90,"integrity":"sha512-oLcfTNvUHNYG8g9iuBY8DLNBQ4FVjN0loyyjClzMLaCK3vcRL8p2Fk8sndpwJMHYT9aBF2lFhggYmmRIp4WGDw==","signatures":[{"sig":"MEQCIDaiRELALcuOzc7RsCS9oAfRSOgF8I4vAMeN+Q4wXB5SAiB7mAS+Lj4556LTL7NqtbF2YICMMMLGMEh/r/7OqLtDYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200699},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"7486bef8edda78d9d478f982cbdb334a6b6dd8b1","scripts":{"dev":"npx agenticros skills dev","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"agenticros":{"id":"jarvis","categories":["audio","communication","human-interaction"],"description":"Conversational voice front-end for AgenticROS: Hey Jarvis wake word, fast chat for everyday questions, Kokoro TTS, RealSense presence greetings, and OpenClaw for robot skills.","displayName":"Jarvis","screenshots":["docs/icon.png"],"capabilities":[{"id":"jarvis_listen","tool":"jarvis_control","verb":"listen","blocks_base":false,"description":"Start or stop the always-on voice loop (microphone, wake word, TTS).","interruptible":true},{"id":"jarvis_speak","tool":"jarvis_speak","verb":"speak","blocks_base":false,"description":"Speak a line of text through Kokoro TTS (espeak fallback).","interruptible":true}]},"repository":{"url":"git+https://github.com/agenticros/agenticros-skill-jarvis.git","type":"git"},"_npmVersion":"10.9.8","description":"Voice assistant for AgenticROS robots — wake word, speech I/O, OpenClaw agent, and RealSense presence greetings.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"kokoro-js":"^1.2.1","@agenticros/core":"^0.8.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/jarvis_0.1.7_1787418245293_0.4285795006414157","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@agenticros/jarvis","version":"0.1.8","type":"module","description":"Voice assistant for AgenticROS robots — wake word, speech I/O, OpenClaw agent, and RealSense presence greetings.","keywords":["agenticros","jarvis","voice","speech","tts","stt","wake-word","kokoro","openclaw"],"homepage":"https://github.com/agenticros/agenticros-skill-jarvis#readme","bugs":{"url":"https://github.com/agenticros/agenticros-skill-jarvis/issues"},"repository":{"type":"git","url":"git+https://github.com/agenticros/agenticros-skill-jarvis.git"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","typecheck":"tsc --noEmit","dev":"npx agenticros skills dev"},"agenticros":{"id":"jarvis","displayName":"Jarvis","description":"Conversational voice front-end for AgenticROS: Hey Jarvis wake word, fast chat for everyday questions, Kokoro TTS, RealSense presence greetings, and OpenClaw for robot skills.","categories":["audio","communication","human-interaction"],"screenshots":["docs/icon.png"],"capabilities":[{"id":"jarvis_listen","verb":"listen","description":"Start or stop the always-on voice loop (microphone, wake word, TTS).","interruptible":true,"blocks_base":false,"tool":"jarvis_control"},{"id":"jarvis_speak","verb":"speak","description":"Speak a line of text through Kokoro TTS (espeak fallback).","interruptible":true,"blocks_base":false,"tool":"jarvis_speak"}]},"dependencies":{"@agenticros/core":"^0.8.0","@sinclair/typebox":"^0.34.0","kokoro-js":"^1.2.1"},"devDependencies":{"@types/node":"^20.17.0","typescript":"^5.7.0"},"author":{"name":"AgenticROS"},"license":"Apache-2.0","publishConfig":{"access":"public"},"_id":"@agenticros/jarvis@0.1.8","gitHead":"114c42695587d5756ee6d3b1c19be1f06ec39744","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-6bFacVk5gQSs5FWhFi3nvF6leuSiNzOPWEWoKHDUMP+upJ6FoSC6d99xK9D0Z6jR1xDwQpE7aA1UX5Hz+UmwAA==","shasum":"8ec7f283530ec8b496da9d3ee8aec9fb54ab96be","tarball":"https://registry.npmjs.org/@agenticros/jarvis/-/jarvis-0.1.8.tgz","fileCount":90,"unpackedSize":202870,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCDzUfVkC9KF1bPJxxYGn5FI80PMNV8JtI6FGerFlyW1QIgaURZDSSgox8TVHzRRUpnx9kCoe8Wlf6UqNoLcPqNq74="}]},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"directories":{},"maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jarvis_0.1.8_1787594151856_0.17402973483018602"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-14T17:08:54.019Z","modified":"2026-08-24T17:55:52.159Z","0.1.0":"2026-08-14T17:08:54.382Z","0.1.1":"2026-08-14T18:45:54.024Z","0.1.2":"2026-08-14T20:34:00.851Z","0.1.3":"2026-08-16T15:58:05.867Z","0.1.4":"2026-08-16T16:30:55.225Z","0.1.5":"2026-08-16T19:26:35.698Z","0.1.6":"2026-08-21T17:03:52.231Z","0.1.7":"2026-08-22T17:04:05.445Z","0.1.8":"2026-08-24T17:55:52.006Z"},"bugs":{"url":"https://github.com/agenticros/agenticros-skill-jarvis/issues"},"author":{"name":"AgenticROS"},"license":"Apache-2.0","homepage":"https://github.com/agenticros/agenticros-skill-jarvis#readme","keywords":["agenticros","jarvis","voice","speech","tts","stt","wake-word","kokoro","openclaw"],"repository":{"type":"git","url":"git+https://github.com/agenticros/agenticros-skill-jarvis.git"},"description":"Voice assistant for AgenticROS robots — wake word, speech I/O, OpenClaw agent, and RealSense presence greetings.","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"readme":"# Jarvis\n\n```bash\nnpx agenticros skills install @agenticros/jarvis\n```\n\nVoice front-end for [AgenticROS](https://github.com/agenticros/agenticros) robots. Jarvis listens on the microphone, waits for **Hey Jarvis**, sends what you said to the OpenClaw agent (the same brain as web chat), and speaks the reply. It can also greet you when the RealSense camera sees a person.\n\nThis is a **Node.js / TypeScript** skill (`registerSkill`), not a Python port of merlin-bot. Merlin is a behavior reference only.\n\n## What it does\n\n- Always-on listen loop: mic → energy VAD → Whisper STT → wake-word gate → fast chat or OpenClaw agent → Kokoro TTS\n- Wake word defaults to **Hey Jarvis** (also `jarvis`, `hi jarvis`, `ok jarvis`)\n- 60-second conversation window after Jarvis speaks — no wake word needed for follow-ups\n- Mute with “go to sleep” / “that’s all”; unmute with the wake phrase or “wake up”\n- Presence greetings from the **RealSense ROS color topic** (not a USB webcam)\n- Ordinary questions (“what time is it?”, “what is the capital of Arizona?”) go through a fast chat model. Robot skills (“what do you see?”, “scan for a cup”, “follow me”) go through OpenClaw, so installed skills such as `@agenticros/followme` work the same as in chat\n\nHead nods and shakes are omitted — most robots do not have a pivoting head.\n\n## Hardware\n\n- Microphone (ALSA `arecord` on Linux, or `sox`/`rec` on macOS)\n- Speakers plus `aplay`, `paplay`, `pw-play`, or `afplay` to play WAV\n- Intel RealSense color topic (default `/camera/camera/color/image_raw/compressed`)\n- Optional: `espeak` or `espeak-ng` as TTS fallback if Kokoro cannot load\n\n## Install and run\n\n1. Install the skill where the OpenClaw gateway can load it:\n\n   ```bash\n   npx agenticros skills install @agenticros/jarvis\n   ```\n\n   Or clone this repo, `npm install && npm run build`, and add the directory to `skillPaths`.\n\n2. Restart the OpenClaw gateway. Jarvis auto-starts the voice loop unless `autoStart` is `false`.\n\n3. Say **Hey Jarvis, what time is it?**\n\nFrom chat you can also call:\n\n- `jarvis_control` with `start` / `stop` / `status`\n- `jarvis_speak` with `text`\n\n## Spoken examples\n\nSee [demo.md](./demo.md).\n\n## Changing the name\n\nDefault spoken name is **Jarvis**. Override with OpenClaw config or `soul.md`.\n\n`~/.openclaw/openclaw.json` (under `plugins.entries.agenticros.config`):\n\n```jsonc\n{\n  \"skills\": {\n    \"jarvis\": {\n      \"name\": \"Merlin\",\n      \"operatorName\": \"Chris\"\n    }\n  }\n}\n```\n\nOr edit `soul.md` (Merlin-compatible `key: value` file) in this package, or a user copy at `~/.agenticros/jarvis/soul.md`:\n\n```markdown\nname: Jarvis\noperator: Chris\ncharacter: A concise, helpful robot assistant.\n```\n\nWake phrases are derived from `name`: `{name}`, `hey {name}`, `hi {name}`, `ok {name}`. Optional `wakePhrase` and `wakeAliases` add extra matches.\n\nResolution order: `config.skills.jarvis` fields, then `~/.agenticros/jarvis/soul.md`, then the packaged `soul.md`, then built-in defaults.\n\n## OpenAI key (no extra setup)\n\nJarvis reuses the key OpenClaw already has. Lookup order:\n\n1. `config.skills.jarvis.openaiApiKey`\n2. `OPENAI_API_KEY`\n3. `~/.openclaw/agents/main/agent/auth-profiles.json`\n4. `~/.agenticros/config.json` → `openai.apiKey`\n\nUsed for Whisper STT (default), optional OpenAI TTS, and presence/see vision when not using Ollama.\n\n## Other LLMs\n\nDefault `agentBackend` is `openclaw`. Robot turns go through the OpenClaw agent so the gateway’s configured model and **all robot tools** are used. Everyday questions skip that agent and hit a fast chat model (`chatBackend`, default `openai` / `gpt-4o-mini`) so trivia answers in about a second instead of waiting on the full skill stack. Change the OpenClaw model in gateway config — Jarvis does not need a second OpenClaw model setting.\n\nSet `chatBackend` to `off` to send every voice turn through OpenClaw (the old behavior). Set it to `ollama` if you want the fast path local.\n\n### Direct OpenAI\n\n```jsonc\n\"skills\": {\n  \"jarvis\": {\n    \"agentBackend\": \"openai\",\n    \"openaiModel\": \"gpt-4o-mini\",\n    \"openaiBaseUrl\": \"https://api.openai.com/v1\"\n  }\n}\n```\n\n`openaiBaseUrl` can point at Azure or any OpenAI-compatible server. Direct mode has built-in `see` and `scan_for` tools only. “Follow me” needs OpenClaw plus `@agenticros/followme`.\n\n### Local Ollama (Qwen, etc.)\n\n```jsonc\n\"skills\": {\n  \"jarvis\": {\n    \"agentBackend\": \"ollama\",\n    \"ollamaUrl\": \"http://localhost:11434\",\n    \"ollamaModel\": \"qwen2.5:7b\",\n    \"ollamaVisionModel\": \"qwen3-vl:2b\"\n  }\n}\n```\n\nPull models first:\n\n```bash\nollama pull qwen2.5:7b\nollama pull qwen3-vl:2b\n```\n\nSame limited robot tools as direct OpenAI (`see`, `scan_for`). For full AgenticROS skills, keep `agentBackend` as `openclaw` and point the **gateway** at Ollama instead. Set `chatBackend` to `ollama` if you also want the fast trivia path to stay local.\n\n## TTS\n\n| `ttsProvider` | Engine | Notes |\n|---|---|---|\n| `kokoro` (default) | [`kokoro-js`](https://www.npmjs.com/package/kokoro-js) | Local Kokoro-82M ONNX. First run downloads ~80MB. Voice `am_fenrir`. |\n| `openai` | OpenAI `tts-1` | Uses the existing API key. |\n| `espeak` | `espeak` / `espeak-ng` | Robotic fallback; also used automatically if Kokoro fails to load. |\n\n## STT\n\n| `sttProvider` | Engine |\n|---|---|\n| `openai` (default) | Whisper `whisper-1` |\n| `openai-compat` | Same HTTP API at `openaiBaseUrl` (local Whisper server) |\n| `whisper.cpp` | Local `whisper-cli` (`sttCommand`) |\n\nOllama is not used for STT.\n\n## RealSense camera\n\nVision is ROS-only. Topic order:\n\n1. `config.skills.jarvis.cameraTopic`\n2. `config.robot.cameraTopic`\n3. `/camera/camera/color/image_raw/compressed`\n\nUse `cameraMessageType: \"Image\"` for uncompressed `sensor_msgs/Image`. Depth is optional and not required for greetings.\n\n## Config (`config.skills.jarvis`)\n\n| Option | Default | Description |\n|---|---|---|\n| `name` | `Jarvis` | Spoken name / wake-word base |\n| `wakePhrase` | (derived) | Extra wake phrase |\n| `wakeAliases` | `[]` | Extra Whisper mishears |\n| `operatorName` | from `soul.md` / `friend` | Who greetings address |\n| `conversationWindowSec` | `60` | Seconds after speech when wake word is optional |\n| `autoStart` | `true` | Start listening when the gateway loads |\n| `agentBackend` | `openclaw` | `openclaw` \\| `openai` \\| `ollama` |\n| `chatBackend` | `openai` | Fast path for chitchat when `agentBackend` is `openclaw`. `openai` \\| `ollama` \\| `off` |\n| `openclawAgent` | `main` | OpenClaw agent id |\n| `sttProvider` / `sttModel` | `openai` / `whisper-1` | Speech-to-text |\n| `ttsProvider` / `ttsVoice` | `kokoro` / `am_fenrir` | Text-to-speech |\n| `ttsCommand` | `espeak` | Fallback binary |\n| `greetOnPresence` | `true` | Greet when a person appears in RealSense |\n| `presenceIntervalMs` | `4000` | How often to sample the camera |\n| `initiative` | `0.4` | Chance to add “Need anything?” after a greeting |\n| `cameraTopic` | robot / RealSense default | Color image topic |\n| `cameraMessageType` | `CompressedImage` | `CompressedImage` or `Image` |\n| `micDevice` | system default | ALSA device for `arecord` (`JARVIS_MIC_DEVICE` also works) |\n| `vadSilenceMs` | `800` | Silence after speech before STT starts |\n| `muteWords` | go to sleep, that’s all, … | Sleep phrases |\n| `openaiApiKey` | (resolved) | Optional override |\n\n## Project structure\n\n| Path | Purpose |\n|---|---|\n| `src/index.ts` | `registerSkill` — tools + voice service |\n| `src/config.ts` | `skills.jarvis` + `soul.md` |\n| `src/keys.ts` | OpenAI / OpenClaw key resolution |\n| `src/voice/` | Mic, VAD, STT, TTS, wake word, listen loop |\n| `src/presence/` | RealSense person detect + greetings |\n| `src/agent/` | OpenClaw CLI/HTTP, fast chat, robot-intent routing, and direct LLM backends |\n| `soul.md` | Identity (`name`, `operator`, `character`) |\n\n## Troubleshooting\n\n- **No mic** — install `alsa-utils` (`arecord`) or `sox`. Set `JARVIS_MIC_DEVICE` or `micDevice` if the default ALSA device is wrong.\n- **Jarvis hears itself** — the mic is muted while TTS plays. If echo remains, lower speaker volume or move the mic.\n- **Wake word missed** — Whisper often hears “Jarvus”; that alias is built in. Add `wakeAliases` for other mishears.\n- **Kokoro download fails** — first run needs network. Jarvis falls back to `espeak`. Set `ttsProvider: \"espeak\"` to skip Kokoro.\n- **No speech out** — install `aplay` / `paplay` (Linux) or use macOS `afplay`.\n- **Presence never greets** — confirm `config.robot.cameraTopic` matches RealSense (`.../color/image_raw/compressed` vs raw `Image`). Check OpenAI key or Ollama VLM.\n- **“Follow me” does nothing** — install `@agenticros/followme` and keep `agentBackend: \"openclaw\"`.\n- **Trivia is still slow** — everyday questions should log `Jarvis route: chat`. If you see `OpenClaw` on “capital of Arizona”, check that `chatBackend` is not `off` and that an OpenAI (or Ollama) key is available for the fast path.\n- **OpenClaw agent fails** — `openclaw` must be on `PATH`. HTTP fallback needs gateway `/v1/chat/completions` enabled, plus the gateway token in `~/.openclaw/openclaw.json`.\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}