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.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)
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
Dry Run
From Config File
project-config.json: