livekit

    livekit/livekit

    End-to-end realtime stack for connecting humans and AI

    backend
    golang
    media-server
    sfu
    video
    voice
    voice-ai
    webrtc
    Go
    Apache-2.0
    17.5K stars
    1.8K forks
    17.5K watching
    Updated 3/12/2026
    View on GitHub
    Backblaze Advertisement

    Loading star history...

    Health Score

    25.55

    Weekly Growth

    +0

    +0.0% this week

    Contributors

    1

    Total contributors

    Open Issues

    188

    Generated Insights

    About livekit

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

    LiveKit: Real-time video, audio and data for developers

    LiveKit is an open source project that provides scalable, multi-user conferencing based on WebRTC. It's designed to provide everything you need to build real-time video audio data capabilities in your applications.

    LiveKit's server is written in Go, using the awesome Pion WebRTC implementation.

    GitHub stars Slack community Twitter Follow Ask DeepWiki GitHub release (latest SemVer) GitHub Workflow Status License

    Features

    Documentation & Guides

    https://docs.livekit.io

    Live Demos

    Ecosystem

    • Agents: build real-time multimodal AI applications with programmable backend participants
    • Egress: record or multi-stream rooms and export individual tracks
    • Ingress: ingest streams from external sources like RTMP, WHIP, HLS, or OBS Studio

    SDKs & Tools

    Client SDKs

    Client SDKs enable your frontend to include interactive, multi-user experiences.

    LanguageRepo Declarative UI Links
    JavaScript (TypeScript) client-sdk-js React docs | JS example | React example
    Swift (iOS / MacOS) client-sdk-swift Swift UI docs | example
    Kotlin (Android) client-sdk-android Compose docs | example | Compose example
    Flutter (all platforms) client-sdk-flutter native docs | example
    Unity WebGL client-sdk-unity-web docs
    React Native (beta) client-sdk-react-native native
    Rust client-sdk-rust

    Server SDKs

    Server SDKs enable your backend to generate access tokens, call server APIs, and receive webhooks. In addition, the Go SDK includes client capabilities, enabling you to build automations that behave like end-users.

    LanguageRepoDocs
    Goserver-sdk-godocs
    JavaScript (TypeScript)server-sdk-jsdocs
    Rubyserver-sdk-ruby
    Java (Kotlin)server-sdk-kotlin
    Python (community)python-sdks
    PHP (community)agence104/livekit-server-sdk-php

    Tools

    Install

    [!TIP] We recommend installing LiveKit CLI along with the server. It lets you access server APIs, create tokens, and generate test traffic.

    The following will install LiveKit's media server:

    MacOS

    brew install livekit
    

    Linux

    curl -sSL https://get.livekit.io | bash
    

    Windows

    Download the latest release here

    Getting Started

    Starting LiveKit

    Start LiveKit in development mode by running livekit-server --dev. It'll use a placeholder API key/secret pair.

    API Key: devkey
    API Secret: secret
    

    To customize your setup for production, refer to our deployment docs

    Creating access token

    A user connecting to a LiveKit room requires an access token. Access tokens (JWT) encode the user's identity and the room permissions they've been granted. You can generate a token with our CLI:

    lk token create \
        --api-key devkey --api-secret secret \
        --join --room my-first-room --identity user1 \
        --valid-for 24h
    

    Test with example app

    Head over to our example app and enter a generated token to connect to your LiveKit server. This app is built with our React SDK.

    Once connected, your video and audio are now being published to your new LiveKit instance!

    Simulating a test publisher

    lk room join \
        --url ws://localhost:7880 \
        --api-key devkey --api-secret secret \
        --identity bot-user1 \
        --publish-demo \
        my-first-room
    

    This command publishes a looped demo video to a room. Due to how the video clip was encoded (keyframes every 3s), there's a slight delay before the browser has sufficient data to begin rendering frames. This is an artifact of the simulation.

    Deployment

    Use LiveKit Cloud

    LiveKit Cloud is the fastest and most reliable way to run LiveKit. Every project gets free monthly bandwidth and transcoding credits.

    Sign up for LiveKit Cloud.

    Self-host

    Read our deployment docs for more information.

    Building from source

    Pre-requisites:

    • Go 1.23+ is installed
    • GOPATH/bin is in your PATH

    Then run

    git clone https://github.com/livekit/livekit
    cd livekit
    ./bootstrap.sh
    mage
    

    Contributing

    We welcome your contributions toward improving LiveKit! Please join us on Slack to discuss your ideas and/or PRs.

    License

    LiveKit server is licensed under Apache License v2.0.


    LiveKit Ecosystem
    LiveKit SDKsBrowser · iOS/macOS/visionOS · Android · Flutter · React Native · Rust · Node.js · Python · Unity · Unity (WebGL) · ESP32
    Server APIsNode.js · Golang · Ruby · Java/Kotlin · Python · Rust · PHP (community) · .NET (community)
    UI ComponentsReact · Android Compose · SwiftUI · Flutter
    Agents FrameworksPython · Node.js · Playground
    ServicesLiveKit server · Egress · Ingress · SIP
    ResourcesDocs · Example apps · Cloud · Self-hosting · CLI

    Discover Repositories

    Search across tracked repositories by name or description