tavus) is a Typer-based command-line client for the Tavus API. It manages PALs, faces, conversations, and the full agentic resource library (guardrails, objectives, tools, pronunciation dictionaries), plus the conversational PAL builder and text-only chat mode.
The CLI and the Tavus MCP server share the same backend client. Use the CLI for scripting and manual workflows; use MCP when an agent should drive Tavus through tools.
tavus pal build; the MCP equivalent is tavus_pal_build_and_verify.
Install
The CLI is distributed as thetavus-cli Python package and exposes a tavus command on your PATH.
1
Step 1: Install the package
- uv
- pip
tavus-cli is the package name; confirm the package index you install from with your Tavus contact.2
Step 2: Select an environment (optional)
The CLI defaults to the production environment (
PROD). To target the test database, set TAVUS_ENV=TEST in your shell or pass --env TEST on any command.3
Step 3: Verify the install
tavus doctor prints the selected environment, the resolved API base URLs, the PAL Maker URL, and the auth source, then checks API reachability. Pass --skip-network to validate local configuration only.Authenticate
Browser login (recommended)
/dev/cli-authorize with a loopback callback URL and an anti-CSRF state token. After you sign in, PAL Maker mints an API key for your account (tagged source: cli) and POSTs it back to the local loopback receiver. The CLI then stores the key in your OS keychain, scoped to the selected environment.
To store an existing key instead of opening the browser, pass --api-key (and optionally --name to label the minted key):
API key fallback
For automation, setTAVUS_API_KEY directly instead of using the keychain:
TAVUS_TEST_API_KEY, TAVUS_STG_API_KEY, and TAVUS_PROD_API_KEY.
Environments
Every command accepts a global--env / -e option that sets TAVUS_ENV. Recognized values are TEST, STG, and PROD (default). When unset, the CLI targets PROD.
JSON round-tripping
The CLI moves structured payloads through JSON consistently:- Most commands print JSON by default; commands with table output expose a
--jsonflag to switch to raw JSON. - File inputs (
--file,--layers-file,--patch-file) are parsed withjson.loads(). - The
pal patch--valueoption attempts a JSON parse first, then falls back to a plain string if parsing fails, so wrap string values in quotes (e.g.--value '"New Name"'). - Repeatable options (
--memory,--guardrail-id,--tag,--document-id, etc.) are collected into lists in the request body.
Examples
Command reference
All sub-apps support-h / --help, and invoking a sub-app with no arguments prints its help.
Top-level commands
tavus auth
tavus pal
Tools are first-class objects: attach them after creating a PAL with
tavus pal tools attach rather than inlining them at create time.tavus pal tools
tavus pal capabilities
Manage the built-in PAL Maker capabilities - Magic Canvas, Slide Presenter, Web Search, Perception, and Memory - with friendly IDs instead of raw JSON Patch. Accepted capability IDs are magic_canvas, slide_presenter, web_search, perception, and memory (the portal IDs builtin:magic_canvas, builtin:slide_presenter, builtin:web_search, and skill:memory also work).
Magic Canvas, Slide Presenter, Web Search, and Memory persist through the PAL’s skills (
/pals/{id}/skills); Perception persists through layers.perception. pal capabilities handles that difference for you - prefer it over pal skills for these five.tavus pal skills
Lower-level access to the raw RQH skills attached to a PAL. Use pal capabilities for the five PAL Maker capabilities; reach for pal skills only when you need to work with a skill by its raw registry ID.
tavus pal knowledge
Manage a PAL’s Knowledge section - the document_ids and document_tags it draws on for retrieval, plus RAG tuning under layers.knowledge_base. Create the underlying documents first with tavus document.
tavus face
tavus conversation
tavus resource
tavus document
Manage Knowledge documents - the account-level records that back a PAL’s Knowledge section. With a normal Tavus API key you can create documents from an already-reachable URL; local file upload uses the same portal-only path as PAL Maker (local file → tavus-api upload/S3 URL → document record) and therefore requires a Firebase portal bearer token in TAVUS_PORTAL_BEARER_TOKEN. Attach documents to a PAL with tavus pal knowledge.
tavus guardrail
tavus objective
tavus tool
tavus skill
Browse the RQH skill registry - the skills that back PAL capabilities. This lists what is available to attach; attach and configure per-PAL with tavus pal capabilities or tavus pal skills.

