← Back to Skills Marketplace
lotfinity

OpenClaw Tailnet TTS Endpoint

by lotfinity · GitHub ↗ · v0.1.0
cross-platform ⚠ suspicious
357
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install local-openedai-tts
Description
Configure an OpenClaw instance to use a local OpenAI-compatible TTS backend (for example openedai-speech) with cloned voices. Use when users ask to wire loca...
README (SKILL.md)

Local OpenAI-Compatible TTS for OpenClaw

Configure OpenClaw to send TTS requests to a local OpenAI-compatible endpoint, then verify end-to-end delivery.

Quick workflow

  1. Set OpenAI base URL to local endpoint.
  2. Configure OpenClaw messages TTS provider/model/voice.
  3. Verify TTS config with openclaw config get.
  4. Generate a direct API sample clip to confirm voice mapping.
  5. Send sample via channel plugin (Telegram/WhatsApp/etc.) if requested.
  6. If remote access is requested, expose the TTS service port (not necessarily the OpenClaw gateway).

1) Configure OpenClaw to use local TTS backend

Use CLI config commands only.

openclaw config set env.vars.OPENAI_BASE_URL http://127.0.0.1:19000/v1
openclaw config set messages.tts.provider openai
openclaw config set messages.tts.openai.model tts-1-hd
openclaw config set messages.tts.openai.voice me

Verify:

openclaw config get env.vars.OPENAI_BASE_URL
openclaw config get messages.tts

2) Verify cloned voice exists on backend

If using openedai-speech + XTTS voice mapping, cloned voices are commonly available only on tts-1-hd.

Check voice map inside container:

sudo docker exec openedai-speech sh -lc 'sed -n "1,220p" /app/config/voice_to_speaker.yaml'

If voice: me fails with KeyError, check whether:

  • wrong model is used (tts-1 instead of tts-1-hd), or
  • voice key missing from voice_to_speaker.yaml.

3) Generate a deterministic test clip (direct API)

Use direct POST to validate backend behavior independent of chat surface rendering.

curl -sS -X POST http://127.0.0.1:8880/v1/audio/speech \
  -H 'Content-Type: application/json' \
  -d '{
    "model":"tts-1-hd",
    "voice":"me",
    "input":"Quick cloned voice check.",
    "speed":1.25,
    "response_format":"mp3"
  }' \
  --output /tmp/clone-test.mp3

file /tmp/clone-test.mp3

Expected: MP3 audio file (not JSON error text).

4) Important limitation: speed pinning in OpenClaw config

messages.tts.openai.speed may be rejected by current OpenClaw schema. If so:

  • keep model/voice in OpenClaw config,
  • set speed per request when generating clips directly,
  • or enforce speed with a local proxy layer in front of backend.

Do not claim speed is globally pinned unless schema accepts it.

5) Expose service correctly (LAN/Tailscale)

Distinguish between:

  • OpenClaw gateway exposure (gateway.bind, gateway.tailscale.*), and
  • TTS backend exposure (container/service port such as 19000 or 8880).

If user asks to expose local TTS only, do not change gateway bind/mode unless explicitly requested.

For TTS backend reachability:

  1. Confirm listener/bind:
    ss -ltnp | grep ':19000\|:8880'
    
  2. If bound to 127.0.0.1, rebind service/container to 0.0.0.0 or tailnet interface.
  3. Restrict access via firewall/Tailscale ACLs.

6) Channel delivery troubleshooting

If webchat does not play voice attachments:

  • send as regular file attachment to supported channel (e.g., Telegram),
  • verify target id explicitly,
  • confirm local file still exists before sending.

If file missing, regenerate clip and resend.

Command safety

  • Use openclaw config set/get (never edit openclaw.json directly).
  • Avoid unrelated gateway changes when task is strictly TTS service exposure.
  • For external sends, use channel tools and explicit target ids.
Usage Guidance
This skill appears coherent, but consider the operational risks before following its steps: you will need administrative access (docker, firewall, network) and the instructions explicitly include making the TTS service reachable from LAN/Tailscale — only do that if you intend to expose cloned voices and have appropriate network controls (firewall/Tailscale ACLs). Verify the local TTS backend image/service is trusted and legal to use (voice cloning may have legal/ethical constraints), back up OpenClaw config before changing it, and test changes in an isolated environment first. If you are uncertain, run the listed commands manually rather than allowing any automated agent to apply them.
Capability Analysis
Type: OpenClaw Skill Name: local-openedai-tts Version: 0.1.0 The skill is classified as suspicious due to the use of high-risk shell commands, specifically `sudo docker exec openedai-speech sh -lc 'sed -n "1,220p" /app/config/voice_to_speaker.yaml'` in `SKILL.md`. While the stated purpose of inspecting a configuration file within a specific container is diagnostic and aligned with the skill's goal, executing `sudo docker exec` grants root privileges inside the container and requires `sudo` on the host, representing a significant capability that could be abused if the agent's execution environment is not strictly sandboxed or if the skill were to be modified. Other shell commands like `curl` and `ss` are also used, but the `sudo docker exec` command is the primary indicator of elevated risk, even without clear malicious intent in this specific context.
Capability Assessment
Purpose & Capability
The name/description match the SKILL.md. All commands (openclaw config, curl to local endpoints, docker exec to inspect voice mapping, ss to check listeners, and guidance about rebinding/exposing services) are appropriate to configuring and validating a local TTS endpoint for OpenClaw; there are no unrelated credential or binary requirements.
Instruction Scope
Instructions stay on-task (configure OpenClaw, validate voice mapping, generate test clips, and optionally expose the TTS service). They do include privileged/admin actions (sudo docker exec, ss, rebinding services, firewall/Tailscale ACL changes) and guidance to expose a service to LAN/Tailscale — these are necessary for the feature but increase operational risk and require explicit user consent.
Install Mechanism
No install spec or code files (instruction-only). This is the lowest-risk installation surface; nothing is downloaded or written by the skill itself.
Credentials
The skill declares no required environment variables or credentials and the instructions do not attempt to read secrets or unrelated config. Accesses are limited to local services/containers and OpenClaw config.
Persistence & Privilege
The skill instructs modifying OpenClaw configuration via openclaw config set (expected for the task) and may require elevated OS privileges to inspect containers or change firewall/network bindings. The skill is not always-enabled and does not request persistent platform-wide privileges beyond normal config edits.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install local-openedai-tts
  3. After installation, invoke the skill by name or use /local-openedai-tts
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial publish: shared TTS endpoint wiring and cloned voice usage
Metadata
Slug local-openedai-tts
Version 0.1.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is OpenClaw Tailnet TTS Endpoint?

Configure an OpenClaw instance to use a local OpenAI-compatible TTS backend (for example openedai-speech) with cloned voices. Use when users ask to wire loca... It is an AI Agent Skill for Claude Code / OpenClaw, with 357 downloads so far.

How do I install OpenClaw Tailnet TTS Endpoint?

Run "/install local-openedai-tts" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is OpenClaw Tailnet TTS Endpoint free?

Yes, OpenClaw Tailnet TTS Endpoint is completely free (open-source). You can download, install and use it at no cost.

Which platforms does OpenClaw Tailnet TTS Endpoint support?

OpenClaw Tailnet TTS Endpoint is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created OpenClaw Tailnet TTS Endpoint?

It is built and maintained by lotfinity (@lotfinity); the current version is v0.1.0.

💬 Comments