Everything here works from the Pipecat Cloud dashboard or the CLI — each section shows both. Deploys use cloud builds under the hood, so your project needs a
Dockerfile.Not sure this is the right method? The deployment
overview
compares the GitHub integration with CLI cloud builds, GitHub Actions, and
your own container registry.
Prerequisites
- A Pipecat Cloud account with an active organization
- A GitHub repository containing your agent, with a
Dockerfileat the repository root (or at a path you specify) - Permission to install a GitHub App on the account or organization that owns the repository
Connect your GitHub account
The GitHub App is installed once per Pipecat Cloud organization, and every agent in that organization shares it.- Dashboard
- CLI
1
Open GitHub settings
Go to Settings → GitHub.
2
Install the app
Click Connect GitHub. A new tab opens GitHub’s installation screen,
where you choose the account or organization to install into and which
repositories to grant access to — all of them, or a hand-picked list.
3
Return to the dashboard
Once you approve the install, the dashboard picks up the connection
automatically and shows the connected account.
Deploy a new agent from a repository
- Dashboard
- CLI
When you create an agent, choose GitHub as the source:
1
Pick the repository
Select any repository the installation can see. Private repositories are
supported.
2
Pick the branch
The repository’s default branch is preselected. Search to find any other
branch.
3
Set the Dockerfile path (optional)
Defaults to
Dockerfile at the repository root. Set a path such as
docker/Dockerfile if yours lives elsewhere.--repo
applies only at creation — to re-point an agent that already exists, use
agent link below.
Connect an existing agent
Agents that already run a Docker image can be moved onto GitHub deploys at any time.- Dashboard
- CLI
Go to your agent’s Settings → GitHub tab and pick a repository, branch,
and Dockerfile path.
Linking a repository does not deploy anything. The agent keeps serving its
current image until the next push to the connected branch, or until you deploy
manually. This lets you connect a repository and choose your moment.
Deploy on push
Deploy on push is on by default. With it enabled, every push to the connected branch builds that commit and rolls it out. Pushes to any other branch are ignored — only the branch you connected triggers a deploy. Turn it off when you want to control the timing yourself, for example while you’re stabilizing a branch.- Dashboard
- CLI
Toggle it on the agent’s Settings → GitHub tab.
Deploy manually
Deploying manually builds the connected branch’s currentHEAD. It works whether or not deploy on push is enabled, and it’s the way to ship a change when it’s off.
- Dashboard
- CLI
Use the Deploy button on the agent’s GitHub settings. Deploys are queued:
the button returns as soon as the build is accepted, and progress shows up in
the agent’s deployment history and on the
Builds page.
See what’s running
An agent deployed from GitHub shows its source and the exact commit it is running — on the agent overview and in the agents list — linked back to that commit on GitHub. The commit that’s running and the branch that’s connected can legitimately differ: right after you link a repository, after you re-point an agent at a different repository or branch, or when deploy on push is off and there are unshipped commits. Both the dashboard and the CLI say so rather than leaving you to compare them — the dashboard offers a deploy, andagent status names the repository and branch the running commit actually came from.
From the CLI:
pipecat cloud agent list carries a GitHub column for agents built from a repository.
Change or remove a connection
Switch branch or repository
Switch branch or repository
Edit the repository, branch, or Dockerfile path on the agent’s Settings →
GitHub tab and save, or run
pipecat cloud agent link again with the new
values. The running deployment is untouched until the next deploy.Unlink one agent
Unlink one agent
Unlink, or
pipecat cloud agent unlink my-agent, removes the agent’s
connection to the repository. Pushes stop deploying it, and its current
deployment stays live.Disconnect the organization
Disconnect the organization
Disconnect on Settings → GitHub, or
pipecat cloud github disconnect, removes the installation and every repository link in the
organization. Connected agents stop auto-deploying and keep running what
they last deployed. This does not uninstall the app on GitHub — do that from
GitHub if you want to revoke access entirely.Things to know
- One agent per repository and branch. A given repository and branch pair can be connected to a single agent. Use a different branch, or a different repository, for a second agent.
- Each agent connects to one branch. To run staging and production from one repository, create two agents and connect each to its own branch.
- A
Dockerfileis required. The build follows the same path as cloud builds. Runpipecat initto scaffold a project that already has one. - Secrets are configured in Pipecat Cloud, not in your repository. See Secrets.
- A suspended installation stops deploys. If the app is suspended on GitHub, the dashboard and
pipecat cloud github statusboth flag it; reinstate it from GitHub to resume.
Troubleshooting
A repository is missing from the picker
A repository is missing from the picker
The installation can only see repositories you granted it. Open Settings →
GitHub → Manage on GitHub and add the repository to the installation’s
access list.
pipecat cloud github repos lists exactly what the App can
currently see.A push didn't deploy
A push didn't deploy
Check that the push went to the connected branch, that Deploy on push is
enabled on the agent, and that the installation isn’t suspended on GitHub.
pipecat cloud agent status my-agent shows the connected branch and
auto-deploy setting; pipecat cloud github status flags a suspended
installation.The build failed
The build failed
Build logs are on the agent’s deployment history. The most common causes are
a
Dockerfile path that doesn’t match the repository and a build that
succeeds locally but not from a clean checkout — check that everything the
build needs is committed.