Qwen3-TTS VoiceDesign

PassAudited by ClawScan on May 10, 2026.

Overview

The skill appears to be a coherent text-to-speech server/client package, but users should review its external installs, network exposure, and optional auto-start setup.

This skill is reasonable for self-hosted TTS use. Before installing, review the external Python/model downloads, run it in an isolated environment, bind the server to localhost unless remote access is intended, avoid the elevated scheduled-task example, and do not send sensitive text to an untrusted TTS_URL.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Installing may download and run code from package/model sources outside the skill itself.

Why it was flagged

Manual setup pulls unpinned packages and model files from external registries. This is disclosed and purpose-aligned, but version/provenance changes can affect the user's environment.

Skill content
pip install qwen-tts soundfile pydub uvicorn fastapi numpy ... pip install torch --index-url https://download.pytorch.org/whl/cu128 ... snapshot_download('Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign')
Recommendation

Run setup in an isolated virtual environment, review package sources, and pin versions if you need reproducible or enterprise-controlled installs.

What this means

Other devices on the network could use the TTS server and consume compute resources if the port is reachable.

Why it was flagged

The API server binds to all interfaces by default and the provided endpoint code does not show authentication or rate limiting. This is coherent for a TTS service, but it can be reachable by other clients if the port is exposed.

Skill content
HOST = os.environ.get("TTS_HOST", "0.0.0.0") ... @app.post("/tts") ... uvicorn.run(app, host=HOST, port=PORT, log_level="info")
Recommendation

Use TTS_HOST=127.0.0.1 for local-only use, or place the service behind a trusted firewall/reverse proxy if remote access is needed.

What this means

Sensitive text could leave the local machine if a remote TTS_URL is used.

Why it was flagged

The client sends the requested text to the configured TTS server. This is expected for text-to-speech, but if TTS_URL points to a remote or untrusted host, that host receives the text.

Skill content
curl -s -o "$OUTPUT" -X POST "${TTS_URL}/tts" -H "Content-Type: application/json" -d "$BODY"
Recommendation

Send confidential text only to a trusted self-hosted endpoint, and prefer localhost for private use.

What this means

The TTS server may continue consuming resources or remain network-reachable until explicitly stopped.

Why it was flagged

The documentation describes optional long-running/background and auto-restart modes. These are disclosed and user-directed, but they keep the service running after the initial task.

Skill content
nohup python tts_server.py > server.log 2>&1 & ... Auto-restart (Windows — scheduled task + guard script) ... Auto-restart (Linux — systemd)
Recommendation

Use auto-restart only when you want a persistent service, and keep the documented stop commands available.

What this means

If followed as written, the persistent TTS process could run with elevated local permissions.

Why it was flagged

The optional Windows scheduled-task example uses highest privileges, which is broader than a TTS server normally needs. It is not automatic, but users should notice the privilege level before using it.

Skill content
schtasks /create /tn "TTS-Guard" /tr "tts_guard.bat" /sc onlogon /rl highest
Recommendation

Do not use /rl highest unless truly required; run the service as a normal user or a least-privilege service account.