open-index/open-npm huggingface dataset:
npm package: @livekit/agents
Description: LiveKit Agents - Node.js
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# LiveKit Agents for Node.js

The Agents 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.

This package contains the main LiveKit Agents SDK. Refer to the
[documentation](https://docs.livekit.io/agents/overview/) for information on how
to use it, or browse the [API
reference](https://docs.livekit.io/agents-js/modules/agents.html). See the
[repository](https://github.com/livekit/agents-js) for more information about
the framework as a whole.
npm package: @livekit/agents-plugin-anam
Description: Anam plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# Anam plugin for LiveKit Agents

The Agents 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.

This package contains the Anam plugin, which allows for voice synthesis.
Refer to the [documentation](https://docs.livekit.io/agents/overview/) for
information on how to use it, or browse the [API
reference](https://docs.livekit.io/agents-js/modules/plugins_agents_plugin_Anam.html).
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/agents-plugin-assemblyai
Description: AssemblyAI plugin for LiveKit Agents for Node.js
Author: LiveKit
Latest version: 0.0.0

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# AssemblyAI plugin for LiveKit Agents

The Agents 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.

This package contains the AssemblyAI plugin, which allows for speech recognition.
Refer to the [documentation](https://docs.livekit.io/agents/overview/) for
information on how to use it.
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/agents-plugin-baseten
Description: Baseten plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->

# LiveKit Agents Baseten Plugin

Node.js/TypeScript plugin for LiveKit Agents with Baseten-hosted models (LLM, STT, TTS).

## Installation

```bash
cd packages/livekit-plugin-baseten
pnpm install
pnpm build
```

## Configuration

Create `.env` file:

```bash
BASETEN_API_KEY=your_api_key_here
BASETEN_MODEL_ID=your_llm_model_id
BASETEN_TTS_MODEL_ID=your_tts_model_id
BASETEN_STT_MODEL_ID=your_stt_model_id
```

## Usage

### LLM

```typescript
import { LLM } from 'livekit-plugin-baseten'

const llm = new LLM({
    model: 'openai/gpt-4o-mini',
    apiKey: process.env.BASETEN_API_KEY
})
```

### STT

```typescript
import { STT } from 'livekit-plugin-baseten'

const stt = new STT({
    apiKey: process.env.BASETEN_API_KEY,
    modelId: process.env.BASETEN_STT_MODEL_ID
})

const stream = stt.stream()
for await (const event of stream) {
    // Handle speech events
}
```

### TTS

```typescript
import { TTS } from 'livekit-plugin-baseten'

const tts = new TTS({
    apiKey: process.env.BASETEN_API_KEY,
    modelEndpoint: 'your-model-endpoint-url'
})

const stream = tts.synthesize('Hello world')
for await (const frame of stream) {
    // Process audio frames
}
```

## Testing

```bash
pnpm test:llm-cli   # Interactive LLM chat
pnpm test:tts-cli   # TTS synthesis
pnpm test:stt-cli   # STT with microphone
```

See [TESTING.md](./test/TESTING.md) for details.

## Development

```bash
pnpm build      # Build
pnpm dev        # Watch mode
pnpm typecheck  # Type checking
pnpm lint       # Linting
```
npm package: @livekit/agents-plugin-bey
Description: Beyond Presence plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2025 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->

# Beyond Presence plugin for LiveKit Agents

Support for [Beyond Presence](https://docs.bey.dev) virtual avatars.

See [https://docs.livekit.io/agents/integrations/avatar/bey/](https://docs.livekit.io/agents/integrations/avatar/bey/) for more information.

## Installation

```bash
npm install @livekit/agents-plugin-bey
```

or

```bash
pnpm add @livekit/agents-plugin-bey
```

## Pre-requisites

Create a developer API key from the [creator dashboard](https://app.bey.chat) and set the `BEY_API_KEY` environment variable with it:

```bash
export BEY_API_KEY=<your-bey-api-key>
```

## Usage

```typescript
import { AvatarSession } from '@livekit/agents-plugin-bey';
import { AgentSession } from '@livekit/agents';

// Create an avatar session
const avatarSession = new AvatarSession({
  avatarId: 'your-avatar-id', // optional, defaults to stock avatar
  apiKey: process.env.BEY_API_KEY, // optional if set via env var
});

// Start the avatar in your agent
await avatarSession.start(agentSession, room, {
  livekitUrl: process.env.LIVEKIT_URL,
  livekitApiKey: process.env.LIVEKIT_API_KEY,
  livekitApiSecret: process.env.LIVEKIT_API_SECRET,
});
```

## API

### `AvatarSession`

Creates a new Beyond Presence avatar session.

#### Constructor Options

- `avatarId?: string` - The avatar ID to use. Defaults to stock avatar.
- `apiUrl?: string` - The Bey API URL. Defaults to `https://api.bey.dev`.
- `apiKey?: string` - Your Bey API key. Can also be set via `BEY_API_KEY` environment variable.
- `avatarParticipantIdentity?: string` - The identity for the avatar participant. Defaults to `'bey-avatar-agent'`.
- `avatarParticipantName?: string` - The name for the avatar participant. Defaults to `'bey-avatar-agent'`.
- `connOptions?: APIConnectOptions` - Connection options for retry logic.

#### Methods

##### `start(agentSession: AgentSession, room: Room, options?: StartOptions): Promise<void>`

Starts the avatar session and connects it to the room.

**Options:**
- `livekitUrl?: string` - The LiveKit server URL. Can also be set via `LIVEKIT_URL` environment variable.
- `livekitApiKey?: string` - Your LiveKit API key. Can also be set via `LIVEKIT_API_KEY` environment variable.
- `livekitApiSecret?: string` - Your LiveKit API secret. Can also be set via `LIVEKIT_API_SECRET` environment variable.

## License

Apache 2.0
npm package: @livekit/agents-plugin-cartesia
Description: Cartesia plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# Cartesia plugin for LiveKit Agents

The Agents 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.

This package contains the Cartesia plugin, which allows for voice synthesis.
Refer to the [documentation](https://docs.livekit.io/agents/overview/) for
information on how to use it, or browse the [API
reference](https://docs.livekit.io/agents-js/modules/plugins_agents_plugin_cartesia.html).
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.

## Troubleshooting

If you see `AggregateError` / `ETIMEDOUT` on the first Cartesia connection in Node.js (often due to IPv6/IPv4 “happy eyeballs”), you can mitigate it by:

- Setting a longer Node autoselection attempt timeout (example): `NODE_OPTIONS="--network-family-autoselection-attempt-timeout=5000"`
- Increasing the agent session TTS connect timeout via `connOptions.ttsConnOptions.timeoutMs`
npm package: @livekit/agents-plugin-deepgram
Description: Deepgram plugin for LiveKit Agents for Node.js
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# Deepgram plugin for LiveKit Agents

The Agents 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.

This package contains the Deepgram plugin, which allows for speech recognition.
Refer to the [documentation](https://docs.livekit.io/agents/overview/) for
information on how to use it, or browse the [API
reference](https://docs.livekit.io/agents-js/modules/plugins_agents_plugin_deepgram.html).
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/agents-plugin-elevenlabs
Description: ElevenLabs plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# ElevenLabs plugin for LiveKit Agents

The Agents 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.

This package contains the ElevenLabs plugin, which allows for voice synthesis.
Refer to the [documentation](https://docs.livekit.io/agents/overview/) for
information on how to use it, or browse the [API
reference](https://docs.livekit.io/agents-js/modules/plugins_agents_plugin_elevenlabs.html).
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/agents-plugin-google
Description: Google Gemini plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2025 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->

# LiveKit Agents Google Plugin

This plugin provides Google Gemini LLM support for LiveKit Node Agents using the new unified `@google/genai` SDK.

## Installation

```bash
npm install @livekit/agents-plugin-google
```

## Usage

### Basic Setup

```typescript
import { LLM } from '@livekit/agents-plugin-google';

// Using Google AI Studio (API Key)
const llm = new LLM({
  model: 'gemini-1.5-flash',
  apiKey: 'your-api-key', // or set GOOGLE_API_KEY env var
});

// Using Vertex AI
const llm = new LLM({
  model: 'gemini-1.5-pro',
  vertexai: true,
  project: 'your-project-id', // or set GOOGLE_CLOUD_PROJECT env var
  location: 'us-central1', // or set GOOGLE_CLOUD_LOCATION env var
});
```

To use the Gemini realtime model or TTS (Beta)

```typescript
import * as google from '@livekit/agents-plugin-google';

const realtimeModel = new google.beta.realtime.RealtimeModel({
  model: 'gemini-2.5-flash-native-audio-preview-12-2025',
})
const geminiTTS = new google.beta.TTS(),
```

### Environment Variables

- `GOOGLE_API_KEY` or `GOOGLE_GENAI_API_KEY`: Your Google AI Studio API key
- `GOOGLE_GENAI_USE_VERTEXAI`: Set to `true` or `1` to enable Vertex AI
- `GOOGLE_CLOUD_PROJECT`: Your Google Cloud project ID (for Vertex AI)
- `GOOGLE_CLOUD_LOCATION`: Your preferred location (default: `us-central1`)

### Supported Models

- `gemini-1.5-pro` - Most capable model
- `gemini-1.5-flash` - Fast and efficient
- `gemini-1.5-flash-8b` - Ultra-fast lightweight model
- `gemini-2.0-flash-exp` - Latest experimental model
- And more (see models.ts for full list)

### Realtime Model Notes

- `gemini-3.1-flash-live-preview` is supported as a realtime model, but `generateReply()` is not currently compatible with it.
- This matters for `voice.AgentSession` flows that rely on programmatic reply generation, such as explicit post-tool continuation, greetings, reconnect replies, and other server-triggered follow-up turns.
- If your voice-agent flow depends on `generateReply()`, prefer a Gemini 2.5 native-audio live model for now.

### Thinking Configuration

- `thinkingConfig` is model-specific.
- Gemini 3.1 live models use `thinkingLevel` such as `minimal`, `low`, `medium`, and `high`.
- Gemini 2.5 live models use `thinkingBudget`.

### Advanced Configuration

```typescript
const llm = new LLM({
  model: 'gemini-1.5-pro',
  temperature: 0.7,
  maxOutputTokens: 2048,
  topP: 0.8,
  topK: 40,
  toolChoice: 'auto',
});
```

## Authentication

### Google AI Studio

Set your API key via environment variable or constructor option:

```bash
export GOOGLE_API_KEY=your-api-key
```

### Vertex AI

For Vertex AI, ensure you have:

1. Google Cloud CLI installed and authenticated
2. Vertex AI API enabled in your project
3. Proper authentication configured (Application Default Credentials)

```bash
gcloud auth application-default login
export GOOGLE_CLOUD_PROJECT=your-project-id
export GOOGLE_GENAI_USE_VERTEXAI=true
```

## License

Apache 2.0
npm package: @livekit/agents-plugin-lemonslice
Description: LemonSlice avatar plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

# LemonSlice plugin for LiveKit Agents

Support for avatar generation and animation with [LemonSlice](https://lemonslice.com/).

See [https://docs.livekit.io/agents/models/avatar/plugins/lemonslice/](https://docs.livekit.io/agents/models/avatar/plugins/lemonslice/) for more information.

## Installation

```bash
npm install @livekit/agents-plugin-lemonslice
# or
pnpm add @livekit/agents-plugin-lemonslice
# or
yarn add @livekit/agents-plugin-lemonslice
```

## Pre-requisites

You'll need an API key from LemonSlice. It can be set as an environment variable: `LEMONSLICE_API_KEY`
Manage your LemonSlice API key through the [LemonSlice API Dashboard](https://lemonslice.com/agents/api)

## Usage

```typescript
import { AvatarSession } from '@livekit/agents-plugin-lemonslice';

// Create an avatar session with an image URL
const avatar = new AvatarSession({
  agentImageUrl: 'publicly-accessible-image-url',
  apiKey: 'your-lemonslice-api-key', // or set LEMONSLICE_API_KEY env var
  extraPayload: {
    aspect_ratio: '9x16',
  },
});

// Start the avatar session after creating your agent session
await avatar.start(agentSession, room);
```

### Full Example

Find a complete working example [here](../../examples/src/lemonslice_realtime_avatar.ts).

Set `LEMONSLICE_API_KEY` and `LEMONSLICE_IMAGE_URL` to get up and running.


## Configuration Options

### AvatarSessionOptions

| Option | Type | Description |
|--------|------|-------------|
| `agentId` | `string` | The LemonSlice agent ID to use. Either `agentId` or `agentImageUrl` must be provided. |
| `agentImageUrl` | `AvatarImage` | A publicly accessible url to your avatar image. Either `agentId` or `agentImageUrl` must be provided. |
| `extraPayload` | `Record<string, unknown>` | Additional LemonSlice session payload fields to forward to LemonSlice. |
| `apiUrl` | `string` | The LemonSlice API URL. Defaults to `LEMONSLICE_API_URL` env var or the default LemonSlice API endpoint. |
| `apiKey` | `string` | The LemonSlice API key. Defaults to `LEMONSLICE_API_KEY` env var. |
| `avatarParticipantIdentity` | `string` | The identity of the avatar participant in the room. Defaults to `'lemonslice-avatar-agent'`. |
| `avatarParticipantName` | `string` | The name of the avatar participant in the room. Defaults to `'lemonslice-avatar-agent'`. |
| `connOptions` | `APIConnectOptions` | Connection options for API requests (retry count, timeout, etc.). |

Use `extraPayload` for LemonSlice API fields that are not yet modeled directly by the SDK.

## Environment Variables

| Variable | Description |
|----------|-------------|
| `LEMONSLICE_API_KEY` | Your LemonSlice API key |
| `LEMONSLICE_API_URL` | Custom LemonSlice API URL (optional) |
| `LIVEKIT_URL` | Your LiveKit server URL |
| `LIVEKIT_API_KEY` | Your LiveKit API key |
| `LIVEKIT_API_SECRET` | Your LiveKit API secret |
npm package: @livekit/agents-plugin-livekit
Description: Additional utilities for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# Additional utilities for LiveKit Agents

The Agents 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.

This package contains additional utilities provided by LiveKit.
Refer to the [documentation](https://docs.livekit.io/agents/overview/) for
information on how to use it, or browse the [API
reference](https://docs.livekit.io/agents-js/modules/plugins_agents_plugin_livekit.html).
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/agents-plugin-neuphonic
Description: Neuphonic plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# Neuphonic plugin for LiveKit Agents

The Agents 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.

This package contains the Neuphonic plugin, which allows for voice synthesis.
Refer to the [documentation](https://docs.livekit.io/agents/overview/) for
information on how to use it.
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/agents-plugin-openai
Description: OpenAI plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# OpenAI plugin for LiveKit Agents

The Agents 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.

This package contains the OpenAI plugin, which allows for TTS, STT, LLM, as well
as using the Realtime API and Responses API. Refer to the
[documentation](https://docs.livekit.io/agents/overview/) for information on how
to use it, or browse the [API
reference](https://docs.livekit.io/agents-js/modules/plugins_agents_plugin_openai.html).
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/agents-plugin-resemble
Description: Resemble plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# Resemble plugin for LiveKit Agents

The Agents 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.

This package contains the Resemble plugin, which allows for voice synthesis.
Refer to the [documentation](https://docs.livekit.io/agents/overview/) for
information on how to use it, or browse the [API
reference](https://docs.livekit.io/agents-js/modules/plugins_agents_plugin_resemble.html).
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/agents-plugin-rime
Description: Rime plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# Rime plugin for LiveKit Agents

The Agents 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.

This package contains the Rime plugin, which provides high-quality text-to-speech (TTS) capabilities for voice synthesis. Refer to the
[documentation](https://docs.livekit.io/agents/overview/) for information on how to use it,
or browse the [API reference](https://docs.livekit.io/agents-js/modules/plugins_agents_plugin_rime.html).
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/agents-plugin-silero
Description: Silero voice activity detection LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# Silero plugin for LiveKit Agents

The Agents 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.

This package contains the Silero plugin, providing voice activity detection.
Refer to the [documentation](https://docs.livekit.io/agents/overview/) for
information on how to use it, or browse the [API
reference](https://docs.livekit.io/agents-js/modules/plugins_agents_plugin_silero.html).
See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/agents-plugin-trugen
Description: Trugen avatar plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2026 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->

# Trugen plugin for LiveKit Agents

Support for [Trugen](https://trugen.ai) realtime avatars.

See [https://docs.trugen.ai](https://docs.trugen.ai) for more information.

## Installation

```bash
npm install @livekit/agents-plugin-trugen
```

or

```bash
pnpm add @livekit/agents-plugin-trugen
```

## Pre-requisites

Create a developer API key from the [Trugen dashboard](https://app.trugen.ai) and set the `TRUGEN_API_KEY` environment variable with it:

```bash
export TRUGEN_API_KEY=<your-trugen-api-key>
```

## Usage

```typescript
import { AvatarSession } from '@livekit/agents-plugin-trugen';
                                                                                                                                                 
  // inside your existing defineAgent entry function:                                                                                            

  const avatarSession = new AvatarSession({
    avatarId: process.env.TRUGEN_AVATAR_ID, // optional
    apiKey: process.env.TRUGEN_API_KEY,
  });

  // must be called BEFORE agentSession.start()
  await avatarSession.start(agentSession, room, {
    livekitUrl: process.env.LIVEKIT_URL,
    livekitApiKey: process.env.LIVEKIT_API_KEY,
    livekitApiSecret: process.env.LIVEKIT_API_SECRET,
  });
```

## API

### `AvatarSession`

Creates a new Trugen avatar session.

#### Constructor Options

- `avatarId?: string | null` - The avatar ID to use. Defaults to stock avatar.
- `apiUrl?: string` - The Trugen API URL. Can also be set via `TRUGEN_API_URL` environment variable. Defaults to `https://api.trugen.ai`.
- `apiKey?: string` - Your Trugen API key. Can also be set via `TRUGEN_API_KEY` environment variable.
- `avatarParticipantIdentity?: string` - The identity for the avatar participant. Defaults to `'trugen-avatar'`.
- `avatarParticipantName?: string` - The name for the avatar participant. Defaults to `'Trugen Avatar'`.
- `connOptions?: APIConnectOptions` - Connection options for retry logic.

#### Methods

##### `start(agentSession: voice.AgentSession, room: Room, options?: StartOptions): Promise<void>`

Starts the avatar session and connects it to the room.

**Options:**
- `livekitUrl?: string` - The LiveKit server URL. Can also be set via `LIVEKIT_URL` environment variable.
- `livekitApiKey?: string` - Your LiveKit API key. Can also be set via `LIVEKIT_API_KEY` environment variable.
- `livekitApiSecret?: string` - Your LiveKit API secret. Can also be set via `LIVEKIT_API_SECRET` environment variable.

## License

Apache 2.0
npm package: @livekit/agents-plugin-xai
Description: xAI plugin for LiveKit Node Agents
Author: LiveKit
Latest version: 1.2.6

<!--
SPDX-FileCopyrightText: 2024 LiveKit, Inc.

SPDX-License-Identifier: Apache-2.0
-->
# xAI plugin for LiveKit Agents

The Agents 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.

This package contains the xAI plugin, which provides access to xAI's Grok models
via the Realtime API. Refer to the
[documentation](https://docs.livekit.io/agents/overview/) for information on how
to use it.

See the [repository](https://github.com/livekit/agents-js) for more information
about the framework as a whole.
npm package: @livekit/components-core
Description: This package is a wrapper around the [livekit/client-sdk-js](https://github.com/livekit/client-sdk-js) package. It transforms the event based logic into simple to use observable state and component level APIs. This package is the core for all framework sp
Author: LiveKit
Latest version: 0.12.13

# LiveKit Components **Core**

This package is a wrapper around the [livekit/client-sdk-js](https://github.com/livekit/client-sdk-js) package. It transforms the event based logic into simple to use observable state and component level APIs. This package is the core for all framework specific implementations.

> **Warning** this is a internal package and not intended to be used directly.

<!--NAV_START-->

## Monorepo Navigation

- [Home](../../README.md)
- **Framework Implementations**:
  - [React](../../packages/react/README.md)
- **Examples**
  - [Next.js](../../examples/nextjs/README.md)
- **Internal Packages**
  - [Core 👈](../../packages/core/README.md)
  - [Styles](../../packages/styles/README.md)

<!--NAV_END-->
npm package: @livekit/components-styles
Description: Beautiful base styling for LiveKit components that you can use as is, build upon, or create your own.
Author: LiveKit
Latest version: 1.2.0

# LiveKit Components **Styles**

Beautiful base styling for LiveKit components that you can use as is, build upon, or create your own.

<!--NAV_START-->

## Monorepo Navigation

- [Home](../../README.md)
- **Framework Implementations**:
  - [React](../../packages/react/README.md)
- **Examples**
  - [Next.js](../../examples/nextjs/README.md)
- **Internal Packages**
  - [Core](../../packages/core/README.md)
  - [Styles 👈](../../packages/styles/README.md)

<!--NAV_END-->

### Dev notes

#### Prefix

To avoid collisions CSS all CSS selector used for LiveKit Components (classes, CSS variables, and custom data attributes) are given the same prefix. To avoid typing redundant prefixes and keep the door open for user-defined prefixes, we use PostCSS plugins (see [postcss.config.js](postcss.config.js)) to add the prefix during the build step. This means that you should never write a prefix inside this styles package.

The PostCSS plugins transform the CSS selectors as follows, to make it easier to understand here are a few examples with a prefix of "lk":

| no prefix               | with `lk` prefix           |
| ----------------------- | -------------------------- |
| `.button`               | `.lk-button`               |
| `--border-color`        | `--lk-border-color`        |
| `var(--fg)`             | `var(--lk-fg)`             |
| `[data-active='false']` | `[data-lk-active='false']` |
| `&[data-muted='true']`  | `&[data-lk-muted='true']`  |

#### ⚠️ Currently not supported prefix:

| no prefix                     | with `lk` prefix                 |
| ----------------------------- | -------------------------------- |
| `attr(data-participant-name)` | `attr(data-lk-participant-name)` |

#### `@include` vs `@extend`

> @mixin is used to group css code that has to be reused a no of times. Whereas the @extend is used in SASS to inherit(share) the properties from another css selector. @extend is most useful when the elements are almost same or identical.

The compiled css output would suggest to use `@extend` in cases where css classes should inherit from parent classes (e.g. `.disconnect-button` inherits base properties from `.button`).

```

```
npm package: @livekit/mutex
Description: Tiny mutex helper
Latest version: 1.1.1

## Installation

```
pnpm add @livekit/mutex
```

## Usage

```ts
import { Mutex } from '@livekit/mutex';

const myLock = new Mutex();

const unlock = await myLock.lock();

try {
    ...
}
finally {
    unlock();
}
```