Deploy to Pipecat Cloud
ActionsTags
(1)A GitHub Action that builds, pushes, and deploys your Pipecat agent to Pipecat Cloud. Use it in your CI/CD workflows to automate deployments whenever you push code.
- Build & push Docker images automatically, or deploy a pre-built image
- Zero Docker commands — the action handles
docker build,docker login, anddocker pushfor you - Readiness polling — waits for the deployment to become available before marking the step as successful
- Full control — configure scaling, regions, secrets, and more via action inputs
Point the action at your repo (with a Dockerfile) and it handles everything:
name: Deploy to Pipecat Cloud
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
packages: write # needed for GHCR push
steps:
- uses: actions/checkout@v4
- name: Build and Deploy to Pipecat Cloud
uses: daily-co/pipecat-cloud-deploy-action@v1
with:
api-key: ${{ secrets.PIPECAT_API_KEY }}
agent-name: my-agent
build: true
image: ghcr.io/${{ github.repository }}
registry-username: ${{ github.actor }}
registry-password: ${{ secrets.GITHUB_TOKEN }}
secret-set: my-secretsIf you build your image separately (or use another CI step), pass the fully-tagged image:
- name: Deploy to Pipecat Cloud
uses: daily-co/pipecat-cloud-deploy-action@v1
with:
api-key: ${{ secrets.PIPECAT_API_KEY }}
agent-name: my-agent
image: ghcr.io/my-org/my-bot:v1.2.3
secret-set: my-secrets
region: us-east-1| Input | Description |
|---|---|
api-key |
Pipecat Cloud Private API key. Store as a GitHub secret. Must be a Private key, not a Public key. |
agent-name |
Name of the agent to deploy. |
image |
Docker image name. When build is enabled the action auto-appends the tag. When build is disabled, must include a tag (e.g. my-image:v1.0). |
These inputs are only used when build is set to true.
| Input | Default | Description |
|---|---|---|
build |
false |
Enable Docker build, tag, and push before deploying. |
registry-username |
Registry username for docker login. |
|
registry-password |
Registry password or token for docker login. |
|
tag |
${{ github.sha }} |
Image tag. Defaults to the git commit SHA. |
dockerfile |
Dockerfile |
Path to the Dockerfile. |
docker-context |
. |
Docker build context path. |
docker-build-args |
Newline-separated build args (e.g. ARG1=val1). |
ARM builds: Pipecat Cloud requires all images to target
linux/arm64. Whenbuildis enabled, the action automatically passes--platform linux/arm64to Docker and sets up QEMU emulation if the runner is not already ARM-based. No extra configuration is needed.
| Input | Default | Description |
|---|---|---|
image-credentials |
Name of the image pull secret set in Pipecat Cloud. | |
secret-set |
Name of the secret set for runtime secrets. | |
region |
Deployment region. Uses the organization default if omitted. | |
min-agents |
0 |
Minimum agents to keep warm (0–50). |
max-agents |
10 |
Maximum concurrent agents (1–50). |
agent-profile |
Agent profile name. | |
enable-managed-keys |
false |
Enable managed keys. |
wait-for-ready |
true |
Poll until the deployment is ready. |
wait-timeout |
90 |
Max seconds to wait for deployment readiness. |
api-url |
https://api.pipecat.daily.co |
Override the Pipecat Cloud API base URL. |
| Output | Description |
|---|---|
image |
The full image reference that was deployed (e.g. ghcr.io/org/bot:abc123). |
service-name |
The deployed service/agent name. |
- name: Deploy to Pipecat Cloud
uses: daily-co/pipecat-cloud-deploy-action@v1
with:
api-key: ${{ secrets.PIPECAT_API_KEY }}
agent-name: my-agent
build: true
image: ghcr.io/my-org/my-bot
tag: ${{ github.ref_name }}-${{ github.sha }}
dockerfile: docker/Dockerfile.prod
docker-context: .
docker-build-args: |
NODE_ENV=production
VERSION=${{ github.sha }}
registry-username: ${{ github.actor }}
registry-password: ${{ secrets.GITHUB_TOKEN }}
secret-set: prod-secrets
region: us-east-1
min-agents: 1
max-agents: 5- name: Deploy to Pipecat Cloud
uses: daily-co/pipecat-cloud-deploy-action@v1
with:
api-key: ${{ secrets.PIPECAT_API_KEY }}
agent-name: my-agent
image: ghcr.io/my-org/my-bot:latest
wait-for-ready: false- name: Deploy
id: deploy
uses: daily-co/pipecat-cloud-deploy-action@v1
with:
api-key: ${{ secrets.PIPECAT_API_KEY }}
agent-name: my-agent
image: ghcr.io/my-org/my-bot:v1.0.0
- name: Print deploy info
run: |
echo "Deployed image: ${{ steps.deploy.outputs.image }}"
echo "Service name: ${{ steps.deploy.outputs.service-name }}"- Create a Pipecat Cloud Private API key in the Pipecat Cloud dashboard. Make sure to select Private (not Public) when creating the key.
- Add the API key as a GitHub secret named
PIPECAT_API_KEY(or any name you prefer) in your repository settings under Settings > Secrets and variables > Actions. - Add the action to your workflow file (see examples above).
BSD 2-Clause License. See LICENSE for details.
Deploy to Pipecat Cloud is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.