Providers

Inworld

Inworld is a streaming text-to-speech (TTS) provider. In OpenClaw it synthesizes outbound reply audio (MP3 by default, OGG_OPUS for voice notes) and PCM audio for telephony channels such as Voice Call.

OpenClaw posts to Inworld's streaming TTS endpoint, concatenates the returned base64 audio chunks into a single buffer, and hands the result to the standard reply-audio pipeline.

Property Value
Provider id inworld
Plugin bundled, enabledByDefault: true
Contract speechProviders (TTS only)
Auth env var INWORLD_API_KEY (HTTP Basic, Base64 dashboard credential)
Base URL https://api.inworld.ai
Default voice Sarah
Default model inworld-tts-1.5-max
Output MP3 (default), OGG_OPUS (voice notes), PCM 22050 Hz (telephony)
Website inworld.ai
Docs docs.inworld.ai/tts/tts

Getting started

  • Set your API key

    Copy the credential from your Inworld dashboard (Workspace > API Keys) and set it as an env var. The value is sent verbatim as the HTTP Basic credential, so do not Base64-encode it again or convert it to a bearer token.

    INWORLD_API_KEY=<base64-credential-from-dashboard>
    
  • Select Inworld in messages.tts

    {
      messages: {
        tts: {
          auto: "always",
          provider: "inworld",
          providers: {
            inworld: {
              voiceId: "Sarah",
              modelId: "inworld-tts-1.5-max",
            },
          },
        },
      },
    }
    
  • Send a message

    Send a reply through any connected channel. OpenClaw synthesizes the audio with Inworld and delivers it as MP3 (or OGG_OPUS when the channel expects a voice note).

  • Configuration options

    Option Path Description
    apiKey messages.tts.providers.inworld.apiKey Base64 dashboard credential. Falls back to INWORLD_API_KEY.
    baseUrl messages.tts.providers.inworld.baseUrl Override Inworld API base URL (default https://api.inworld.ai).
    voiceId messages.tts.providers.inworld.voiceId Voice identifier (default Sarah).
    modelId messages.tts.providers.inworld.modelId TTS model id (default inworld-tts-1.5-max).
    temperature messages.tts.providers.inworld.temperature Sampling temperature 0..2 (optional).

    Notes

    Authentication

    Inworld uses HTTP Basic auth with a single Base64-encoded credential string. Copy it verbatim from the Inworld dashboard. The provider sends it as Authorization: Basic <apiKey> without any further encoding, so do not Base64-encode it yourself and do not pass a bearer-style token. See TTS auth notes for the same callout.

    Models

    Supported model ids: inworld-tts-1.5-max (default), inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1.

    Audio outputs

    Replies use MP3 by default. When the channel target is voice-note OpenClaw asks Inworld for OGG_OPUS so the audio plays as a native voice bubble. Telephony synthesis uses raw PCM at 22050 Hz to feed the telephony bridge.

    Custom endpoints

    Override the API host with messages.tts.providers.inworld.baseUrl. Trailing slashes are stripped before requests are sent.