Optional target directory. Use
. to scaffold into the current directory without creating a <name> subfolder (same convention as npm create vite@latest .). When provided, the project name defaults to the directory’s basename unless overridden with --name. Omit this argument to create a <name> subfolder (legacy behavior).Output directory where files will be saved. Defaults to current directory. Creates a
<name> subfolder within this directory. Mutually exclusive with TARGET.Project name. Providing this flag triggers non-interactive mode.
Bot type:
web or telephony.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.Pipeline mode:
cascade or realtime.Speech-to-Text service (cascade mode). e.g.
deepgram_stt, openai_stt.Language model service (cascade mode). e.g.
openai_llm, anthropic_llm.Text-to-Speech service (cascade mode). e.g.
cartesia_tts, elevenlabs_tts.Realtime service (realtime mode). e.g.
openai_realtime,
gemini_live_realtime.Video avatar service (web bots only). e.g.
heygen_video, tavus_video,
simli_video.Client framework (web bots only):
react, vanilla, or none.Client dev server (when using
--client-framework react): vite or nextjs.Daily PSTN mode (required when transport is
daily_pstn): dial-in or
dial-out.Twilio + Daily SIP mode (required when transport is
twilio_daily_sip):
dial-in or dial-out.Enable audio recording.
Enable transcription logging.
Enable video input (web bots only).
Enable video output (web bots only).
Generate Pipecat Cloud deployment files (Dockerfile, pcc-deploy.toml).
Enable Krisp noise cancellation (requires cloud deployment).
Enable observability.
Path to a JSON config file. Triggers non-interactive mode. CLI flags override
file values.
Print the resolved configuration as JSON without generating any files.
Print all available service options as JSON and exit. Useful for CI scripts
and coding agents that need to discover valid values at runtime.
Interactive Setup
When run without--name or --config, the CLI guides you through selecting:
- Project name - Defaults to the target directory’s basename if a
TARGETwas provided (e.g.,pc init .uses the current directory name) - 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.
All required fields must be specified or the command exits with a list of all missing/invalid fields.
Examples
Interactive Wizard
Scaffold Into Current Directory
Non-Interactive (Cascade)
In-Place With Custom Options
Non-Interactive (Realtime)
Multiple Transports
With React Client
Telephony
Discover Available Options
Dry Run
From Config File
project-config.json:
Specify Output Directory
Generated Project Structure
When scaffolding with a project name (default behavior):pc init .), the files are created directly in the target directory without a project name subfolder: