Skip to main content

App templates

First-party LiveKit app templates, and the LiveKit CLI commands that create apps from them and fill their environment variables with project credentials.

On this page

Overview

First-party templates give you a working agent, frontend, mobile app, or backend. The CLI has two commands that create a project from a template:

  • lk agent init creates an agent. It also sets up your coding agent in the new project, and it can deploy the agent to LiveKit Cloud. Without --template, it asks for Python or Node.js and uses the starter for that language.
  • lk app create creates any other app, such as a frontend, a mobile app, or a token server. Without --template, it shows the full list of templates.

Both commands fill the environment variables of the new project with credentials from --project or the default project. To fill them for an app that you already have, use lk app env. To install the CLI, see Install the CLI.

Templates

These are the first-party templates. Create an agent from an Agent template with lk agent init, and any other app with lk app create.

TemplateTypeDescription
agent-starter-python AgentA starter project for Python, featuring a simple voice agent implementation
multi-agent-python AgentA team of writing coach agents demonstrating multi-agent workflows
outbound-caller-python AgentAn agent that makes outbound calls using LiveKit SIP
agent-starter-node AgentA starter project for Node.js, featuring a simple voice agent implementation
agent-starter-react FrontendA starter app for Next.js, featuring a flexible voice AI frontend
agent-starter-android Mobile appA starter project for Android, featuring a flexible voice AI frontend
agent-starter-swift Mobile appA starter project for Swift, featuring a flexible voice AI frontend
agent-starter-flutter Mobile appA starter project for Flutter, featuring a flexible voice AI frontend
agent-starter-react-native Mobile appA starter project for Expo, featuring a flexible voice AI frontend
meet FrontendAn open source video conferencing app built on LiveKit Components, LiveKit Cloud, and Next.js
token-server BackendA hosted token server to help you prototype your mobile applications faster
GitHub

LiveKit Template Index

Browse all available first-party templates.

Create

Create a new app from a template, with its environment variables filled from your project. For first-party templates, see Templates. To create an agent, use lk agent init instead, which also sets up your coding agent and can deploy the agent.

lk app create [options] APP_NAME

Options for app create:

  • APP_NAME: Name of the app directory. Prompts if omitted.
  • --template TEMPLATE: Template name from list-templates. Prompts if neither this nor --template-url is set.
  • --template-url URL: URL of a template repository or archive. Can't be used with --template.
  • --install: Install dependencies without prompting. If you leave it out, the CLI asks, or skips the install when it can't ask. To skip without a prompt, pass --install=false.

Examples

Create a Next.js voice AI frontend and install its dependencies:

lk app create --template agent-starter-react --install my-frontend

Create an app from your own template repository:

lk app create --template-url https://github.com/<your-org>/<your-template> my-app

List templates

List the templates that lk app create and lk agent init can use.

lk app list-templates [options]

To print the list as JSON, pass --json (alias -j).

Examples

List the available templates:

lk app list-templates

Env

Generate environment variables for an existing app. The CLI fills the LiveKit URL and credentials from your project, prompts for any other variables in .env.example, and prints the result.

With --user-auth, lk app env and lk app create get an API key for the app. They can create a service account key, even when lk app env only prints the variables. To learn more, see API keys for agents and apps.

lk app env [options] [DIR]

Options for app env:

  • DIR: App directory. Default: the current directory.
  • --write, -w: Write to the destination file instead of printing. Merges into an existing file, keeping its values except the LiveKit credentials. Default: false.
  • --destination FILE, -d FILE: File to write to, relative to DIR. Default: .env.local.
  • --overwrite, -o: Replace the destination file instead of merging. Default: false.
  • --example FILE, -e FILE: Example file to read variable names from, relative to DIR. Default: .env.example.

Examples

Print the variables for the app in the current directory:

lk app env

Write the variables for the staging project to .env.local in my-app:

lk app env --project staging --write my-app