This file is designed for coding assistants. If you are a human, see README.md for the human-friendly guide.
git clone https://github.com/GreyforgeLabs/voiceops.git && cd voiceops && ./scripts/setup.shVoiceOps is a full-duplex Discord voice bridge for agent gateways. It listens to one configured speaker, transcribes bounded utterances, sends them to a WebSocket gateway, synthesizes the final response with kokoro-js, and plays it back into Discord.
voiceops/
index.mjs # Discord client and process lifecycle
src/
asr.mjs # PCM to WAV and transcription request
config.mjs # local JSON and environment config loader
discord-voice.mjs # Discord voice receive/transmit manager
gateway-client.mjs # WebSocket gateway client
pipeline.mjs # queue, rate limit, ASR, gateway, TTS orchestration
tts.mjs # subprocess TTS coordinator
tts-worker.mjs # kokoro-js worker
voiceops.config.example.json # local config template
- Node.js 20 or newer.
- npm.
- ffmpeg on
PATH. - Discord bot credentials.
- A compatible WebSocket gateway.
- A transcription key exposed through config or
OPENAI_API_KEY.
- Clone:
git clone https://github.com/GreyforgeLabs/voiceops.git - Enter directory:
cd voiceops - Run setup:
./scripts/setup.sh - Copy
voiceops.config.example.jsontovoiceops.config.jsonif setup did not already create it. - Fill in local Discord, gateway, and transcription values.
npm testExpected output: every .mjs file passes node --check.
index.mjs- runtime entry point.src/pipeline.mjs- core voice pipeline.src/gateway-client.mjs- gateway protocol adapter.voiceops.config.example.json- config schema.
Use voiceops.config.json locally. It is ignored by git. Environment overrides:
VOICEOPS_DISCORD_TOKENVOICEOPS_GATEWAY_URLVOICEOPS_GATEWAY_TOKENOPENAI_API_KEY
npm test
npm start