
Description
Deploy an agent to Pipecat Cloud
SKILL.md
Deploy an agent to Pipecat Cloud. This skill walks through the full deployment process interactively, confirming each step with the user.
Arguments
/deploy [--config <PATH>] [--env <PATH>]
--config(optional): Path topcc-deploy.toml. Defaults topcc-deploy.tomlin the current directory.--env(optional): Path to.envfile for creating secrets. If not provided, the skill will look for a.envfile in the same directory as the config file.
Examples:
/deploy/deploy --config examples/mybot/pcc-deploy.toml/deploy --config examples/mybot/pcc-deploy.toml --env examples/mybot/.env
Prerequisites
Before starting, verify these prerequisites and inform the user about any that are missing:
- Pipecat CLI: Check if
pipecatis installed by runningpipecat --version. If not installed, tell the user to install it withuv tool install pipecat-ai-cliand stop. - Pipecat Cloud authentication: Check if
pipecat cloud auth whoamisucceeds. If not authenticated, do not try to run login yourself —pipecat cloud auth loginopens a browser for an OAuth flow that Claude can't complete. Instead, tell the user to authenticate by runningpipecat cloud auth loginin their terminal (suggest the! pipecat cloud auth loginform so the output lands in the session). Wait for them to confirm, then re-runpipecat cloud auth whoamito verify before proceeding. - Configuration file: Read the
pcc-deploy.tomlfile (from--configargument or current directory). If it doesn't exist, tell the user they need apcc-deploy.tomland stop. Parse and display the configuration to the user (agent_name, image, secret_set, etc.).
If any prerequisite fails, stop and clearly explain what needs to be fixed. Do not proceed to the next steps.
Deployment Method
After prerequisites pass, ask the user how they want to deploy using AskUserQuestion:
- Cloud Build (Recommended): Pipecat Cloud builds your Docker image from source. No local Docker required.
- Self-managed image: Build and push your own Docker image from your machine, then deploy.
Important: Running Commands
All pipecat cloud commands must be run from the directory containing the pcc-deploy.toml file. Use cd <dir> && <command> to ensure the correct working directory.
Several pipecat cloud commands prompt for interactive confirmation which doesn't work in this environment. Skip the prompts with these flags:
pipecat cloud deploy: Use--force(e.g.,pipecat cloud deploy --force)pipecat cloud secrets set: Use the--skipflag (e.g.,pipecat cloud secrets set NAME --file .env --skip)
pipecat cloud docker build-push runs non-interactively and has no confirmation prompt, so no extra flag is needed.
Cloud Build Path
This path uses Pipecat Cloud to build your Docker image from source. No local Docker installation is required.
Step 1: Verify Dockerfile and Lockfile
Check that a Dockerfile exists in the build context directory (the directory containing pcc-deploy.toml, or the context_dir from the [build] section of the config). If no Dockerfile is found, tell the user they need one and stop.
If the Dockerfile references uv (e.g., uv sync, uv pip install, COPY uv.lock), check that a uv.lock file exists in the build context directory. If it doesn't exist, run uv lock to generate it. If it already exists, run uv lock to ensure it's up to date. The lockfile must be present and current because cloud builds run remotely and cannot generate it.
Step 2: Secrets Setup
Ask the user if they need to create or update secrets for this deployment.
- If yes, determine the env file path (from
--envargument, or look for.envin the same directory as the config file, or ask the user). - Read the
secret_setname from thepcc-deploy.tomlconfiguration. - Run:
pipecat cloud secrets set {SECRET_SET_NAME} --file {ENV_FILE_PATH} --skip - Show the output to the user.
- If no, skip this step.
Step 3: Deploy
Ask the user to confirm they want to deploy the agent.
- Show a summary of what will be deployed (agent_name, secret_set from the config).
- Run from the config directory:
pipecat cloud deploy --force - Use a generous timeout (10 minutes) as the cloud build and deployment can take a while.
- This command handles both the cloud build and the deployment automatically.
- If the command times out but no error occurred, retrieve the build ID from the command output and run
pipecat cloud build logs {BUILD_ID}to check build progress. Share the output with the user. - If the build succeeds but deployment times out, check agent logs with
pipecat cloud agent logs {AGENT_NAME}and share with the user. - Show the deployment output and status to the user.
Cloud Build Error Handling
- If the build fails, retrieve the build ID from the command output and run
pipecat cloud build logs {BUILD_ID}to show the user what went wrong. - Common cloud build issues:
- Missing or invalid Dockerfile
- Build context too large (500MB limit) — check for large files that should be in
.dockerignore - Build timeout — the build exceeded the maximum duration
Self-Managed Image Path
This path builds and pushes the Docker image from your machine. Requires Docker to be installed and running.
Step 1: Docker Prerequisites
Check these additional prerequisites:
- Docker: Check if
docker infosucceeds (daemon running). If not, tell the user to start Docker and stop. - Docker login: Check if
docker loginsucceeds. If not logged in, tell the user to rundocker loginand stop.
Step 2: Secrets Setup
Ask the user if they need to create or update secrets for this deployment.
- If yes, determine the env file path (from
--envargument, or look for.envin the same directory as the config file, or ask the user). - Read the
secret_setname from thepcc-deploy.tomlconfiguration. - Run:
pipecat cloud secrets set {SECRET_SET_NAME} --file {ENV_FILE_PATH} --skip - Show the output to the user.
- If no, skip this step.
Step 3: Build and Push Docker Image
Ask the user if they want to build and push the Docker image.
- If yes:
- First, check if
uv.lockexists in the config directory. If so, runuv lockto ensure it's up to date before building. - Run from the config directory:
pipecat cloud docker build-push - Use a generous timeout (5 minutes) as builds can take a while.
- If the build fails due to a stale lockfile, run
uv lockin the config directory and retry. - If the build fails for other reasons, show the error and ask the user how to proceed.
- First, check if
- If no, skip this step (image may already be pushed).
Step 4: Deploy
Ask the user to confirm they want to deploy the agent.
- Show a summary of what will be deployed (agent_name, image, secret_set from the config).
- Run from the config directory:
pipecat cloud deploy --force - Use a generous timeout (5 minutes) as deployment may take time to reach ready state.
- If deployment times out but no error occurred, check logs with
pipecat cloud agent logs {AGENT_NAME}and share with the user — the deployment may still be starting up. - Show the deployment output and status to the user.
Self-Managed Image Error Handling
- Common issues:
- Docker not logged in to the image registry (
docker login) - Missing
imagefield inpcc-deploy.toml - Stale
uv.lockfile — runuv lockto fix
- Docker not logged in to the image registry (
General Error Handling
- If any
pipecat cloudcommand fails, show the full error output and explain what might have gone wrong. - Common issues for both paths:
- Invalid or expired Pipecat Cloud authentication
- Missing or malformed
pcc-deploy.toml - Secret set name mismatch between config and what exists in Pipecat Cloud
Completion
After a successful deployment, summarize what was done:
- Deployment method used (cloud build or self-managed image)
- Secrets created/updated (if applicable)
- Image built and pushed (if applicable)
- Agent deployed with name from config