You’ll build a real-time voice agent you can talk to in your browser, using Gemini Realtime on Stream’s edge network. About 18 lines of Python.
New to Vision Agents? Read the Overview first.
Copy this prompt into Claude Code, Cursor, Windsurf, or any coding agent to scaffold your project.
Build your agent
Install uv
first; it includes
uvx. The init command runs uv sync to provision your
virtual environment, so uv must be on your PATH. Python 3.10–3.13 is
supported.Scaffold your project
One command creates a ready-to-run agent project with dependencies installed:This generates
agent.py, pyproject.toml, .env.example, tests/, and a Dockerfile, then runs uv sync.Add your API keys
Get the keys you’ll need:
- Create a free Stream account for
STREAM_API_KEYandSTREAM_API_SECRET. See Why Stream Video RTC for what the edge transport provides. - Get an API key from Google AI Studio for
GOOGLE_API_KEY.
.env
Understand your agent
Open
agent.py. The init command already created this file. Walk through each section to see how the agent works, then customize as needed.agent.py
create_agent: builds the agent with Stream transport and Gemini Realtime.join_call: creates a call, joins it, and triggers the first response.runner: entry point for the CLI;pyproject.tomlreferences it asagent:runner.
Run it
Start the agent. The CLI prints a join link. Open it to talk to your agent in the browser.The agent greets you as soon as you join the call. The join link is a browser demo for testing. To embed the agent in your own app, use Stream’s Video SDKs on your target platform; your client and the agent join the same call.
Next steps
Voice Agents
Custom STT/LLM/TTS pipelines, function calling, provider options
Video Agents
VLMs, YOLO processors, real-time video analysis
Deploy to Production
Docker, Kubernetes, and monitoring
Browse Integrations
35+ AI providers to mix and match