Openclaw-discord-voice-input-skill openclaw-discord-voice-input-skill
Install and maintain a free Discord DM voice-input bridge for an existing OpenClaw home. Use when a user wants Discord private voice messages transcribed locally with faster-whisper and forwarded into OpenClaw without paid APIs, especially on macOS launchd-based setups.
install
source · Clone the upstream repo
git clone https://github.com/TimRChen/openclaw-discord-voice-input-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TimRChen/openclaw-discord-voice-input-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/openclaw-discord-voice-input-skill" ~/.claude/skills/timrchen-openclaw-discord-voice-input-skill-openclaw-discord-voice-input-skill-02aca5 && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TimRChen/openclaw-discord-voice-input-skill "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/openclaw-discord-voice-input-skill" ~/.openclaw/skills/timrchen-openclaw-discord-voice-input-skill-openclaw-discord-voice-input-skill-02aca5 && rm -rf "$T"
manifest:
skills/openclaw-discord-voice-input-skill/SKILL.mdsource content
OpenClaw Discord DM Voice
Install the voice bridge by running
scripts/install.py. Prefer the script over manual patching because it copies the runtime assets, patches openclaw.json, installs dependencies, renders the LaunchAgent plist, and deploys the service consistently.
Quick Start
Run:
python3 scripts/install.py --openclaw-home ~/.openclaw
Use these flags when needed:
to pin the Python interpreter used by--python /abs/path/to/python3faster-whisper
to set the default transcription model in the LaunchAgent--model base
to set the default language hint--language zh
to install files without starting the LaunchAgent--skip-deploy
to skip--skip-python-installpip install --user faster-whisper
What The Installer Does
- Copy
intoassets/runtime/discord-dm-voice/*<openclaw-home>/runtime/discord-dm-voice - Install Node dependencies from the bundled
package-lock.json - Install
for the selected Python interpreter unless skippedfaster-whisper - Set
intools.media.audio.enabled=false
so OpenClaw does not race the bridge with its native audio preflightopenclaw.json - Set
inchannels.discord.dm.enabled=false
so the bridge becomes the single Discord private-chat ingress path and avoids duplicate sessionsopenclaw.json - Add
,oc-voice-start
,oc-voice-restart
,oc-voice-stop
, andoc-voice-status
tooc-voice-logs
when that file existsruntime/agent-safehouse/openclaw-aliases.zsh - Render and deploy
ai.openclaw.discord-dm-voice.plist
Assumptions
- The target OpenClaw home already exists.
- Discord is already configured in
, including bot token and allowlists.openclaw.json - The goal is Discord DM voice messages, not voice channels or server audio.
- The host is macOS with
.launchd
Validate After Install
Run:
oc-voice-status oc-voice-logs
Then send a fresh voice message to the bot in Discord DM. If the user still sees OpenClaw's old "
whisper not in PATH" reply, re-check openclaw.json and confirm tools.media.audio.enabled is false.
Assets
: Discord DM bridgeassets/runtime/discord-dm-voice/voice-bridge.mjs
: local transcription entrypointassets/runtime/discord-dm-voice/transcribe_with_faster_whisper.py
: rendered at install time with user-specific absolute pathsassets/runtime/discord-dm-voice/*.template
: canonical installer and updaterscripts/install.py