livekit/agentsPublic

A framework for building realtime voice AI agents 🤖🎙️📹

AI summary: A comprehensive framework for building real-time, programmable, multi-modal voice agents that run on servers.

Stars
12.7K
+34 today
Forks
3.5K
Watchers
104
Open issues
216
Open PRs
515
Contributors
~445
Commits
3.8K
Branches
334

PythonApache-2.0Created Oct 19, 2023Last push todayLatest release livekit-agents@1.6.8+346 stars this week+346 this month

Star history

since Jan 14, 2024
05K10KJan 2024Nov 2024Sep 2025Aug 2026
12.7K stars as of Aug 7, 2026, tracked back to Jan 14, 2024. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-10: 2 commits2025-08-11: 4 commits2025-08-12: 7 commits2025-08-13: 2 commits2025-08-14: 2 commits2025-08-15: 7 commits2025-08-16: 0 commits2025-08-17: 7 commits2025-08-18: 3 commits2025-08-19: 2 commits2025-08-20: 3 commits2025-08-21: 9 commits2025-08-22: 2 commits2025-08-23: 3 commits2025-08-24: 1 commit2025-08-25: 2 commits2025-08-26: 3 commits2025-08-27: 7 commits2025-08-28: 3 commits2025-08-29: 6 commits2025-08-30: 4 commits2025-08-31: 3 commits2025-09-01: 1 commit2025-09-02: 0 commits2025-09-03: 1 commit2025-09-04: 6 commits2025-09-05: 1 commit2025-09-06: 0 commits2025-09-07: 4 commits2025-09-08: 2 commits2025-09-09: 3 commits2025-09-10: 2 commits2025-09-11: 4 commits2025-09-12: 5 commits2025-09-13: 2 commits2025-09-14: 4 commits2025-09-15: 2 commits2025-09-16: 1 commit2025-09-17: 2 commits2025-09-18: 8 commits2025-09-19: 8 commits2025-09-20: 0 commits2025-09-21: 1 commit2025-09-22: 3 commits2025-09-23: 5 commits2025-09-24: 7 commits2025-09-25: 4 commits2025-09-26: 4 commits2025-09-27: 2 commits2025-09-28: 2 commits2025-09-29: 1 commit2025-09-30: 8 commits2025-10-01: 6 commits2025-10-02: 0 commits2025-10-03: 4 commits2025-10-04: 1 commit2025-10-05: 5 commits2025-10-06: 2 commits2025-10-07: 4 commits2025-10-08: 3 commits2025-10-09: 5 commits2025-10-10: 3 commits2025-10-11: 0 commits2025-10-12: 6 commits2025-10-13: 1 commit2025-10-14: 5 commits2025-10-15: 5 commits2025-10-16: 3 commits2025-10-17: 3 commits2025-10-18: 2 commits2025-10-19: 2 commits2025-10-20: 7 commits2025-10-21: 5 commits2025-10-22: 2 commits2025-10-23: 4 commits2025-10-24: 2 commits2025-10-25: 2 commits2025-10-26: 1 commit2025-10-27: 16 commits2025-10-28: 2 commits2025-10-29: 10 commits2025-10-30: 7 commits2025-10-31: 2 commits2025-11-01: 0 commits2025-11-02: 1 commit2025-11-03: 2 commits2025-11-04: 10 commits2025-11-05: 6 commits2025-11-06: 6 commits2025-11-07: 3 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 1 commit2025-11-11: 5 commits2025-11-12: 6 commits2025-11-13: 7 commits2025-11-14: 14 commits2025-11-15: 0 commits2025-11-16: 7 commits2025-11-17: 6 commits2025-11-18: 2 commits2025-11-19: 3 commits2025-11-20: 11 commits2025-11-21: 3 commits2025-11-22: 1 commit2025-11-23: 0 commits2025-11-24: 10 commits2025-11-25: 9 commits2025-11-26: 4 commits2025-11-27: 2 commits2025-11-28: 2 commits2025-11-29: 1 commit2025-11-30: 1 commit2025-12-01: 5 commits2025-12-02: 9 commits2025-12-03: 10 commits2025-12-04: 2 commits2025-12-05: 7 commits2025-12-06: 0 commits2025-12-07: 1 commit2025-12-08: 2 commits2025-12-09: 5 commits2025-12-10: 4 commits2025-12-11: 2 commits2025-12-12: 6 commits2025-12-13: 0 commits2025-12-14: 2 commits2025-12-15: 17 commits2025-12-16: 16 commits2025-12-17: 11 commits2025-12-18: 13 commits2025-12-19: 4 commits2025-12-20: 1 commit2025-12-21: 2 commits2025-12-22: 2 commits2025-12-23: 7 commits2025-12-24: 3 commits2025-12-25: 2 commits2025-12-26: 0 commits2025-12-27: 4 commits2025-12-28: 1 commit2025-12-29: 0 commits2025-12-30: 2 commits2025-12-31: 1 commit2026-01-01: 1 commit2026-01-02: 4 commits2026-01-03: 5 commits2026-01-04: 0 commits2026-01-05: 3 commits2026-01-06: 2 commits2026-01-07: 4 commits2026-01-08: 5 commits2026-01-09: 1 commit2026-01-10: 1 commit2026-01-11: 1 commit2026-01-12: 4 commits2026-01-13: 3 commits2026-01-14: 4 commits2026-01-15: 3 commits2026-01-16: 6 commits2026-01-17: 2 commits2026-01-18: 0 commits2026-01-19: 1 commit2026-01-20: 4 commits2026-01-21: 12 commits2026-01-22: 6 commits2026-01-23: 4 commits2026-01-24: 0 commits2026-01-25: 2 commits2026-01-26: 5 commits2026-01-27: 3 commits2026-01-28: 5 commits2026-01-29: 4 commits2026-01-30: 8 commits2026-01-31: 6 commits2026-02-01: 5 commits2026-02-02: 6 commits2026-02-03: 8 commits2026-02-04: 3 commits2026-02-05: 6 commits2026-02-06: 15 commits2026-02-07: 4 commits2026-02-08: 2 commits2026-02-09: 6 commits2026-02-10: 1 commit2026-02-11: 5 commits2026-02-12: 3 commits2026-02-13: 7 commits2026-02-14: 1 commit2026-02-15: 15 commits2026-02-16: 16 commits2026-02-17: 2 commits2026-02-18: 2 commits2026-02-19: 2 commits2026-02-20: 5 commits2026-02-21: 3 commits2026-02-22: 3 commits2026-02-23: 2 commits2026-02-24: 6 commits2026-02-25: 4 commits2026-02-26: 8 commits2026-02-27: 5 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 10 commits2026-03-03: 3 commits2026-03-04: 8 commits2026-03-05: 6 commits2026-03-06: 3 commits2026-03-07: 2 commits2026-03-08: 2 commits2026-03-09: 9 commits2026-03-10: 12 commits2026-03-11: 4 commits2026-03-12: 6 commits2026-03-13: 3 commits2026-03-14: 1 commit2026-03-15: 0 commits2026-03-16: 5 commits2026-03-17: 4 commits2026-03-18: 10 commits2026-03-19: 7 commits2026-03-20: 7 commits2026-03-21: 1 commit2026-03-22: 0 commits2026-03-23: 10 commits2026-03-24: 5 commits2026-03-25: 5 commits2026-03-26: 3 commits2026-03-27: 6 commits2026-03-28: 2 commits2026-03-29: 4 commits2026-03-30: 7 commits2026-03-31: 4 commits2026-04-01: 10 commits2026-04-02: 5 commits2026-04-03: 7 commits2026-04-04: 0 commits2026-04-05: 3 commits2026-04-06: 6 commits2026-04-07: 8 commits2026-04-08: 12 commits2026-04-09: 2 commits2026-04-10: 4 commits2026-04-11: 12 commits2026-04-12: 2 commits2026-04-13: 4 commits2026-04-14: 7 commits2026-04-15: 12 commits2026-04-16: 7 commits2026-04-17: 2 commits2026-04-18: 2 commits2026-04-19: 3 commits2026-04-20: 4 commits2026-04-21: 3 commits2026-04-22: 7 commits2026-04-23: 9 commits2026-04-24: 8 commits2026-04-25: 3 commits2026-04-26: 3 commits2026-04-27: 4 commits2026-04-28: 10 commits2026-04-29: 2 commits2026-04-30: 6 commits2026-05-01: 3 commits2026-05-02: 1 commit2026-05-03: 5 commits2026-05-04: 6 commits2026-05-05: 6 commits2026-05-06: 5 commits2026-05-07: 5 commits2026-05-08: 6 commits2026-05-09: 1 commit2026-05-10: 1 commit2026-05-11: 3 commits2026-05-12: 6 commits2026-05-13: 14 commits2026-05-14: 7 commits2026-05-15: 3 commits2026-05-16: 2 commits2026-05-17: 8 commits2026-05-18: 7 commits2026-05-19: 8 commits2026-05-20: 5 commits2026-05-21: 7 commits2026-05-22: 2 commits2026-05-23: 1 commit2026-05-24: 10 commits2026-05-25: 11 commits2026-05-26: 2 commits2026-05-27: 9 commits2026-05-28: 2 commits2026-05-29: 11 commits2026-05-30: 10 commits2026-05-31: 0 commits2026-06-01: 7 commits2026-06-02: 13 commits2026-06-03: 5 commits2026-06-04: 10 commits2026-06-05: 4 commits2026-06-06: 1 commit2026-06-07: 1 commit2026-06-08: 6 commits2026-06-09: 4 commits2026-06-10: 7 commits2026-06-11: 17 commits2026-06-12: 5 commits2026-06-13: 0 commits2026-06-14: 1 commit2026-06-15: 6 commits2026-06-16: 8 commits2026-06-17: 6 commits2026-06-18: 6 commits2026-06-19: 10 commits2026-06-20: 0 commits2026-06-21: 1 commit2026-06-22: 4 commits2026-06-23: 5 commits2026-06-24: 8 commits2026-06-25: 3 commits2026-06-26: 8 commits2026-06-27: 3 commits2026-06-28: 0 commits2026-06-29: 4 commits2026-06-30: 5 commits2026-07-01: 4 commits2026-07-02: 7 commits2026-07-03: 8 commits2026-07-04: 0 commits2026-07-05: 1 commit2026-07-06: 9 commits2026-07-07: 9 commits2026-07-08: 3 commits2026-07-09: 11 commits2026-07-10: 4 commits2026-07-11: 1 commit2026-07-12: 4 commits2026-07-13: 4 commits2026-07-14: 6 commits2026-07-15: 2 commits2026-07-16: 5 commits2026-07-17: 16 commits2026-07-18: 4 commits2026-07-19: 0 commits2026-07-20: 6 commits2026-07-21: 4 commits2026-07-22: 6 commits2026-07-23: 5 commits2026-07-24: 12 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 3 commits2026-07-28: 7 commits2026-07-29: 7 commits2026-07-30: 11 commits2026-07-31: 12 commits2026-08-01: 3 commits2026-08-02: 7 commits2026-08-03: 10 commits2026-08-04: 3 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits
1,648 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    12,719 stars

  • Very active

    1,648 commits in 52 weeks

  • Community-driven

    ~445 contributors

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

  • Repeat trending

    3 trending appearances

