init について
initは、Pipecatプロジェクトの設定を案内し、`pipecat init`でBotを生成するスキルです。CLIの最新オプションを取得し、トランスポート、AIサービス、機能、デプロイファイルを設定します。
主な機能
- 01Pipecat CLIのインストール確認
- 02`--list-options`から最新の選択肢を取得
- 03Botとトランスポートの設定収集
- 04パイプラインサービスと機能の設定
- 05非対話型のプロジェクト生成
活用シーン
- 01Webまたは電話Botプロジェクトの開始
- 02トランスポートとAIサービスの選択
- 03現在のディレクトリへのプロジェクト生成
- 04プロジェクト設定時のデプロイファイル生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pipecat-ai/ skills --skill initインストール後、Claude Code で/initを入力して読み込まれたか確認します。
詳細
ユーザーから設定を収集し、非対話モードで pipecat init を実行して、新しい Pipecat プロジェクトをスキャフォールドします。
引数
/init [<target-dir>]
<target-dir>(任意): プロジェクトを作成するディレクトリ。デフォルトでは、プロジェクト名と同じ名前の新しいディレクトリになります。現在のディレクトリを使うには.を指定します。
前提条件
pipecat --version を実行して、pipecat がインストールされているか確認します。インストールされていない場合は、uv tool install pipecat-ai-cli でインストールするようユーザーに伝え、処理を停止します。
利用可能なオプションの確認
ユーザーに質問する前に、pipecat init --list-options を実行して、すべてのフィールドで現在有効な値を取得します。出力は JSON です:
{
"bot_type": ["web", "telephony"],
"transports": {
"web": ["daily", "smallwebrtc"],
"telephony": ["twilio", "telnyx", ...]
},
"stt": ["deepgram_stt", "openai_stt", ...],
"llm": ["openai_llm", "anthropic_llm", ...],
"tts": ["cartesia_tts", "elevenlabs_tts", ...],
"realtime": ["openai_realtime", "gemini_live_realtime", ...],
"video": ["heygen_video", "tavus_video", "simli_video"]
}
このデータを使って、以下の各質問の選択肢を設定します。サービス一覧をハードコードしないでください — 常に --list-options の値を使用します。
設定フロー
以下の質問を順に進めて、プロジェクト設定を構築します。すべての回答を収集したら、サマリーを表示してコマンドを実行します。
適切な対話方法の選択:
- AskUserQuestion — 選択肢が少なく固定されている質問 (ボットタイプ、パイプラインモード、クライアントフレームワーク、はい/いいえの質問) に使用します。クリック可能なクリーンな UI が提供されます。
- テキストで一覧を表示 — 選択肢が多い質問 (STT、LLM、TTS、リアルタイム、ビデオ、トランスポート) に使用します。
--list-optionsから取得した利用可能なオプションの完全な一覧を読みやすいリストとして表示し、ユーザーがチャットで選択肢を返信できるようにします。
ステップ 1: プロジェクト名
ユーザーにプロジェクト名を尋ねます。これは対象ディレクトリとして (位置引数で) 渡されます — プロジェクトはその名前のディレクトリ内にその場でスキャフォールドされ、プロジェクト識別子はそこから導出されます。
ステップ 2: ボットタイプ
ユーザーにボットタイプの選択を求めます:
- Web/モバイル (
web) - ブラウザまたはモバイルアプリ - テレフォニー (
telephony) - 電話通話
ステップ 3: クライアントフレームワーク (web のみ)
ボットタイプが web の場合、ユーザーにクライアントフレームワークの選択を求めます:
- React (
react) - Vanilla JS (
vanilla) - なし (
none) - サーバーのみ、クライアントは生成されません
ユーザーが React を選択した場合、どの開発サーバーを使うか尋ねます:
- Vite (
vite) - Next.js (
nextjs)
テレフォニーボットの場合は、このステップを完全にスキップします。
ステップ 4: トランスポート
選択したボットタイプでフィルタリングした、--list-options から利用可能なトランスポートの完全な一覧をユーザーに表示します。ユーザーがチャットで選択肢を返信できるようにします。
ユーザーが daily_pstn トランスポートを選択した場合、モードを尋ねます:
- ダイヤルイン (着信を受け取る) →
--daily-pstn-mode dial-inを使用 - ダイヤルアウト (発信する) →
--daily-pstn-mode dial-outを使用
ユーザーが twilio_daily_sip トランスポートを選択した場合、モードを尋ねます:
- ダイヤルイン (着信を受け取る) →
--twilio-daily-sip-mode dial-inを使用 - ダイヤルアウト (発信する) →
--twilio-daily-sip-mode dial-outを使用
次に、ローカルテスト用に追加のトランスポートを追加するかどうかを尋ねます。これはよくあるケースです — たとえば、開発用に WebRTC もサポートするテレフォニーボットなどです。
ステップ 5: パイプラインモード
ユーザーにパイプラインアーキテクチャの選択を求めます:
- カスケード (
cascade) - STT → LLM → TTS パイプライン - リアルタイム (
realtime) - 音声対音声モデル
ステップ 6: AI サービス
カスケードモードの場合、各サービスについて --list-options から利用可能なオプションの完全な一覧を表示し、ユーザーがチャットで選択肢を返信できるようにします:
- 音声テキスト変換 (STT) — 利用可能な STT サービスをすべて表示
- 言語モデル (LLM) — 利用可能な LLM サービスをすべて表示
- テキスト音声変換 (TTS) — 利用可能な TTS サービスをすべて表示
リアルタイムモードの場合、利用可能なリアルタイムサービスをすべて表示し、ユーザーがチャットで選択肢を返信できるようにします。
各サービスの質問では、選択肢を番号付きの縦並びリスト (1 行に 1 つ) として表示し、ユーザーが簡単に一覧を確認して 1 つ選べるようにします。
ステップ 7: 機能
ユーザーにデフォルトの機能設定を表示し、カスタマイズしたいかどうかを尋ねます。
デフォルト:
- 音声録音: いいえ
- 文字起こしログ: いいえ
- ビデオアバターサービス: なし
- ビデオ入力: いいえ (Web のみ)
- ビデオ出力: いいえ (Web のみ)
- オブザーバビリティ: いいえ
カスタマイズしたい場合は、各機能について尋ねます。ビデオアバターサービス (Web ボットのみ) については、--list-options のビデオオプションを使用します。
ビデオアバターサービスを選択した場合、ビデオ出力は自動的に有効になります。
ステップ 8: デプロイ
Pipecat Cloud のデプロイファイル (Dockerfile、pcc-deploy.toml) を生成するかどうかを尋ねます。デフォルトははいです。
クラウドにデプロイする場合は、Krisp ノイズキャンセレーションを有効にするかどうかを尋ねます。デフォルトはいいえです。
コマンドの構築
すべての回答を収集したら、非対話型フラグを使用して pipecat init コマンドを構築します。先頭にプロジェクト名を位置引数のターゲットディレクトリとして指定します。プロジェクトはそこにそのままスキャフォールドされます。
pipecat init <project_name> \
--bot-type <web|telephony> \
--transport <transport> \
--mode <cascade|realtime> \
[--stt <service>] \
[--llm <service>] \
[--tts <service>] \
[--realtime <service>] \
[--video <service>] \
[--client-framework <react|vanilla|none>] \
[--client-server <vite|nextjs>] \
[--daily-pstn-mode <dial-in|dial-out>] \
[--twilio-daily-sip-mode <dial-in|dial-out>] \
[--recording | --no-recording] \
[--transcription | --no-transcription] \
[--video-input | --no-video-input] \
[--video-output | --no-video-output] \
[--deploy-to-cloud | --no-deploy-to-cloud] \
[--enable-krisp | --no-enable-krisp] \
[--observability | --no-observability] \
[--eval | --no-eval]
スキャフォールドフラグを渡すと、pipecat init は非対話型 (プロンプトなし) で実行され、書き込まれるコーディングエージェントガイドファイル (AGENTS.md、CLAUDE.md) と並んで、実行可能なボットをその場にスキャフォールドします。
新しいディレクトリではなく現在のディレクトリにスキャフォールドするには、ターゲットとして . を使用します。
複数のトランスポートを使用する場合は、--transport フラグを繰り返します (例: --transport twilio --transport smallwebrtc)。
確認
コマンドを実行する前に、ユーザーに選択内容の概要を表示します:
- プロジェクト名
- ボットタイプ
- クライアントフレームワーク (Web の場合)
- トランスポート
- パイプラインモードとサービス
- 有効な機能
- デプロイ先
続行する前にユーザーに確認を求めます。変更したい場合は、戻ってその特定の質問を再度尋ねます。
コマンドの実行
pipecat init コマンドを実行します。位置引数のターゲットディレクトリが、プロジェクトを作成する場所を制御します。ユーザーが <target-dir> 引数を指定した場合はそれを使用し、そうでない場合はプロジェクト名にちなんだ新しいディレクトリをデフォルトとします。
コマンドが成功した場合は、生成された内容をユーザーに表示し、次のステップを提案します:
cd <project_name>/server.env.exampleを.envにコピーし、API キーを入力します- ボットを実行します
クラウドにデプロイする場合は、/pipecat-cloud:deploy を使用してデプロイできることも伝えます。
エラー処理
pipecat initが検証エラーで失敗した場合は、エラーを表示し、ユーザーが選択内容を修正できるよう支援します。- ターゲットディレクトリがすでに存在し、空でない場合は、続行する前にユーザーに警告します。