Overview
lua voice is the entry point for testing voice-enabled agents. You can talk to your agent live in the browser, run automated voice tests against *.voice.test.ts files, and inspect which voice primitives are wired into your agent.
Subcommands
| Action | What it does |
|---|---|
| (default) | Interactive live test. Pick an agent, then a voice, then start a browser session. |
test | Run *.voice.test.ts files via Jest or Vitest. |
list | List LuaVoice primitives in the compiled manifest. |
Live Test Options
These apply to the defaultlua voice invocation.
| Option | Description |
|---|---|
--agent <name> | Agent name. Skips the agent picker when your project has multiple agents with voices. |
--voice <name> | Voice name. Skips the voice picker when an agent has multiple voices. Defaults to the primary voice. |
--context <json> | Seed initial conversation context as a JSON object. |
--thread-id <id> | Custom thread ID suffix for sandbox API scoping. |
Live Test Examples
lua voice test — Automated Voice Tests
Runs your project’s *.voice.test.ts files via Jest or Vitest. Lua auto-detects which runner you’re using; pass --runner to force one.
| Option | Description |
|---|---|
--voice <name> | Run only <name>.voice.test.ts (filename match). |
--pattern <regex> | Test path pattern. Default: \.voice\.test\.. Overrides --voice if both set. |
--watch | Re-run tests on file change. |
--bail | Stop on first failing test. |
--runner <runner> | Force runner: jest, vitest, or auto (default). |
lua voice list
Prints the LuaVoice primitives defined in your compiled manifest. Useful for sanity-checking that all your voice agents and voices are wired up after a compile.
| Option | Description |
|---|---|
--json | Output as JSON for scripting. |
Related
- Persona Command — channel-aware personas including
voicebranch - LuaAgent API
- Voice API — define voices in code with
LuaVoice