What agents does

The Agent Framework allows developers to create conversational, multi-modal voice agents that can see, hear, and understand end users in real-time. It provides a flexible ecosystem where you can mix and match different Speech-to-Text (STT), Large Language Models (LLM), Text-to-Speech (TTS), and Realtime APIs. The framework handles the underlying complexity of job scheduling, task distribution, and connecting end users to agents via dispatch APIs. Additionally, it integrates smoothly with LiveKit's telephony stack for SIP integrations and supports native MCP for tool integration with one line of code.

Software developers and AI engineers building real-time voice, video, or multi-modal applications who need a reliable, scalable backend framework. It assumes familiarity with Python, modern LLM APIs, and basic concepts of WebRTC or telephony.

  • Flexible integrations: Mix and match STT, LLM, TTS, and Realtime API providers to suit your specific use case without locking into a single ecosystem.
  • Integrated job scheduling: Built-in task scheduling and distribution utilizing dispatch APIs to effectively connect end users to running agents.
  • Extensive WebRTC clients: Client application building is supported through LiveKit's open-source SDK ecosystem across all major platforms.
  • Telephony integration: Works seamlessly with LiveKit's telephony stack, enabling your agent to make or receive standard phone calls.
  • Semantic turn detection: Employs a transformer model to accurately detect when a user finishes their turn, helping to significantly reduce awkward interruptions.
  • MCP support: Native support for MCP servers allows developers to easily integrate externally provided tools with just one line of code.
  • Builtin test framework: Offers a dedicated test framework with judges to reliably ensure your agent performs as expected in production scenarios.

