Files
vocero-client/s2s-client
..

title, emoji, colorFrom, colorTo, sdk, app_port, pinned, short_description
title emoji colorFrom colorTo sdk app_port pinned short_description
HF Realtime Voice 🎙️ indigo purple docker 7860 false Voice chat over WebSocket against a HF speech-to-speech

Realtime voice backend

FastAPI APIs and WebSocket relay for the React voice frontend. This service handles configuration, caller context, upstream authentication, search, reasoning, ApiPilot tools, and optional load-balancer allocation.

The root start_ui.sh now serves the React frontend with Vite on public port 8420, proxying backend requests here on loopback port 8421. The browser UI lives entirely in s2s-frontend; running FastAPI directly or through Docker exposes only backend routes and shared documentation.

The complete usage guide covers local startup, connection modes, Docker, settings, and queue behavior. See the documentation index, architecture, and change history for implementation details and history.

Build from the repository root so the container includes the documentation:

docker build -f s2s-client/Dockerfile -t s2s-client .

The Python project is contained in this directory: pyproject.toml, uv.lock, .python-version, .venv, quality tools, and tests. Use uv 0.12.5 and Python 3.12 (uv can provision Python). From the repository root:

make -C s2s-client install
make -C s2s-client check

Tests isolate environment configuration, use HTTP fixtures for allocation and caller authentication, and start a loopback WebSocket service to verify audio frames, keepalive, and teardown. No deployed services or database are needed.

See backend development and compatibility for formatting, typing, schema policy, optional Git hooks, and deployment checks. uvicorn server:app --app-dir s2s-client remains a supported entry point; the implementation now lives in s2s_client/.

FastAPI's API explorer remains at /docs. Project documents are served as files below /docs/client/, /docs/speech/, /docs/adr/, /docs/examples/, and /docs/proposals/. The historical /project/ and /public/docs.html URLs redirect to the retained architecture proposal. Markdown remains source text; documentation directories are not browsable rendered pages. Start from the repository documentation index or request /docs/README.md explicitly.