pipecat init initializes a new Pipecat app. It’s the single entry point for building with Pipecat.
It gives you a choice about how to scaffold your project:
- Using a coding agent like Claude Code or Codex
- Using an interactive wizard
AGENTS.md and CLAUDE.md are provided so your favorite coding agent works well with Pipecat.
Usage:
Directory to initialize.
pipecat init my-bot targets ./my-bot; pipecat init . targets the current directory. With no argument and no scaffold
options, the CLI prompts for a directory. When scaffold options are present,
the bot is generated in-place in this directory (the project name is
derived from it); a missing TARGET_DIR then defaults to the current
directory. The special value quickstart (pipecat init quickstart)
scaffolds the canned quickstart bot into ./pipecat-quickstart (see
Quickstart Preset).Overwrite existing
AGENTS.md, CLAUDE.md, and GETTING_STARTED.md files.
By default existing guide files are kept, so your edits are never clobbered.--config) scaffolds a bot non-interactively, in-place in TARGET_DIR.
Bot type:
web or telephony. Optional — inferred from --transport when
omitted (telephony if any transport is a telephony provider, otherwise web).Transport provider. Repeatable for multiple transports (e.g.
-t daily -t smallwebrtc). Valid values: daily, livekit, smallwebrtc, twilio,
telnyx, plivo, exotel, daily_pstn, twilio_daily_sip.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.Path to a JSON config file. Triggers non-interactive scaffolding. CLI flags
override file values.
Print all available service options as JSON and exit. Useful for CI scripts
and coding agents that need to discover valid values at runtime.
Register the Pipecat Context Hub MCP
server with your coding agents, and offer to build its index.
Context Hub setup
On the coding-agent path,init sets up the Context Hub — the guides it writes tell your agent to query the hub, so it makes sure the hub is there to query.
Registration runs without asking: it’s instant, idempotent, and needs doing per project, since Claude Code stores MCP servers per project. init reports what came of it — it registers with every coding agent CLI it detects (Claude Code, Codex), a client that rejects the registration reports why, and if it finds no agent CLI at all it points you at pipecat context-hub install to print the config block for the editors configured by hand (Cursor, VS Code, Zed).
Building the index is the only prompt, and only appears when no index exists yet. It takes upwards of three minutes and about 900 MB of disk, so init asks rather than assuming. The index is shared across every project on the machine, so once it exists the question doesn’t return. A non-interactive run registers but never builds — it prints the refresh command instead.
Three paths skip setup, since none of them writes the agent-guide start-here: pipecat init quickstart, to stay a short path to a running bot; scaffolding a bot from flags or --config; and choosing “Scaffold a runnable bot now” in the interactive prompt. In each case the generated README carries the instructions instead. If you scaffolded that way — the route a coding agent takes — run pipecat context-hub install to wire the hub up.
Behavior
- Existing guide files are kept. Re-running
pipecat initnever overwrites an existingAGENTS.md,CLAUDE.md, orGETTING_STARTED.md, so your edits are safe. If a guide was written by an older Pipecat version, an interactive run offers to refresh it on the spot; a non-interactive run prints how. --overwrite-guiderefreshes them, overwriting the existing guide files with the current templates (for example, after upgrading Pipecat).GETTING_STARTED.mdis written on the coding-agent path only, not when scaffolding a bot.
Scaffolding a Bot
pipecat init scaffolds a complete project — bot.py, dependencies, config, and an optional client — in-place in the target directory, so the coding-agent guide and a runnable bot live together.
Interactive
With no scaffold options, an interactivepipecat init asks whether to build with a coding agent or scaffold a bot now. Choosing to scaffold runs a wizard for bot type, transport, AI services, and deployment options.
Non-Interactive
Passing any scaffold option (or--config) skips the prompts and builds the project from your flags and/or a config file — the path coding agents and automation use. The typical agent loop is:
--transport when omitted. Run pipecat init --list-options to discover valid service and transport values.
Quickstart Preset
./pipecat-quickstart and writes AGENTS.md + CLAUDE.md there (the generated README carries the Context Hub setup). It’s the fastest way to a running project that your coding agent can work with.
Examples
Initialize for a coding agent
Scaffold in place, non-interactively
web here), so --bot-type is optional.
Realtime bot
Multiple transports
With a React client
Telephony
Eval-ready bot
Refresh the guide files
Scaffold the quickstart project
Discover available options
Dry run
From a config file
project-config.json:
Generated Project Structure
React Client Components
When using--client-framework react, the generated client uses Pipecat UI components installed as source. The client renders the Console block (connect flow, transcript, metrics, device and session info, live event stream) with your project’s transport picker.
Components live under src/components/pipecat/ and can be customized directly. The generated components.json configures the @pipecat shadcn registry, so you can add more components:
--client-framework vanilla) uses plain JavaScript and CSS styled to match the Console theme.
The generated README.md includes a “Building with an AI coding agent” section with Pipecat Context Hub setup, so a scaffolded project is ready to extend with Claude Code or Codex.
Next Steps
Build Your Next Bot
The full flow: initialize a project, then build with a coding agent or
scaffold a bot