Where teams use it

Customer Support Automation

Deploy real-time voice agents that can handle incoming customer service calls over SIP telephony, providing immediate assistance and resolving common queries using advanced LLMs.

Interactive Language Tutors

Build low-latency conversational AI tutors that leverage semantic turn detection and specialized speech models to help users practice language skills without unnatural interruptions.

In-Game NPC Interactions

Integrate programmable voice participants into multiplayer games via LiveKit WebRTC SDKs, allowing players to converse naturally with AI-driven non-player characters.

Smart Home Assistants

Develop robust home automation interfaces utilizing custom tools via MCP integrations, enabling users to orchestrate IoT devices through highly responsive voice commands.

Getting started: pip install "livekit-agents[openai,deepgram,cartesia]"

README

main branch
The LiveKit icon, the name of the repository and some sample code in the background.

PyPI - Version PyPI Downloads Slack community Twitter Follow Ask DeepWiki for understanding the codebase License


Looking for the JS/TS library? Check out AgentsJS

What is Agents?

The Agent Framework is designed for building realtime, programmable participants that run on servers. Use it to create conversational, multi-modal voice agents that can see, hear, and understand.

Features

  • Flexible integrations: A comprehensive ecosystem to mix and match the right STT, LLM, TTS, and Realtime API to suit your use case.
  • Integrated job scheduling: Built-in task scheduling and distribution with dispatch APIs to connect end users to agents.
  • Extensive WebRTC clients: Build client applications using LiveKit's open-source SDK ecosystem, supporting all major platforms.
  • Telephony integration: Works seamlessly with LiveKit's telephony stack, allowing your agent to make calls to or receive calls from phones.
  • Exchange data with clients: Use RPCs and other Data APIs to seamlessly exchange data with clients.
  • Semantic turn detection: Uses a transformer model to detect when a user is done with their turn, helps to reduce interruptions.
  • MCP support: Native support for MCP. Integrate tools provided by MCP servers with one line of code.
  • Builtin test framework: Write tests and use judges to ensure your agent is performing as expected.
  • Open-source: Fully open-source, allowing you to run the entire stack on your own servers, including LiveKit server, one of the most widely used WebRTC media servers.

Installation

To install the core Agents library, along with plugins for popular model providers:

pip install "livekit-agents[openai,deepgram,cartesia]"

Docs and guides

Documentation on the framework and how to use it can be found here

Building with AI coding agents

If you're using an AI coding assistant to build with LiveKit Agents, we recommend the following setup for the best results:

  1. Install the LiveKit Docs MCP server — Gives your coding agent access to up-to-date LiveKit documentation, code search across LiveKit repositories, and working examples.

  2. Install the LiveKit Agent Skill — Provides your coding agent with architectural guidance and best practices for building voice AI applications, including workflow design, handoffs, tasks, and testing patterns.

    npx skills add livekit/agent-skills --skill livekit-agents

The Agent Skill works best alongside the MCP server: the skill teaches your agent how to approach building with LiveKit, while the MCP server provides the current API details to implement it correctly.

Core concepts

  • Agent: An LLM-based application with defined instructions.
  • AgentSession: A container for agents that manages interactions with end users.
  • entrypoint: The starting point for an interactive session, similar to a request handler in a web server.
  • AgentServer: The main process that coordinates job scheduling and launches agents for user sessions.

Usage

Simple voice agent


from livekit.agents import (
    Agent,
    AgentServer,
    AgentSession,
    JobContext,
    RunContext,
    cli,
    function_tool,
    inference,
)


@function_tool
async def lookup_weather(
    context: RunContext,
    location: str,
):
    """Used to look up weather information."""

    return {"weather": "sunny", "temperature": 70}


server = AgentServer()


@server.rtc_session()
async def entrypoint(ctx: JobContext):
    session = AgentSession(
        vad=inference.VAD(),
        # any combination of STT, LLM, TTS, or realtime API can be used
        # this example shows LiveKit Inference, a unified API to access different models via LiveKit Cloud
        # to use model provider keys directly, replace with the following:
        # from livekit.plugins import deepgram, openai, cartesia
        # stt=deepgram.STT(model="nova-3"),
        # llm=openai.LLM(model="gpt-4.1-mini"),
        # tts=cartesia.TTS(model="sonic-3", voice="9626c31c-bec5-4cca-baa8-f8ba9e84c8bc"),
        stt=inference.STT("deepgram/nova-3", language="multi"),
        llm=inference.LLM("google/gemma-4-31b-it"),  # low-latency gemma, hosted on LiveKit
        tts=inference.TTS("cartesia/sonic-3", voice="9626c31c-bec5-4cca-baa8-f8ba9e84c8bc"),
    )

    agent = Agent(
        instructions="You are a friendly voice assistant built by LiveKit.",
        tools=[lookup_weather],
    )

    await session.start(agent=agent, room=ctx.room)
    await session.generate_reply(instructions="greet the user and ask about their day")


if __name__ == "__main__":
    cli.run_app(server)

You'll need the following environment variables for this example:

  • LIVEKIT_URL
  • LIVEKIT_API_KEY
  • LIVEKIT_API_SECRET

Multi-agent handoff


This code snippet is abbreviated. For the full example, see multi_agent.py

...
class IntroAgent(Agent):
    def __init__(self) -> None:
        super().__init__(
            instructions=f"You are a story teller. Your goal is to gather a few pieces of information from the user to make the story personalized and engaging."
            "Ask the user for their name and where they are from"
        )

    async def on_enter(self):
        self.session.generate_reply(instructions="greet the user and gather information")

    @function_tool
    async def information_gathered(
        self,
        context: RunContext,
        name: str,
        location: str,
    ):
        """Called when the user has provided the information needed to make the story personalized and engaging.

        Args:
            name: The name of the user
            location: The location of the user
        """

        context.userdata.name = name
        context.userdata.location = location

        story_agent = StoryAgent(name, location)
        return story_agent, "Let's start the story!"


class StoryAgent(Agent):
    def __init__(self, name: str, location: str) -> None:
        super().__init__(
            instructions=f"You are a storyteller. Use the user's information in order to make the story personalized."
            f"The user's name is {name}, from {location}",
            # override the default model, switching to Realtime API from standard LLMs
            llm=openai.realtime.RealtimeModel(voice="echo"),
            chat_ctx=chat_ctx,
        )

    async def on_enter(self):
        self.session.generate_reply()


@server.rtc_session()
async def entrypoint(ctx: JobContext):
    userdata = StoryData()
    session = AgentSession[StoryData](
        vad=inference.VAD(),
        stt="deepgram/nova-3",
        llm="google/gemma-4-31b-it",  # low-latency gemma, hosted on LiveKit
        tts="cartesia/sonic-3:9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
        userdata=userdata,
    )

    await session.start(
        agent=IntroAgent(),
        room=ctx.room,
    )
