Skip to content

Release Notes: v0.1.0

Release Date: 2026-07-05

Summary

Initial release of omni-livekit, providing a LiveKit voice gateway for WebRTC-based voice AI applications. This package enables AI agents to participate in LiveKit rooms with real-time audio communication.

Highlights

  • LiveKit Voice Gateway: WebRTC-based voice communication with <200ms latency
  • OmniMeet Provider: Full meeting abstraction for LiveKit
  • OmniVoice Gateway: Voice AI pipeline integration
  • Static Image Avatar: Visual presence for voice-only agents

Features

Agent Package

The agent package provides WebRTC audio track handling for AI agents:

import "github.com/plexusone/omni-livekit/agent"

agent, _ := agent.New(agent.Options{
    APIKey:    os.Getenv("LIVEKIT_API_KEY"),
    APISecret: os.Getenv("LIVEKIT_API_SECRET"),
    ServerURL: os.Getenv("LIVEKIT_URL"),
    Identity:  "ai-agent",
    Name:      "AI Assistant",
})

agent.Join(ctx, "room-name")

Room Management

Create rooms and generate client tokens for human participants:

import "github.com/plexusone/omni-livekit/room"

client, _ := room.NewClient(room.Config{
    APIKey:    os.Getenv("LIVEKIT_API_KEY"),
    APISecret: os.Getenv("LIVEKIT_API_SECRET"),
    URL:       os.Getenv("LIVEKIT_URL"),
})

// Generate token for web/mobile client
token, _ := client.GenerateClientToken("room-name", "user-123", "John")

OmniMeet Provider

Implements the meeting.Provider interface from omnimeet-core:

import "github.com/plexusone/omni-livekit/omnimeet"

provider, _ := omnimeet.NewProvider(omnimeet.Config{
    APIKey:    os.Getenv("LIVEKIT_API_KEY"),
    APISecret: os.Getenv("LIVEKIT_API_SECRET"),
    ServerURL: os.Getenv("LIVEKIT_URL"),
})

meeting, _ := provider.CreateMeeting(ctx, meeting.CreateRequest{
    Name: "Team Standup",
})

OmniVoice Gateway

Implements the WebRTCGateway interface from omnivoice-core:

import "github.com/plexusone/omni-livekit/omnivoice/gateway"

gw, _ := gateway.New(gateway.Config{
    LiveKitURL:    os.Getenv("LIVEKIT_URL"),
    LiveKitAPIKey: os.Getenv("LIVEKIT_API_KEY"),
    LiveKitSecret: os.Getenv("LIVEKIT_API_SECRET"),
    RoomName:      "voice-agent",
    SampleRate:    24000,
})

Static Image Avatar

Voice agents can display a static image in their video tile:

# Enable default OmniAgent avatar
export AGENT_AVATAR="true"

# Or use custom avatar
export AGENT_AVATAR="/path/to/avatar.h264"

Pre-encode custom avatars with the included tool:

go run ./cmd/encode-avatar -i photo.png -o avatar.h264

Native Dependencies

This package requires native audio libraries:

macOS:

brew install opus opusfile libsoxr

Ubuntu/Debian:

apt-get install libopus-dev libopusfile-dev libsoxr-dev

Build Tags

Voice agents must be built with the opus tag:

go build -tags opus ./cmd/your-agent

Dependencies

Dependency Version
livekit/server-sdk-go/v2 v2.17.0
omnimeet-core v0.8.0
omnivoice v0.13.0
omnivoice-core v0.15.0

Installation

go get github.com/plexusone/omni-livekit@v0.1.0

Documentation