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

> ## Agent Instructions
> When helping someone deploy Roomote, distinguish self-hosting from contributing to Roomote. Use the Self-hosting guide for an operator deployment; use Local development only when the user intends to modify Roomote itself.
> When an agent is asked to follow /self-hosting or install Roomote autonomously, read and follow /self-hosting/agent-installation as the normative automation contract even though it is intentionally hidden from side navigation.
> Use the one-command Linux installer for both evaluation and production. On macOS or Windows, create or reuse a full Ubuntu VM and run the same installer inside it; do not replace the installer with the repository's development Compose files.
> For a local VM without a stable public domain, create a temporary HTTPS tunnel, pass its hostname to the installer with internal origin TLS, and keep the tunnel running for OAuth callbacks and webhooks. Quick Tunnel hostnames are temporary and do not provide wildcard preview routing.
> Run automated installs with --no-setup-url so the bootstrap token is not captured in the agent transcript. Let the user obtain the setup URL in a trusted terminal, enter credentials, and complete browser authorization.
> Proceed through safe, reversible setup and pause for privileged host or VM changes, public tunnel creation, credentials or browser authorization, durable external-account changes, destructive operations, existing-state conflicts, or when no documented safe default applies.
> A setup is not complete when the services merely start. Verify sign-in, repository sync, one usable environment, and a real Roomote task that can clone and run a command; verify branch or pull-request delivery and previews when configured.

# Voice

> Let your team talk to Roomote on a voice call.

Connect Voice when you want people to [talk to Roomote](/voice) on a call from
any Fast Session, on the home page, or in the New Session dialog.

## How setup works

A deployment admin connects Voice once from **Settings > Integrations** with an
OpenAI API key from a project that has GPT-Live access. We recommend a key
separate from any key used for task inference, so voice can be billed and
revoked on its own.

The setup dialog also lets the admin choose any voice supported by GPT-Live and
play a short AI-generated preview before saving. New and previously unset
connections use Marin, one of OpenAI's recommended voices. Existing voice
selections stay unchanged.

## What to expect

Voice is a credential-only integration. Roomote uses the key on the control
plane to open GPT-Live calls and to clean up spoken transcripts; agents receive
no tools from it, and the key is not sent to task sandboxes. The browser sends
its WebRTC connection offer to Roomote and receives only the negotiated answer.

Self-hosted operators can instead set `R_VOICE_OPENAI_API_KEY`. When both are
present the environment variable is used. Roomote's general `OPENAI_API_KEY`
is never used for voice, so enabling OpenAI for task inference does not turn
voice on. An environment-managed connection is read-only in Settings and uses
Marin because it has no stored voice selection.