...

Testing

Automated tests are essential for building reliable agents, especially with the non-deterministic behavior of LLMs. LiveKit Agents include native test integration to help you create dependable agents.

@pytest.mark.asyncio
async def test_no_availability() -> None:
    llm = google.LLM()
    async with AgentSession(llm=llm) as sess:
        await sess.start(MyAgent())
        result = await sess.run(
            user_input="Hello, I need to place an order."
        )
        result.expect.skip_next_event_if(type="message", role="assistant")
        result.expect.next_event().is_function_call(name="start_order")
        result.expect.next_event().is_function_call_output()
        await (
            result.expect.next_event()
            .is_message(role="assistant")
            .judge(llm, intent="assistant should be asking the user what they would like")
        )

Examples

For more examples and detailed setup instructions, see the examples directory. For even more examples, see the python-agents-examples repository.

🎙️ Starter Agent

A starter agent optimized for voice conversations.

Code

🔄 Multi-user push to talk

Responds to multiple users in the room via push-to-talk.

Code

🎵 Background audio

Background ambient and thinking audio to improve realism.

Code

🛠️ Dynamic tool creation

Creating function tools dynamically.

Code

☎️ Outbound caller

Agent that makes outbound phone calls

Code

📋 Structured output

Using structured output from LLM to guide TTS tone.

Code

🔌 MCP support

Use tools from MCP servers

Code

💬 Text-only agent

Skip voice altogether and use the same code for text-only integrations

Code

📝 Multi-user transcriber

Produce transcriptions from all users in the room

Code

🎥 Video avatars

Add an AI avatar with Tavus, Bithuman, LemonSlice, and more

Code

🍽️ Restaurant ordering and reservations

Full example of an agent that handles calls for a restaurant.

Code

👁️ Gemini Live vision

Full example (including iOS app) of Gemini Live agent that can see.

Code

Running your agent

Testing in terminal

python myagent.py console

Runs your agent in terminal mode, enabling local audio input and output for testing. This mode doesn't require external servers or dependencies and is useful for quickly validating behavior.

Developing with LiveKit clients

python myagent.py dev

Starts the agent server and enables hot reloading when files change. This mode allows each process to host multiple concurrent agents efficiently.

The agent connects to LiveKit Cloud or your self-hosted server. Set the following environment variables:

  • LIVEKIT_URL
  • LIVEKIT_API_KEY
  • LIVEKIT_API_SECRET

You can connect using any LiveKit client SDK or telephony integration. To get started quickly, try the Agents Playground.

Running for production

python myagent.py start

Runs the agent with production-ready optimizations.

License

The Agents framework is licensed under Apache-2.0. The LiveKit turn detection models are licensed under the LiveKit Model License.

Contributing

The Agents framework is under active development in a rapidly evolving field. We welcome and appreciate contributions of any kind, be it feedback, bugfixes, features, new plugins and tools, or better documentation. You can file issues under this repo, open a PR, or chat with us in the LiveKit community.

Development setup

This project uses uv for package management. To install dependencies for development:

uv sync --all-extras --dev

Examples

This project includes many examples in the examples directory. To run them, create the file examples/.env with credentials for LiveKit Server and any necessary model providers (see examples/.env.example), then run:

uv run examples/voice_agents/basic_agent.py dev

For more information, see the examples README.

Tests

Unit tests are in the tests directory and can be run with:

uv run pytest --unit

Integration tests for each plugin require various API credentials and run automatically in GitHub CI for PRs submitted by project maintainers. See the tests workflow for details.

Formatting

This project uses ruff for formatting and linting:

uv run ruff format
uv run ruff check --fix

Documentation

To generate docs locally with pdoc:

uv sync --all-extras --group docs
uv run --active pdoc --skip-errors --html --output-dir=docs livekit


LiveKit Ecosystem
Agents SDKsPython · Node.js
LiveKit SDKsBrowser · Swift · Android · Flutter · React Native · Rust · Node.js · Python · Unity · Unity (WebGL) · ESP32 · C++
Starter AppsPython Agent · TypeScript Agent · React App · SwiftUI App · Android App · Flutter App · React Native App · Web Embed
UI ComponentsReact · Android Compose · SwiftUI · Flutter
Server APIsNode.js · Golang · Ruby · Java/Kotlin · Python · Rust · PHP (community) · .NET (community)
ResourcesDocs · Docs MCP Server · CLI · LiveKit Cloud
LiveKit Server OSSLiveKit server · Egress · Ingress · SIP
CommunityDeveloper Community · Slack · X · YouTube
View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

