Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 46 additions & 2 deletions api-reference/cli/init.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,19 @@ Create a new Pipecat project with guided setup for bot type, transport, AI servi
**Usage:**

```shell
pipecat init [OPTIONS]
pipecat init [TARGET] [OPTIONS]
```

**Arguments:**

<ParamField path="TARGET" type="string">
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).
</ParamField>

**Options:**

<ParamField path="--output / -o" type="string">
Output directory where files will be saved. Defaults to current directory.
Output directory where files will be saved. Defaults to current directory. Creates a `<name>` subfolder within this directory. Mutually exclusive with `TARGET`.
</ParamField>

<ParamField path="--name / -n" type="string">
Expand Down Expand Up @@ -145,6 +151,7 @@ pipecat init [OPTIONS]

When run without `--name` or `--config`, the CLI guides you through selecting:

- **Project name** - Defaults to the target directory's basename if a `TARGET` was 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
Expand All @@ -166,13 +173,30 @@ All required fields must be specified or the command exits with a list of all mi
pipecat init
```

### Scaffold Into Current Directory

```shell
# In-place mode: scaffolds into `.` without creating a subfolder
# Project name is derived from the directory name
pipecat init .
```

### Non-Interactive (Cascade)

```shell
pipecat init --name my-bot --bot-type web --transport daily \
--mode cascade --stt deepgram_stt --llm openai_llm --tts cartesia_tts
```

### In-Place With Custom Options

```shell
# Combine in-place scaffolding with non-interactive flags
# Project name still derived from directory unless --name is provided
pipecat init . --bot-type web --transport daily \
--mode cascade --stt deepgram_stt --llm openai_llm --tts cartesia_tts
```

### Non-Interactive (Realtime)

```shell
Expand Down Expand Up @@ -282,6 +306,8 @@ pipecat init --output my-bot

## Generated Project Structure

When scaffolding with a project name (default behavior):

```
mybot/
├── server/ # Python bot server
Expand All @@ -297,3 +323,21 @@ mybot/
├── .gitignore
└── README.md # Project setup instructions
```

When using in-place mode (`pc init .`), the files are created directly in the target directory without a project name subfolder:

```
./
├── server/ # Python bot server
│ ├── bot.py # Main bot implementation
│ ├── pyproject.toml # Python dependencies
│ ├── .env.example # Environment variables template
│ ├── Dockerfile # Container image (if cloud enabled)
│ └── pcc-deploy.toml # Deployment config (if cloud enabled)
├── client/ # Web client (if generated)
│ ├── src/
│ ├── package.json
│ └── ...
├── .gitignore
└── README.md # Project setup instructions
```
Loading