> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeroruntime.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rime Prism

> Use Rime Prism, a speech-to-speech model, in a Zero Runtime pipeline. Setup and usage in Python.

Rime Prism is a **speech-to-speech** model. It handles transcription, reasoning, and voice synthesis in a single phone-ready model that finds turns and handles interruptions itself, with a short spoken phrase while tools run. It goes in the pipeline's `llm` slot with no separate STT or TTS, and the `Pipeline` auto-detects [Realtime mode](https://docs.zeroruntime.ai/runtime-sdk/build/configure-a-pipeline/modes.md) when you pass it.

## Setup

Set your Rime API key in the worker environment. Generate a key from the [Rime site](https://rime.ai/):

```bash theme={null}
export RIME_API_KEY=<key>
```

## Usage

Pass the realtime model to the pipeline's `llm` slot, no `stt` or `tts` needed.

```python Python theme={null}
from zeroruntime import Pipeline
from zeroruntime.plugins import RimeRealtimeConfig, RimeRealtime

llm = RimeRealtime(
    config=RimeRealtimeConfig(
        voice="astra",
        eagerness="low",
    ),
)

pipeline = Pipeline(llm=llm)
```

> [!NOTE]
>
> `RimeRealtime` ships in the Python SDK only. The Node JS SDK does not include this plugin yet.

> [!NOTE]
>
> `RimeRealtime` requires a `zeroruntime` release newer than 0.1.9.

> [!WARNING]
>
> Rime's TTS voices do not work with Prism. Use a Prism voice: `astra`, `aurora`, `brando`, or `wawona`. See [Rime TTS](https://docs.zeroruntime.ai/runtime-sdk/plugins/tts/rime.md) for the text-to-speech plugin.

## Parameters

*Constructor parameters for `RimeRealtime`.*

| Parameter | Type | Default | Description |
| - | - | - | - |
| `api_key` | `str` | `None` | Rime API key. Falls back to the `RIME_API_KEY` environment variable when unset. |
| `model` | `str` | `"prism"` | Reported in metrics only. Prism has a single model and this cannot select another. |
| `config` | `dict \| None` | `None` | Conversation settings: voice, interruption and how readily a turn ends. |
| `base_url` | `str \| None` | `None` | WebSocket URL of the Prism endpoint. |

### `config` keys

`config` takes a `RimeRealtimeConfig` or a plain dict with the same keys.

| Field | Type | Default | Description |
| - | - | - | - |
| `voice` | `str` | `"astra"` | Prism voice: 'astra', 'aurora', 'brando' or 'wawona'. Rime's TTS voices do not work with Prism. |
| `interrupt_response` | `bool` | `True` | Whether the caller's speech during a reply interrupts it. |
| `eagerness` | `Literal['auto', 'low', 'medium', 'high']` | `"auto"` | How readily Prism decides the caller has finished: 'auto', 'low', 'medium' or 'high'. Use 'low' when callers often pause mid-sentence. Fixed for the call. |
| `end_of_turn_timeout_ms` | `int` | `5000` | Silence that ends the caller's turn even when Prism is not sure they have finished, 1000 to 10000. Fixed for the call. |

To pair the realtime model with an external STT or TTS, see [Hybrid mode](https://docs.zeroruntime.ai/runtime-sdk/build/configure-a-pipeline/modes.md#hybrid). For general plugin concepts, see the [plugins overview](https://docs.zeroruntime.ai/runtime-sdk/plugins/overview.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.