366 total
  1. @livekit/agents@1.6.8livekit-agents@1.6.8Aug 3, 2026

    ## What's Changed > [!WARNING] > **`console` and `dev` modes are deprecated** in favor of `lk agent` (#6656). Existing workflows that shell out to `python agent.py console` or `python agent.py dev` should migrate to the `lk agent` CLI. > [!IMPORTANT] > Inference **Ink-2 speech onset fix (#6630)** — if you rely on the STT model for interruption detection without a local VAD, upgrade for this fix. Previously the provider's speech-onset signal was delayed until first non-empty interim transcript, so STT interruptions could be delayed on Ink-2 via Inference. Setups with a local VAD in the pipeline are unaffected. ### Features * feat(core): add user transcription timeout by @chenghao-mou in https://github.com/livekit/agents/pull/6182 * feat(voice): auto-disable realtime server-side turn detection by @longcw in https://github.com/livekit/agents/pull/6495 * feat(cli): deprecate console and dev modes in favor of `lk agent` by @u9g in https://github.com/livekit/agents/pull/6656 * feat(elevenlabs): support previous_text on realtime STT by @tulanisahil1-beep in https://github.com/livekit/agents/pull/6534 * feat(smallestai): add endpointing, keyword boosting, format, and sent

  2. @livekit/agents@1.6.7livekit-agents@1.6.7Jul 25, 2026

    ## What's Changed * fix(core): reset user away timer on final STT transcript AGT-3149 by @chenghao-mou in https://github.com/livekit/agents/pull/6478 * Fix stripping of Gemma reasoning markers in streamed output by @C0deRatoR in https://github.com/livekit/agents/pull/6398 * feat: Spatius avatar plugin by @3DRX in https://github.com/livekit/agents/pull/5821 * fix(avatar): skip removal if avatar not found in the room by @longcw in https://github.com/livekit/agents/pull/6486 * fix(endpointing): keep max_delay constant in dynamic endpointing by @chenghao-mou in https://github.com/livekit/agents/pull/6265 * fix(stt): don't clear the primary speaker on an unattributed segment by @chuenchen309 in https://github.com/livekit/agents/pull/6460 * fix(drive-thru): assume quantity of one when unstated to avoid count confirmation by @u9g in https://github.com/livekit/agents/pull/6463 * fix: make AMD settle on endpointing backstop by default by @chenghao-mou in https://github.com/livekit/agents/pull/6496 * fix(voice): include function name in FunctionCallOutput protos by @u9g in https://github.com/livekit/agents/pull/6491 * feat: tag simulation and redaction telemetry by @chenghao-mou in

  3. livekit-agents@1.6.6livekit-agents@1.6.6Jul 18, 2026

    ## What's Changed * livekit-plugins-fishaudio: pooled websocket reuse + prebuffer to fix cold-start crackle by @cshape in https://github.com/livekit/agents/pull/6368 * rename reload-addr flag to cli-addr by @davidzhao in https://github.com/livekit/agents/pull/6376 * fix(drive-thru): instruct agent to add stated quantities without confirming by @u9g in https://github.com/livekit/agents/pull/6383 * elevenlabs: deprecate STT model_id in favor of model by @u9g in https://github.com/livekit/agents/pull/6378 * feat(phonic): add additional params support by @qionghuang6 in https://github.com/livekit/agents/pull/6384 * fix(openai): omit unset fields when serializing Responses WS requests by @markine in https://github.com/livekit/agents/pull/6385 * fix(voice): preserve completed tool results in chat context on interruption by @hello-rory in https://github.com/livekit/agents/pull/6349 * elevenlabs: log trace id for failed requests by @longcw in https://github.com/livekit/agents/pull/6396 * frontdesk: end-to-end simulation example with dynamic tool mocking by @theomonnom in https://github.com/livekit/agents/pull/6089 * (xai tts): adjust websocket deadline by @tinalenguyen in https:/

  4. @livekit/agents@1.6.5livekit-agents@1.6.5Jul 9, 2026

    ## What's Changed * fix(google): broaden _is_gemini_3_flash_model to cover all Gemini 3 Flash variants by @balazssandor in https://github.com/livekit/agents/pull/6210 * fix(assemblyai): respect `mode` preset for turn-silence; remap deprecated `u3-pro` by @dlange-aai in https://github.com/livekit/agents/pull/6220 * Move frame processor url/token/stream info to client sdk by @1egoman in https://github.com/livekit/agents/pull/5867 * fix(worker): exit when connection fails after max retries by @longcw in https://github.com/livekit/agents/pull/6103 * fix(voice): don't re-issue in-flight tool calls on a new turn by @longcw in https://github.com/livekit/agents/pull/6227 * (phonic): Use stream_ahead_of_real_time mode for Phonic WebSocket and sample rate 24000 by @qionghuang6 in https://github.com/livekit/agents/pull/6236 * fix(anthropic): use non-whitespace trailing dummy to satisfy provider validation by @JasonGordonD in https://github.com/livekit/agents/pull/6216 * fix(deepgram): sync missing STT/TTS API params, fix duplicate languages, add TTS model list by @Namit1867 in https://github.com/livekit/agents/pull/5362 * chore(deps): update dependency msgpack to v1.2.1 [security] by

  5. livekit-agents@1.6.4livekit-agents@1.6.4Jun 24, 2026

    ## What's Changed ### Bug fixes **Turn Detector** * disable retry for eot errors by @chenghao-mou in https://github.com/livekit/agents/pull/6195 * disable eot connection error retry too by @chenghao-mou in https://github.com/livekit/agents/pull/6196 **Turn handling/committing** * fix(agents): keep STT input anchor on the pipeline across handoff by @chenghao-mou in https://github.com/livekit/agents/pull/6207 >[!WARNING] > users are advised to upgrade if you use agent handoff with STT and are on 1.5.14 ~ 1.6.3 ### Other updates **Core** * chore(deps): update livekit dependency by @chenghao-mou in https://github.com/livekit/agents/pull/6194 * chore(example): update otel trace example by @chenghao-mou in https://github.com/livekit/agents/pull/6178 * chore(dep): update local-inference dep by @chenghao-mou in https://github.com/livekit/agents/pull/6214 * update livekit version by @chenghao-mou in https://github.com/livekit/agents/pull/6217 * Hotel Receptionist Scenario Expansion by @ShayneP in https://github.com/livekit/agents/pull/6186 **Plugins** * chore(elevenlabs): update `language_code` doc to remove error case by @inickt in https://github.com/livekit

