Skip to main content
Create a new Pipecat project with guided setup for bot type, transport, AI services, and deployment options. Supports both an interactive wizard and a fully non-interactive mode for automation. Usage:
To make an existing project agent-ready (so an AI coding assistant follows Pipecat conventions and can drive pipecat create for you), see pipecat init.
Arguments:
string
The exact directory to scaffold into. pipecat create . scaffolds into the current directory and pipecat create my-bot into ./my-bot, with the project name derived from the directory. Omit it to instead create a <name> subfolder under --output (or the current directory). Pass either TARGET_DIR or --output, not both.
Options:
string
Output directory where files will be saved. Defaults to current directory.
string
Project name. Providing this flag triggers non-interactive mode.
string
Bot type: web or telephony. Optional — inferred from --transport when omitted (telephony if any transport is a telephony provider, otherwise web).
string
Transport provider. Repeatable for multiple transports (e.g. -t daily -t smallwebrtc). Valid values: daily, smallwebrtc, twilio, telnyx, plivo, exotel, daily_pstn, twilio_daily_sip.
string
Pipeline mode: cascade or realtime.
string
Speech-to-Text service (cascade mode). e.g. deepgram_stt, openai_stt.
string
Language model service (cascade mode). e.g. openai_llm, anthropic_llm.
string
Text-to-Speech service (cascade mode). e.g. cartesia_tts, elevenlabs_tts.
string
Realtime service (realtime mode). e.g. openai_realtime, gemini_live_realtime.
string
Video avatar service (web bots only). e.g. heygen_video, tavus_video, simli_video.
string
Client framework (web bots only): react, vanilla, or none.
string
Client dev server (when using --client-framework react): vite or nextjs.
string
Daily PSTN mode (required when transport is daily_pstn): dial-in or dial-out.
string
Twilio + Daily SIP mode (required when transport is twilio_daily_sip): dial-in or dial-out.
boolean
default:"false"
Enable audio recording.
boolean
default:"false"
Enable transcription logging.
boolean
default:"false"
Enable video input (web bots only).
boolean
default:"false"
Enable video output (web bots only).
boolean
default:"true"
Generate Pipecat Cloud deployment files (Dockerfile, pcc-deploy.toml).
boolean
default:"false"
Enable Krisp noise cancellation (requires cloud deployment).
boolean
default:"false"
Enable observability.
boolean
default:"false"
Make the generated bot eval-ready: add an eval transport entry and starter scenarios in server/evals/, plus the dependencies to run them. See the evals docs for the verification workflow.
string
Path to a JSON config file. Triggers non-interactive mode. CLI flags override file values.
boolean
default:"false"
Print the resolved configuration as JSON without generating any files.
boolean
default:"false"
Print all available service options as JSON and exit. Useful for CI scripts and coding agents that need to discover valid values at runtime.

Quickstart Project

To scaffold the canned quickstart project (sensible defaults, no prompts):

Interactive Setup

When run without --name or --config, the CLI guides you through selecting:
  • Bot type and client framework - Phone, web (Next.js, Vite, Vanilla JS), or mobile
  • Transport provider - Daily, Twilio, Telnyx, Plivo, Exotel
  • Pipeline mode - Cascade or Realtime
  • AI services - STT, LLM, and TTS providers
  • Optional features - Additional capabilities for your bot
  • Deployment target - Local development or Pipecat Cloud

Non-Interactive Mode

When --name or --config is provided, all configuration is taken from CLI flags or a JSON config file with no interactive prompts. This is useful for automation, scripting, and coding agents. (When you scaffold in place with a TARGET_DIR, supplying --bot-type or --config is enough to go non-interactive — the project name is derived from the directory.) All required fields must be specified or the command exits with a list of all missing/invalid fields. Bot type is not required — it’s inferred from --transport when omitted.

Examples

Interactive Wizard

In-Place (current directory)

Scaffolds into the current directory, deriving the project name from it. Bot type is inferred from the transport (web here), so --bot-type is optional.

Non-Interactive (Cascade)

Non-Interactive (Realtime)

Multiple Transports

With React Client

Telephony

Eval-Ready Bot

Discover Available Options

Output:
This is useful for scripting — for example, to pick a random TTS provider:

Dry Run

From Config File

Sample project-config.json:
CLI flags override any values in the file, so you can use a base config and customize per-run:

Specify Output Directory

Generated Project Structure