<!--BEGIN_BANNER_IMAGE--> <!--END_BANNER_IMAGE--> 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…
<!--BEGIN_BANNER_IMAGE-->
<!--END_BANNER_IMAGE-->
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.







Features
- Scalable, distributed WebRTC SFU (Selective Forwarding Unit)
- Modern, full-featured client SDKs
- Built for production, supports JWT authentication
- Robust networking and connectivity, UDP/TCP/TURN
- Easy to deploy: single binary, Docker or Kubernetes
- Advanced features including:
Documentation & Guides
Live Demos
- LiveKit Meet (source)
- Spatial Audio (source)
- Livestreaming from OBS Studio (source)
- AI voice assistant using ChatGPT (source)
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.
Language
Repo
Declarative UI
Links
<!-- BEGIN Template
Language
END -->
<!-- JavaScript -->
JavaScript (TypeScript)
client-sdk-js
React
docs
|
JS example
|
React example
<!-- Swift -->
Swift (iOS / MacOS)
client-sdk-swift
Swift UI
docs
|
example
<!-- Kotlin -->
Kotlin (Android)
client-sdk-android
Compose
docs
|
example
|
Compose example
<!-- Flutter -->
Flutter (all platforms)
client-sdk-flutter
native
docs
|
example
<!-- Unity -->
Unity WebGL
client-sdk-unity-web
docs
<!-- React Native -->
React Native (beta)
client-sdk-react-native
native
<!-- Rust -->
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.
| Language | Repo | Docs |
| :---------------------- | :-------------------------------------------------------------------------------------- | :---------------------------------------------------------- |
| Go | server-sdk-go | docs |
| JavaScript (TypeScript) | server-sdk-js | docs |
| Ruby | server-sdk-ruby | |
| Java (Kotlin) | server-sdk-kotlin | |
| Python (community) | python-sdks | |
| PHP (community) | agence104/livekit-server-sdk-php | |
Tools
- CLI - command line interface & load tester
- Docker image
- Helm charts
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
shell
brew install livekit
Linux
shell
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:
shell
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
shell
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
shell
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.
<!--BEGIN_REPO_NAV-->
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
<!--END_REPO_NAV-->
-
livekit
End-to-end realtime stack for connecting humans and AI
Go ★ 19k 20h agoExplain → -
agents
A framework for building realtime voice AI agents 🤖🎙️📹
Python ★ 11k 12h agoExplain → -
agents-js
Build realtime multimodal AI agents with Node.js
TypeScript ★ 866 12h agoExplain → -
client-sdk-js
LiveKit browser client SDK (javascript)
TypeScript ★ 634 2d agoExplain → -
rust-sdks
LiveKit realtime and server SDKs for Rust
Assembly ★ 455 12h agoExplain → -
components-js
Official open source React components and examples for building with LiveKit.
TypeScript ★ 437 1d agoExplain → -
sip
SIP to WebRTC bridge for LiveKit
Go ★ 429 4h agoExplain → -
client-sdk-swift
LiveKit Swift Client SDK. Easily build live audio or video experiences on iOS, macOS, tvOS, and visionOS.
Swift ★ 424 3d agoExplain → -
client-sdk-flutter
Flutter Client SDK for LiveKit
Dart ★ 402 1d agoExplain → -
agents-playground
No description.
TypeScript ★ 373 8d agoExplain → -
python-sdks
LiveKit real-time and server SDKs for Python
Python ★ 363 17h agoExplain → -
server-sdk-go
Go Realtime SDK and server API for LiveKit
Go ★ 360 2d agoExplain → -
livekit-cli
Command line interface to LiveKit
Go ★ 358 19h agoExplain → -
egress
Export and record WebRTC sessions and tracks
Go ★ 343 3h agoExplain → -
client-sdk-android
LiveKit SDK for Android
Kotlin ★ 342 3d agoExplain → -
client-sdk-react-native
Official React Native SDK for LiveKit.
TypeScript ★ 278 2d agoExplain → -
node-sdks
LiveKit realtime and server SDKs for Node.JS
TypeScript ★ 276 10h agoExplain → -
livekit-react ▣
React component and library for LiveKit
TypeScript ★ 184 3y agoExplain → -
livekit-wakeword
An open-source wake word library for creating voice-enabled applications.
Python ★ 181 10d agoExplain → -
ingress
Ingest streams (RTMP/WHIP) or files (HLS, MP4) to LiveKit WebRTC
Go ★ 178 19h agoExplain → -
protocol
LiveKit protocol. Protobuf definitions for LiveKit's signaling protocol
Go ★ 142 12h agoExplain → -
client-sdk-esp32
LiveKit Client SDK for ESP32 series chips. Easily enable real-time audio, video, and data for embedded projects.
C ★ 131 1d agoExplain → -
livekit-helm
LiveKit Helm charts
Go Template ★ 119 1mo agoExplain → -
client-sdk-unity
Official Unity SDK for LiveKit
C# ★ 83 1d agoExplain → -
client-sdk-unity-web
Official LiveKit SDK for Unity WebGL
C# ★ 80 1d agoExplain → -
server-sdk-kotlin
No description.
Kotlin ★ 77 10d agoExplain → -
track-processors-js
Pre-built track processors for background images, blur, etc for use with the LiveKit JS Client SDK
TypeScript ★ 68 2mo agoExplain → -
client-sdk-cpp
Official native C++ client SDK for LiveKit: build realtime audio, video, and data applications using the LiveKit protocol.
C++ ★ 63 4h agoExplain → -
agent-skills
Reusable AI coding agent skills for building voice AI with LiveKit
Python ★ 56 4d agoExplain → -
server-sdk-ruby
LiveKit Server SDK for Ruby
Ruby ★ 51 10d agoExplain → -
client-sdk-react-native-expo-plugin
No description.
TypeScript ★ 47 3mo agoExplain → -
psrpc
No description.
Go ★ 41 15d agoExplain → -
livekit-recorder ▣
No description.
Go ★ 41 4y agoExplain → -
components-swift
Official SwiftUI components for building with LiveKit.
Swift ★ 41 2mo agoExplain → -
components-flutter
Official open source Flutter Widgets and examples for building with LiveKit.
Dart ★ 40 3mo agoExplain → -
components-android
Jetpack Compose Components for LiveKit Android SDK
Kotlin ★ 34 18d agoExplain → -
gstreamer-publisher
Command-line app that publishes any GStreamer pipeline to LiveKit
Go ★ 32 7h agoExplain → -
webrtc-xcframework
No description.
Ruby ★ 31 5d agoExplain → -
livekit_composite
All public LiveKit repos as a common repo to make searching and LLM inference easier.
★ 29 2mo agoExplain → -
livekit-server-sdk-python ▣
LiveKit Server SDK for Python
Python ★ 26 2y agoExplain → -
react-native-webrtc ⑂
The WebRTC module for React Native
Objective-C ★ 25 2d agoExplain → -
webrtc-vmaf
VMAF benchmarking tool for WebRTC codecs
Python ★ 24 5mo agoExplain → -
uniffi-bindgen-node
Mechanism for generating ffi bindings between node and rust using uniffi
TypeScript ★ 22 1mo agoExplain → -
deploy
Resources for deploying LiveKit
Go ★ 20 15d agoExplain → -
eot-bench
LiveKit End-of-Turn Benchmark
Python ★ 16 3d agoExplain → -
portal
A Simple Transport Layer For Teleoperation And Inference
Rust ★ 13 10d agoExplain → -
media-sdk
No description.
Go ★ 13 8d agoExplain → -
hq ⑂ ▣
Virtual-office, spatial application using LiveKit for audio/video communication.
TypeScript ★ 12 3y agoExplain → -
mediatransportutil
Media transport utilities
Go ★ 11 13d agoExplain → -
swift-krisp-noise-filter
No description.
Swift ★ 10 9mo agoExplain → -
livekit-docs ▣
No description.
JavaScript ★ 10 3y agoExplain → -
deploy-action
GitHub plugin to control LiveKit Cloud Agents
Go ★ 9 7mo agoExplain → -
sipgo ⑂
SIP library for writing fast SIP services in Go
Go ★ 9 1mo agoExplain → -
flutter-webrtc ⑂
WebRTC plugin for Flutter Mobile/Desktop/Web
Java ★ 8 4y agoExplain → -
create-livekit-app ⑂
Quickest way to start a new LiveKit web app with full stack typesafety.
★ 8 3y agoExplain → -
chrometester ▣
A livekit tester to simulate a subscriber in a room, uses headless Chromium
JavaScript ★ 8 4y agoExplain → -
plugins-ai-coustics-python
Ai-coustics Plugins for LiveKit, Python
Python ★ 7 5d agoExplain → -
websocket-bridge ▣
Send and Receive Media to LiveKit via WebSocket
Go ★ 7 2y agoExplain → -
turn ⑂ ▣
Pion TURN, an API for building TURN clients and servers
Go ★ 6 4y agoExplain → -
signal-proxy ▣
No description.
Go ★ 6 2y agoExplain → -
rtcscore-go ▣
Library to calculate Mean Opinion Score(MOS)
Go ★ 5 2y agoExplain → -
storage
No description.
Go ★ 5 3d agoExplain → -
gst-plugins ▣
No description.
Go ★ 4 2y agoExplain → -
ts-mutex
Tiny mutex helper
TypeScript ★ 4 1y agoExplain → -
nats-server ⑂ ▣
High-Performance server for NATS.io, the cloud and edge native messaging system.
★ 3 2y agoExplain → -
twirp-client-unity
No description.
C# ★ 3 4y agoExplain → -
mageutil
No description.
Go ★ 3 7mo agoExplain → -
cuckoofilter ⑂
Optimized implementation of Cuckoo Filter: Practically Better Than Bloom.
Go ★ 3 2y agoExplain → -
amrwb-cgo
AMR-WB codec for Go (using CGo)
C ★ 2 8d agoExplain → -
podspecs
No description.
Ruby ★ 2 4d agoExplain → -
plugins-ai-coustics-node
Ai-coustics Plugins for LiveKit, Node
TypeScript ★ 2 5d agoExplain → -
traefik-readiness-plugin ▣
Traefik Readiness Plugin
Go ★ 2 1y agoExplain → -
go-gst ⑂ ▣
Gstreamer bindings and utilities for golang
Go ★ 2 1y agoExplain → -
livekit-uniffi-xcframework
Swift bindings and binaries for livekit-uniffi Rust crate
Swift ★ 2 1mo agoExplain → -
media-samples
Royalty-free media samples for testing
Go ★ 2 1mo agoExplain → -
go-rtmp ⑂
RTMP 1.0 server/client library written in Go.
Go ★ 2 7mo agoExplain → -
external-dns ⑂
Configure external DNS servers (AWS Route53, Google CloudDNS and others) for Kubernetes Ingresses and Services
Go ★ 2 6mo agoExplain → -
noise ⑂
Noise is an Android wrapper for kissfft, a FFT implementation written in C.
Java ★ 2 11mo agoExplain → -
typed-emitter ⑂
🔩 Type-safe event emitter interface for TypeScript (fork of andywer/typed-emitter)
JavaScript ★ 2 1y agoExplain → -
dev-server-action
Install and run a LiveKit server in development mode for end-to-end testing.
★ 1 16d agoExplain → -
sipgoparse ⑂ ▣
Fork of sipgo to fix parsing
★ 1 11mo agoExplain → -
slack-notifier-action
No description.
★ 1 4mo agoExplain → -
llama.cpp ⑂
LLM inference in C/C++
C++ ★ 1 1y agoExplain → -
gst-go ⑂
Gstreamer bindings and utilities for golang
Go ★ 1 7mo agoExplain → -
prettier-config
Prettier configuration for LiveKit code
★ 1 1y agoExplain → -
go-glib ⑂ ▣
Glib bindings for go. Originally forked from gotk3/gotk3.
Go ★ 1 2y agoExplain → -
gstcefsrc ⑂
A simple gstreamer wrapper around Chromium Embedded Framework
C++ ★ 1 3y agoExplain → -
ios-test-apps
No description.
Swift ★ 1 4y agoExplain → -
prism-react-renderer ⑂
🖌️ Renders highlighted Prism output to React (+ theming & vendored Prism)
JavaScript ★ 1 5y agoExplain → -
cpp-tools
Standardized set of tools for use in LiveKit C++ projects.
★ 0 10d agoExplain → -
client-sdk-swift-xcframework
LiveKit Swift Client SDK. Easily build live audio or video experiences on iOS, macOS, tvOS, and visionOS.
Swift ★ 0 10d agoExplain → -
pion-whip-dtls-repro
Report steps for issue with dtls handshake failure between gst test client and SFU
Go ★ 0 14d agoExplain → -
next-auth ⑂ ▣
Authentication for the Web.
TypeScript ★ 0 2y agoExplain → -
livekit-embedded-wakeword
No description.
Python ★ 0 3mo agoExplain → -
cargo-swift ⑂
A cargo plugin to easily build Swift packages from Rust code
Rust ★ 0 1mo agoExplain → -
publish-xcframework-action
Reusable GitHub Action that publishes an XCFramework zip to a hosting repo via draft release + PR
★ 0 1mo agoExplain → -
react-native-callkeep ⑂
iOS CallKit framework and Android ConnectionService for React Native
Java ★ 0 1mo agoExplain → -
react-github-login ⑂
:octocat: A React Component for GitHub Login
JavaScript ★ 0 4y agoExplain → -
concentus ⑂
Pure portable C#/Java/Golang implementations of the Opus audio codec
C ★ 0 7mo agoExplain → -
cloud-agents-client
Cloud Agents Public Client
★ 0 8mo agoExplain → -
esp-bsp ⑂
Board support components for Espressif development boards
★ 0 9mo agoExplain → -
mediadevices
No description.
Rust ★ 0 2y agoExplain → -
protobuf-es ⑂
Protocol Buffers for ECMAScript. The only JavaScript Protobuf library that is fully-compliant with Protobuf conformance tests.
TypeScript ★ 0 2y agoExplain → -
adapter ⑂
Shim to insulate apps from spec changes and prefix differences. Latest adapter.js release:
★ 0 1y agoExplain →
No repos match these filters.