Commits per week

last 52 weeks
640Week of 2025-08-10: 24 commitsWeek of 2025-08-17: 29 commitsWeek of 2025-08-24: 26 commitsWeek of 2025-08-31: 12 commitsWeek of 2025-09-07: 22 commitsWeek of 2025-09-14: 25 commitsWeek of 2025-09-21: 26 commitsWeek of 2025-09-28: 22 commitsWeek of 2025-10-05: 22 commitsWeek of 2025-10-12: 25 commitsWeek of 2025-10-19: 24 commitsWeek of 2025-10-26: 38 commitsWeek of 2025-11-02: 28 commitsWeek of 2025-11-09: 33 commitsWeek of 2025-11-16: 33 commitsWeek of 2025-11-23: 28 commitsWeek of 2025-11-30: 34 commitsWeek of 2025-12-07: 20 commitsWeek of 2025-12-14: 64 commitsWeek of 2025-12-21: 20 commitsWeek of 2025-12-28: 14 commitsWeek of 2026-01-04: 16 commitsWeek of 2026-01-11: 23 commitsWeek of 2026-01-18: 27 commitsWeek of 2026-01-25: 33 commitsWeek of 2026-02-01: 47 commitsWeek of 2026-02-08: 25 commitsWeek of 2026-02-15: 45 commitsWeek of 2026-02-22: 28 commitsWeek of 2026-03-01: 32 commitsWeek of 2026-03-08: 37 commitsWeek of 2026-03-15: 34 commitsWeek of 2026-03-22: 31 commitsWeek of 2026-03-29: 37 commitsWeek of 2026-04-05: 47 commitsWeek of 2026-04-12: 36 commitsWeek of 2026-04-19: 37 commitsWeek of 2026-04-26: 29 commitsWeek of 2026-05-03: 34 commitsWeek of 2026-05-10: 36 commitsWeek of 2026-05-17: 38 commitsWeek of 2026-05-24: 55 commitsWeek of 2026-05-31: 40 commitsWeek of 2026-06-07: 40 commitsWeek of 2026-06-14: 37 commitsWeek of 2026-06-21: 32 commitsWeek of 2026-06-28: 28 commitsWeek of 2026-07-05: 38 commitsWeek of 2026-07-12: 41 commitsWeek of 2026-07-19: 33 commitsWeek of 2026-07-26: 43 commitsWeek of 2026-08-02: 20 commitsAug 10, 2025Aug 2, 2026
1.6K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 15 commitsSun 1:00 — 5 commitsSun 2:00 — 7 commitsSun 3:00 — 7 commitsSun 4:00 — 5 commitsSun 5:00 — 2 commitsSun 6:00 — 1 commitsSun 7:00 — 3 commitsSun 8:00 — 4 commitsSun 9:00 — 0 commitsSun 10:00 — 11 commitsSun 11:00 — 6 commitsSun 12:00 — 17 commitsSun 13:00 — 14 commitsSun 14:00 — 13 commitsSun 15:00 — 9 commitsSun 16:00 — 16 commitsSun 17:00 — 19 commitsSun 18:00 — 13 commitsSun 19:00 — 17 commitsSun 20:00 — 11 commitsSun 21:00 — 17 commitsSun 22:00 — 28 commitsSun 23:00 — 18 commitsMon 0:00 — 6 commitsMon 1:00 — 15 commitsMon 2:00 — 10 commitsMon 3:00 — 6 commitsMon 4:00 — 6 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 9 commitsMon 8:00 — 14 commitsMon 9:00 — 31 commitsMon 10:00 — 33 commitsMon 11:00 — 38 commitsMon 12:00 — 49 commitsMon 13:00 — 43 commitsMon 14:00 — 65 commitsMon 15:00 — 52 commitsMon 16:00 — 39 commitsMon 17:00 — 47 commitsMon 18:00 — 24 commitsMon 19:00 — 21 commitsMon 20:00 — 36 commitsMon 21:00 — 22 commitsMon 22:00 — 26 commitsMon 23:00 — 25 commitsTue 0:00 — 25 commitsTue 1:00 — 13 commitsTue 2:00 — 4 commitsTue 3:00 — 14 commitsTue 4:00 — 4 commitsTue 5:00 — 1 commitsTue 6:00 — 10 commitsTue 7:00 — 9 commitsTue 8:00 — 13 commitsTue 9:00 — 28 commitsTue 10:00 — 31 commitsTue 11:00 — 36 commitsTue 12:00 — 40 commitsTue 13:00 — 43 commitsTue 14:00 — 49 commitsTue 15:00 — 57 commitsTue 16:00 — 51 commitsTue 17:00 — 53 commitsTue 18:00 — 43 commitsTue 19:00 — 23 commitsTue 20:00 — 34 commitsTue 21:00 — 47 commitsTue 22:00 — 25 commitsTue 23:00 — 36 commitsWed 0:00 — 19 commitsWed 1:00 — 16 commitsWed 2:00 — 9 commitsWed 3:00 — 8 commitsWed 4:00 — 2 commitsWed 5:00 — 6 commitsWed 6:00 — 4 commitsWed 7:00 — 6 commitsWed 8:00 — 20 commitsWed 9:00 — 32 commitsWed 10:00 — 36 commitsWed 11:00 — 37 commitsWed 12:00 — 26 commitsWed 13:00 — 40 commitsWed 14:00 — 56 commitsWed 15:00 — 40 commitsWed 16:00 — 53 commitsWed 17:00 — 44 commitsWed 18:00 — 30 commitsWed 19:00 — 40 commitsWed 20:00 — 48 commitsWed 21:00 — 35 commitsWed 22:00 — 57 commitsWed 23:00 — 31 commitsThu 0:00 — 24 commitsThu 1:00 — 24 commitsThu 2:00 — 9 commitsThu 3:00 — 7 commitsThu 4:00 — 4 commitsThu 5:00 — 4 commitsThu 6:00 — 7 commitsThu 7:00 — 8 commitsThu 8:00 — 10 commitsThu 9:00 — 40 commitsThu 10:00 — 55 commitsThu 11:00 — 40 commitsThu 12:00 — 40 commitsThu 13:00 — 44 commitsThu 14:00 — 43 commitsThu 15:00 — 71 commitsThu 16:00 — 37 commitsThu 17:00 — 29 commitsThu 18:00 — 24 commitsThu 19:00 — 25 commitsThu 20:00 — 30 commitsThu 21:00 — 27 commitsThu 22:00 — 35 commitsThu 23:00 — 21 commitsFri 0:00 — 21 commitsFri 1:00 — 29 commitsFri 2:00 — 21 commitsFri 3:00 — 10 commitsFri 4:00 — 3 commitsFri 5:00 — 4 commitsFri 6:00 — 3 commitsFri 7:00 — 7 commitsFri 8:00 — 19 commitsFri 9:00 — 30 commitsFri 10:00 — 41 commitsFri 11:00 — 28 commitsFri 12:00 — 41 commitsFri 13:00 — 49 commitsFri 14:00 — 53 commitsFri 15:00 — 43 commitsFri 16:00 — 31 commitsFri 17:00 — 33 commitsFri 18:00 — 27 commitsFri 19:00 — 14 commitsFri 20:00 — 20 commitsFri 21:00 — 19 commitsFri 22:00 — 26 commitsFri 23:00 — 15 commitsSat 0:00 — 14 commitsSat 1:00 — 12 commitsSat 2:00 — 9 commitsSat 3:00 — 6 commitsSat 4:00 — 6 commitsSat 5:00 — 4 commitsSat 6:00 — 3 commitsSat 7:00 — 4 commitsSat 8:00 — 9 commitsSat 9:00 — 9 commitsSat 10:00 — 11 commitsSat 11:00 — 11 commitsSat 12:00 — 6 commitsSat 13:00 — 11 commitsSat 14:00 — 14 commitsSat 15:00 — 9 commitsSat 16:00 — 11 commitsSat 17:00 — 11 commitsSat 18:00 — 8 commitsSat 19:00 — 8 commitsSat 20:00 — 4 commitsSat 21:00 — 10 commitsSat 22:00 — 7 commitsSat 23:00 — 11 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Aug 6, 2026daily#10+432
Aug 5, 2026daily#10+432
Aug 4, 2026daily#12+148
  • public-apis/public-apis

    A collective list of free APIs

    454.9K stars · Python

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • donnemartin/system-design-primer

    Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

    362.2K stars · Python