ワンクリックで
livekit-voice
LiveKit voice agent setup — room management, token generation, voice pipelines with STT/TTS, and real-time audio streaming.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
LiveKit voice agent setup — room management, token generation, voice pipelines with STT/TTS, and real-time audio streaming.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when user asks to 'lint agent configs', 'validate skills', 'check CLAUDE.md', 'validate hooks', 'lint MCP'. Validates agent configuration files against 385 rules.
Interprets Culture Index (CI) surveys, behavioral profiles, and personality assessment data. Supports individual profile interpretation, team composition analysis (gas/brake/glue), burnout detection, profile comparison, hiring profiles, manager coaching, interview transcript analysis for trait prediction, candidate debrief, onboarding planning, and conflict mediation. Accepts extracted JSON or PDF input via OpenCV extraction script.
Creates devcontainers with Claude Code, language-specific tooling (Python/Node/Rust/Go), and persistent volumes. Use when adding devcontainer support to a project, setting up isolated development environments, or configuring sandboxed Claude Code workspaces.
Analyzes smart contract codebases to identify state-changing entry points for security auditing. Detects externally callable functions that modify state, categorizes them by access level (public, admin, role-restricted, contract-only), and generates structured audit reports. Excludes view/pure/read-only functions. Use when auditing smart contracts (Solidity, Vyper, Solana/Rust, Move, TON, CosmWasm) or when asked to find entry points, audit flows, external functions, access control patterns, or privileged operations.
Draws 4 Tarot cards to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
Configures mewt or muton mutation testing campaigns — scopes targets, tunes timeouts, and optimizes long-running runs. Use when the user mentions mewt, muton, mutation testing, or wants to configure or optimize a mutation testing campaign.
| name | livekit-voice |
| description | LiveKit voice agent setup — room management, token generation, voice pipelines with STT/TTS, and real-time audio streaming. |
| version | 0.1.0 |
| author | Jero (LATTICE / MARPA Design Studios) |
| triggers | ["create a voice agent","livekit room","livekit token","voice pipeline","real-time voice","speech to text agent"] |
| tools | ["Bash","Read","Write","Edit"] |
USE WHEN the user wants to build real-time voice agents with LiveKit — creating rooms, generating access tokens, setting up STT/TTS voice pipelines, or building conversational AI agents with audio streaming.
Creates LiveKit-based voice agent applications with real-time audio streaming, speech-to-text, text-to-speech, and LLM-powered conversational pipelines.
from livekit.agents import (
AutoSubscribe,
JobContext,
WorkerOptions,
cli,
llm,
)
from livekit.agents.pipeline import VoicePipelineAgent
from livekit.plugins import deepgram, openai, silero
async def entrypoint(ctx: JobContext):
# Wait for a participant to connect
await ctx.connect(auto_subscribe=AutoSubscribe.AUDIO_ONLY)
participant = await ctx.wait_for_participant()
# Create the voice pipeline
agent = VoicePipelineAgent(
vad=silero.VAD.load(),
stt=deepgram.STT(),
llm=openai.LLM(model="gpt-4o"),
tts=openai.TTS(),
chat_ctx=llm.ChatContext().append(
role="system",
text="You are a helpful voice assistant. Be concise.",
),
)
# Start the agent
agent.start(ctx.room, participant)
await agent.say("Hello! How can I help you?")
if __name__ == "__main__":
cli.run_app(WorkerOptions(entrypoint_fnc=entrypoint))
from livekit import api
import os
def create_token(room_name: str, participant_name: str) -> str:
token = api.AccessToken(
os.environ["LIVEKIT_API_KEY"],
os.environ["LIVEKIT_API_SECRET"],
)
token.with_identity(participant_name)
token.with_name(participant_name)
token.with_grants(api.VideoGrants(
room_join=True,
room=room_name,
))
return token.to_jwt()
from livekit import api
import os
async def manage_rooms():
lk = api.LiveKitAPI(
os.environ["LIVEKIT_URL"],
os.environ["LIVEKIT_API_KEY"],
os.environ["LIVEKIT_API_SECRET"],
)
# List rooms
rooms = await lk.room.list_rooms(api.ListRoomsRequest())
# Create room
room = await lk.room.create_room(api.CreateRoomRequest(
name="my-room",
empty_timeout=300, # 5 min
max_participants=10,
))
# Delete room
await lk.room.delete_room(api.DeleteRoomRequest(room="my-room"))
await lk.aclose()
LIVEKIT_URL=ws://localhost:7880
LIVEKIT_API_KEY=your_api_key
LIVEKIT_API_SECRET=your_api_secret
DEEPGRAM_API_KEY=your_deepgram_key
OPENAI_API_KEY=your_openai_key
uv pip install "livekit-agents[codecs]~=1.0"
uv pip install livekit-plugins-deepgram livekit-plugins-openai livekit-plugins-silero
# Run the agent in dev mode
python agent.py dev
# Run in production
python agent.py start
# Start local LiveKit server for development
livekit-server --dev
# Use Deepgram for STT, ElevenLabs for TTS
from livekit.plugins import deepgram, elevenlabs
agent = VoicePipelineAgent(
vad=silero.VAD.load(),
stt=deepgram.STT(model="nova-2"),
llm=openai.LLM(model="gpt-4o"),
tts=elevenlabs.TTS(voice_id="your_voice_id"),
)
from livekit.agents import llm
class AssistantFunctions(llm.FunctionContext):
@llm.ai_callable(description="Get the weather for a location")
async def get_weather(self, location: str) -> str:
# Fetch weather data
return f"It's sunny in {location}"
agent = VoicePipelineAgent(
vad=silero.VAD.load(),
stt=deepgram.STT(),
llm=openai.LLM(model="gpt-4o"),
tts=openai.TTS(),
fnc_ctx=AssistantFunctions(),
)
agent = VoicePipelineAgent(
vad=silero.VAD.load(
min_speech_duration=0.1,
min_silence_duration=0.5,
activation_threshold=0.5,
),
# ... rest of pipeline
)
AutoSubscribe.AUDIO_ONLY for voice-only agents to save bandwidthempty_timeout on rooms to auto-cleanup idle roomslivekit-server --dev before deploying to cloud