← All skills
Tencent SkillHub · Developer Tools

WebChat Voice Proxy

Voice input and microphone button for OpenClaw WebChat Control UI. Adds a mic button to chat, records audio via browser MediaRecorder, transcribes locally vi...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Voice input and microphone button for OpenClaw WebChat Control UI. Adds a mic button to chat, records audio via browser MediaRecorder, transcribes locally vi...

⬇ 0 downloads ★ 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SECURITY-AUDIT.md, SKILL.md, assets/https-server.py, assets/i18n.json, assets/voice-input.js, hooks/HOOK.md

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
0.2.2

Documentation

ClawHub primary doc Primary doc: SKILL.md 14 sections Open source page

WebChat Voice Proxy

Set up a reboot-safe voice stack for OpenClaw WebChat (including the current polished mic/stop/hourglass UI states): HTTPS Control UI on port 8443 /transcribe proxy to local faster-whisper service WebSocket passthrough to gateway (ws://127.0.0.1:18789) Voice button script injection into Control UI Real-time VU meter: button shadow/scale reacts to voice level Push-to-Talk: hold mic button to record, release to send (default mode) Toggle mode: click to start, click to stop (switch via double-click on mic button) Keyboard shortcuts: Ctrl+Space Push-to-Talk, Ctrl+Shift+M start/stop continuous recording Localized UI: auto-detects browser language (English, German, Chinese built-in), customizable

Prerequisites (required)

This skill requires a local faster-whisper HTTP service. Expected default: URL: http://127.0.0.1:18790/transcribe systemd user service: openclaw-transcribe.service Verify before deployment: systemctl --user is-active openclaw-transcribe.service curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:18790/transcribe -X POST -H 'Content-Type: application/octet-stream' --data-binary 'x' If this dependency is missing, set up faster-whisper first (model load + HTTP endpoint), then run this skill. Related skills: faster-whisper-local-service (backend prerequisite) webchat-voice-full-stack (meta-installer that deploys both backend + proxy)

Workflow

Ensure transcription service exists and is running (openclaw-transcribe.service). Deploy voice-input.js to Control UI assets and inject script tag into index.html. Configure gateway allowed origin for external HTTPS UI. Run HTTPS+WSS proxy as persistent user systemd service (openclaw-voice-https.service). Verify pairing/token/origin errors and resolve in order.

Security Notes

Localhost by default: The HTTPS proxy binds to 127.0.0.1 only. It is not reachable from other devices on your network unless you explicitly set VOICE_HOST to a LAN IP. LAN exposure: Setting VOICE_HOST=<LAN-IP> exposes the proxy (and by extension the gateway WebSocket and transcription endpoint) to all devices on that network. Only do this on trusted networks. Persistence: This skill installs a user systemd service (openclaw-voice-https.service) that starts automatically on boot, and a gateway hook that re-injects the UI script after updates. Use uninstall.sh to fully revert. Self-signed TLS: The auto-generated certificate is not trusted by browsers. You will see a certificate warning on first access.

Deploy

Run (localhost only — default, most secure): bash scripts/deploy.sh Or expose on LAN (required to access from other devices): VOICE_HOST=10.0.0.42 VOICE_HTTPS_PORT=8443 VOICE_LANG=de bash scripts/deploy.sh When run interactively without VOICE_LANG, the script will ask you to choose a UI language (auto, en, de, zh). Set VOICE_LANG=auto to skip the prompt. This script is idempotent.

Quick verify

Run: bash scripts/status.sh Expected: both services active injection present https:200

Common fixes

404 /chat?... → SPA fallback missing in HTTPS proxy. origin not allowed → ensure deploy used correct VOICE_HOST and added matching HTTPS origin to gateway.controlUi.allowedOrigins. token missing → open URL with ?token=... once. pairing required → approve pending device via openclaw devices approve <requestId> --token <gateway-token>. Mic breaks after reboot → cert paths must be persistent (not /tmp). No transcription result → check local faster-whisper endpoint first. See references/troubleshooting.md for exact commands.

What this skill modifies

Before installing, be aware of all system changes deploy.sh makes: WhatPathActionControl UI HTML<npm-global>/openclaw/dist/control-ui/index.htmlAdds <script> tag for voice-input.jsControl UI asset<npm-global>/openclaw/dist/control-ui/assets/voice-input.jsCopies mic button JSGateway config~/.openclaw/openclaw.jsonAdds HTTPS origin to gateway.controlUi.allowedOriginsSystemd service~/.config/systemd/user/openclaw-voice-https.serviceCreates + enables persistent HTTPS proxyGateway hook~/.openclaw/hooks/voice-input-inject/Installs startup hook that re-injects JS after updatesWorkspace files~/.openclaw/workspace/voice-input/Copies voice-input.js, https-server.pyTLS certs~/.openclaw/workspace/voice-input/certs/Auto-generated self-signed cert on first run The injected JS (voice-input.js) runs inside the Control UI and interacts with the chat input. Review the source before deploying.

Mic Button Controls

ActionEffectHold (PTT mode)Record while held, transcribe on releaseClick (Toggle mode)Start recording / stop and transcribeDouble-clickSwitch between PTT and Toggle modeRight-clickToggle beep sound on/offCtrl+Space (hold)Push-to-Talk via keyboard (works even with text field focused)Ctrl+Shift+MStart/stop recording (transcribes on stop)Ctrl+Shift+BStart/stop live transcription [beta] — text appears in real-time, auto-sends after 2s review, stops on 5s silence or "Stop Hugo" keyword The current mode and available actions are shown in the button tooltip on hover.

Language / i18n

The UI automatically detects the browser language and shows tooltips, toasts, and placeholder text in the matching language. Built-in languages: English (en), German (de), Chinese (zh)

Override language

Set a language override in the browser console: localStorage.setItem('oc-voice-lang', 'de'); // force German localStorage.setItem('oc-voice-lang', 'zh'); // force Chinese localStorage.removeItem('oc-voice-lang'); // back to auto-detect Then reload the page.

Add a custom language

Edit voice-input.js and add a new entry to the I18N object. Use assets/i18n.json as a template — it contains all translation keys with the built-in translations. Example for adding French: const I18N = { // ... existing entries ... fr: { tooltip_ptt: "Maintenir pour parler", tooltip_toggle: "Cliquer pour démarrer/arrêter", tooltip_next_toggle: "Mode clic", tooltip_next_ptt: "Push-to-Talk", tooltip_beep_off: "Désactiver le bip", tooltip_beep_on: "Activer le bip", tooltip_dblclick: "Double-clic", tooltip_rightclick: "Clic droit", toast_ptt: "Push-to-Talk", toast_toggle: "Mode clic", toast_beep_on: "Bip activé", toast_beep_off: "Bip désactivé", placeholder_suffix: " — Voix : (Ctrl+Espace Push-To-Talk, Ctrl+Shift+M enregistrement continu)" } }; After editing, redeploy with bash scripts/deploy.sh to copy the updated JS to the Control UI.

CORS Policy

The /transcribe proxy endpoint uses a configurable Access-Control-Allow-Origin header. Set VOICE_ALLOWED_ORIGIN env var to restrict. Default: https://<VOICE_HOST>:<VOICE_HTTPS_PORT>.

Uninstall

To fully revert all changes: bash scripts/uninstall.sh This will: Stop and remove openclaw-voice-https.service Remove the gateway startup hook Remove voice-input.js from Control UI and undo the index.html injection Remove the HTTPS origin from gateway config Restart the gateway Remove TLS certificates Remove workspace runtime files (voice-input.js, https-server.py, i18n.json) The faster-whisper backend is not touched by uninstall — remove it separately via faster-whisper-local-service if needed.

Category context

Code helpers, APIs, CLIs, browser automation, testing, and developer operations.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
3 Docs2 Scripts1 Config
  • SKILL.md Primary doc
  • hooks/HOOK.md Docs
  • SECURITY-AUDIT.md Docs
  • assets/https-server.py Scripts
  • assets/voice-input.js Scripts
  • assets/i18n.json Config