Back to skill
Skillv1.1.0
ClawScan security
Bidirectional Voice Chat System · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousMar 2, 2026, 6:00 PM
- Verdict
- suspicious
- Confidence
- medium
- Model
- gpt-5-mini
- Summary
- The skill's files and dependencies broadly match a local voice-chat bridge, but the runtime instructions reference missing scripts and include steps that could expose recorded audio publicly (via tunnels) and suppress server logs — review missing files, public-tunnel usage, and telemetry before installing.
- Guidance
- What to check before installing or running this skill: - Missing scripts: SKILL.md references hotkey_recorder.py, voice_chat_loop.py, chat.py and other runtime components that are not included. Ask the author for the missing files or disable features that call them. Running instructions that reference absent scripts will fail or be misleading. - Public exposure risk: If you enable 'ngrok' / 'cloudflared' modes or set a real domain, generated voice files under ~/.openclaw/workspace/voice_output will become reachable from the Internet. The bundled HTTP server suppresses access logs, so traffic may not be visible locally. Only expose this if you understand who can access the URLs and you are comfortable with voice data being public. - Credentials and tokens: The skill metadata does not declare any credentials, but ngrok/cloudflared require auth tokens (and Cloudflare Tunnel may require zone credentials). Manage those tokens carefully; do not paste them into untrusted code. The skill does not automatically upload data to any remote service in the provided code, but Edge TTS (edge-tts CLI) likely uses an online service — check its privacy policy. - Telemetry / monitoring: daily_monitor.py writes local reports and runs a local test that invokes generate_voice.py. It does not appear to exfiltrate telemetry, but the code refers to ClawHub stats ('需手动从 ClawHub 获取') without automated upload. If you are uncomfortable with local reports under ~/.openclaw/workspace/memory, inspect or remove that script. - Run in a sandbox first: Execute the scripts in a controlled environment (VM/container) to confirm behavior. Inspect generated URLs and verify that public-tunnel steps are manual and require your explicit tokens/configuration before you go public. - Review edge-tts & third-party binaries: edge-tts and 'hear' are third-party programs; verify their source, CLI behavior (whether they send audio/text to external servers), and install them intentionally. The SKILL does recommend fetching hear from GitHub releases — confirm checksums/limits before placing binaries into ~/.local/bin. If you want, I can enumerate the specific missing script names found in the SKILL.md and produce a minimal checklist of commands to safely test the local-only mode (server bound to localhost, no tunnels) in a sandbox.
Review Dimensions
- Purpose & Capability
- okName/description, included scripts (transcribe, generate_voice, voice_server), and declared tools (ffmpeg, edge-tts, optional cloudflared/ngrok) are consistent with a bidirectional voice chat bridge that converts speech→text and text→speech and can serve files over HTTP.
- Instruction Scope
- concernSKILL.md refers to many runtime scripts and features (hotkey_recorder.py, voice_chat_loop.py, chat.py, chat-related behavior, habits.json updates, .voice_trigger file) that are not present in the package. It instructs users to open public tunnels (ngrok/cloudflared) and to serve voice files with a HTTP server that intentionally suppresses access logs — this combination raises privacy/exposure concerns because generated voice files could become publicly accessible without obvious logging. The instructions also instruct adding AGENTS.md behaviors (writing to habits.json and emotion updates) that are not implemented here.
- Install Mechanism
- noteNo formal install spec (instruction-only with shipped scripts). The instructions recommend installing third-party binaries (ffmpeg, cloudflared, ngrok, hear) via brew/npm and downloading hear from a GitHub release — these are common but still involve executing fetched binaries. No archive downloads from obscure servers are present in the provided files.
- Credentials
- noteThe skill requests no environment variables or credentials in metadata, which matches the included code. However, optional deployment modes (ngrok/cloudflared) require external tokens/credentials that are not listed or discussed in the skill metadata; daily_monitor mentions collecting 'installation data' but only writes local reports (no remote exfiltration in code).
- Persistence & Privilege
- noteThe skill does not request always:true and does not modify other skills. It creates local state under ~/.openclaw/workspace and ~/.openclaw/workspace/memory. The HTTP server suppresses logging (QuietHTTPRequestHandler), which reduces visibility into external access when used with public tunnels — a design choice with privacy implications but not an explicit elevated privilege.
