Gemini Live API examples, four reference implementations for a realtime voice and video agent
Gemini Live provides multimodal realtime agent capabilities. Build voice agents that can process vision and text in realtime.
At a glance
- What is it?
- gemini-live-api-examples is Google's collection of working examples for the Gemini Live API, covering the Gen AI SDK, raw WebSockets with ephemeral tokens, and minimal command line apps in Python and Node.js. It suits developers building low latency voice or multimodal agents who want to see the protocol in a real program rather than read about it, and its example set deliberately spans three levels of abstraction.
- Who is it for?
- Adopt this repository as your starting point if you are building a realtime voice or multimodal agent on the Gemini Live API, since it offers a full application and two minimal command line programs in Python and Node.js, plus a raw WebSocket path if you want to control the protocol yourself.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A low latency streaming API, not a request and response one
The README describes the Live API as enabling low-latency, real-time voice and video interactions with Gemini. It processes continuous streams of audio, video or text to deliver immediate, human-like spoken responses, and the stated goal is a natural conversational experience for users.
The technical specifications table is short and precise, and it is the part to design against. Input modalities are audio as raw 16-bit PCM audio at 16kHz little-endian, images and video as JPEG at no more than 1 FPS, and text. Output modalities are audio as raw 16-bit PCM at 24kHz little-endian, and text. The protocol is a stateful WebSocket connection over WSS.
Two details in there shape any client you write. The audio formats are raw PCM rather than a compressed container, so the encoding and buffering are your problem, and the asymmetric sample rates mean a resampling step sits between your microphone and the model. The 1 FPS limit on images and video means the visual channel is a low rate slideshow, which is enough for a model to look at a document or a screen but not to track motion.
A stateful WebSocket is the other difference from a normal API call. The session persists, which is what makes barge-in and proactive audio possible, and it also means the client has to handle reconnection and session lifecycle rather than just making requests.
Four example directories, three levels of abstraction
The examples section lists four directories in the repository, and the progression between them is the interesting part.
The Gen AI SDK Python example is described as recommended for ease of use. It connects to the Gemini Live API using the Gen AI SDK to build a real-time multimodal application with a Python backend. The directory is gemini-live-genai-python-sdk/.
The ephemeral tokens and raw WebSocket example is labelled raw protocol control. It connects to the Live API using WebSockets to build a real-time multimodal application with a JavaScript frontend and a Python backend. The directory is gemini-live-ephemeral-tokens-websocket/, and the name says what it is: you are handling the token exchange and the WebSocket yourself.
The two command line examples are minimal programs that stream microphone audio to the Live API and play back the response in real time, one in Python and one in Node.js. There is also a command line translation example, a tool that streams a remote audio URL into the Gemini Live Translate model, plays back the translated audio, and prints transcripts with language codes in real time.
So there are three shapes of client: a wrapped SDK call, a hand-rolled WebSocket, and a few dozen lines of command line code. The command line apps are the ones to read first, because they show the smallest complete version of the flow.
The repository layout is just those directories, with command-line/, gemini-live-ephemeral-tokens-websocket/ and gemini-live-genai-python-sdk/ at the top level and nothing else of substance, which confirms these are demonstrations rather than a maintained library.
Barge-in, proactive audio and 70 languages
The key features section lists five capabilities, and the two most consequential for building a voice agent are barge-in and proactive audio.
Barge-in means users can interrupt the model at any time for responsive interactions. In practice that means the client must be able to interrupt an in-flight model response, which is a property of the session protocol rather than something you bolt on afterwards.
Proactive audio lets you control when the model responds and in what contexts. That is the opposite of the usual assumption about a chat API, where the model answers because you asked. Here the model can decide to speak, and your application decides the policy around it, which is the difference between a voice assistant that interrupts and one that waits.
The other three are multilingual support, conversing in 70 supported languages, tool use, which integrates tools like function calling and Google Search for dynamic interactions, and audio transcriptions, which provides text transcripts of both user input and model output. The transcriptions are worth calling out for a practical reason, because a voice agent that cannot write down what was said is hard to log, audit or debug.
The example use cases the README lists span e-commerce and retail with shopping assistants and support agents, gaming with interactive non-player characters and in-game help assistants, next-gen interfaces in robotics, smart glasses and vehicles, healthcare companions, financial services advisors, and education mentors. The breadth is there to show the pattern applies, and the one that has the most engineering content is probably the next-gen interfaces group, since that is where the input format constraints bite.
Third party integrations for WebRTC, and the broadcast app that left
The partner integrations section exists because the Live API is not the only way to reach it, and the README frames the point as streamlining the development of real-time audio and video apps.
LiveKit can be used with the Gemini Live API through LiveKit Agents, Pipecat by Daily creates a real-time AI chatbot using Gemini Live, Fishjam by Software Mansion is for live video and audio streaming applications, Vision Agents by Stream builds real-time voice and video AI applications, and Voximplant connects inbound and outbound calls to the Live API. The Agent Development Kit covers creating an agent and using ADK Streaming for voice and video communication, and the Firebase AI SDK gets you started using the Live API.
One of these entries has moved. The Broadcast Translation Web App, a production-ready multilingual broadcast app built with Next.js, LiveKit and the Gemini Live API that translates speaker audio to multiple target languages concurrently with low latency, is listed with a note that this project has moved to a standalone repository. The README links the separate repository, gemini-live-translate-livekit.
The moved project is the one worth looking at first if your use case is translation, because it is the only example here described as production-ready, and the fact that it was split out of this collection suggests it grew past what a set of API examples should contain.
There is also a tip about installing a Gemini Live API Dev skill for AI-assisted development with the Live API in coding agents, which is a pointer to a separate skills repository rather than a feature of this one.
What to read first, and what the examples will not tell you
The README is short, which is a sign it is a pointer rather than a manual, and the docs it points to are the actual documentation. Each example has its own README under its directory, and the online documentation lives at ai.google.dev/gemini-api/docs/live, with the Live API also available to try directly in Google AI Studio at aistudio.google.com/live.
The practical path for an evaluation is therefore clear. If you are a Python developer, start with the Gen AI SDK example, because the README calls it the recommended option for ease of use. If you need to control the session, the token exchange or the WebSocket yourself, read the ephemeral tokens and raw WebSocket example. If you want the smallest possible picture of the flow, run the command line app in your preferred language, since the Python and Node.js versions do the same thing.
What this repository will not give you is a production template. There is no error handling guide, no session lifecycle documentation, no authentication model beyond the ephemeral token example, and no deployment guidance. The scope of the repository is demonstrating that a realtime multimodal agent is achievable and showing the shape of the client, and the examples are deliberately minimal.
The licensing position is also something to check yourself, since the licence field GitHub shows for the repository is one it cannot classify and the README does not carry a licence section.
Editorial conclusion
Adopt this repository as your starting point if you are building a realtime voice or multimodal agent on the Gemini Live API, since it offers a full application and two minimal command line programs in Python and Node.js, plus a raw WebSocket path if you want to control the protocol yourself. Do not adopt it as a framework or a service, because every directory is a self-contained example with its own README rather than a reusable library, and check the licence position yourself, since the repository shows a licence field GitHub cannot classify. Before you build on it, read the example README that matches your stack, note the input format constraints, raw 16-bit PCM at 16kHz little-endian for audio and JPEG at no more than 1 FPS for images and video, and note the maintenance picture, with the last push on 2026-10-20 and no GitHub releases published.
Frequently asked questions
What is the Gemini Live API and what does this repository contain?
The Live API enables low-latency, real-time voice and video interactions with Gemini by processing continuous streams of audio, video or text. This repository collects working examples of it, including the Gen AI SDK Python example, a raw WebSocket and ephemeral token example, and minimal command line apps in Python and Node.js.
What audio and video formats does the Gemini Live API accept?
Input is audio as raw 16-bit PCM at 16kHz little-endian, images and video as JPEG at no more than 1 FPS, and text. Output is audio as raw 16-bit PCM at 24kHz little-endian, and text. The protocol is a stateful WebSocket connection over WSS.
What is barge-in and proactive audio in the Gemini Live API?
Barge-in lets users interrupt the model at any time for responsive interactions. Proactive audio lets you control when the model responds and in what contexts, so the application decides the policy around the model speaking rather than the model always answering on request.
Which example should I start from in gemini-live-api-examples?
The README marks the Gen AI SDK Python example as recommended for ease of use. For raw protocol control use the ephemeral tokens and WebSocket example, and for the smallest complete picture of the flow use the command line app in Python or Node.js, which streams microphone audio and plays the response back in real time.
Which third party tools can talk to the Gemini Live API?
The README lists LiveKit through LiveKit Agents, Pipecat by Daily, Fishjam by Software Mansion, Vision Agents by Stream, Voximplant for inbound and outbound calls, the Agent Development Kit Streaming, and the Firebase AI SDK. A broadcast translation app built with Next.js and LiveKit has also moved to its own repository.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/google-gemini-gemini-live-api-examples)Was this useful?