Open source, Apache-2.0CI/CD for every forge.
Crow runs your pipelines in Docker, Podman or Kubernetes, in throwaway Windows and macOS VMs, or on the host, for repositories on GitHub, GitLab, Forgejo, Gitea and Bitbucket.

Six backends. One pipeline format.
Run steps in containers, as Kubernetes pods, in a throwaway Windows or macOS VM, or straight on the host. Your YAML stays the same; agent labels decide where a workflow lands.
Docker
Container per step
The default. Every step runs in its own container, and Windows containers can opt into Hyper-V isolation for a kernel of their own.
Podman
Container per step
Daemonless containers through the native Podman SDK, rootful or rootless.
Kubernetes
Pod per step
Steps become pods in your cluster, with per-step resources, node selectors and tolerations. One agent drives the whole cluster.
Hyper-V
Windows VM per workflow
Every workflow gets a throwaway Windows VM, cloned from a golden image and deleted afterwards. Safe for untrusted pull requests.
Tart
macOS VM per workflow
Every workflow runs in a fresh macOS VM on Apple silicon, so Xcode builds start from a clean machine every time.
Local
Process on the host
Runs commands directly on the agent's machine, for builds that need its toolchain or hardware. On macOS it can run in a sandbox.
Pipelines are YAML in your repo.
Steps run in containers, depend on each other as a DAG, and fan out with matrix builds. Crow picks up every file in .crow/ as its own workflow.
when:
- event: [push, pull_request]
steps:
- name: test
image: golang:1.26
commands:
- go test ./...
- name: build
image: golang:1.26
commands:
- go build -o dist/app ./cmd/app
depends_on: [test]

One CI for all your code, wherever it lives.
Every forge, one server
GitHub, GitLab, Forgejo, Gitea, Bitbucket and Bitbucket Datacenter, linked per user on a single instance.
Pluggable backends
Six backends: Docker, Podman, Kubernetes, a throwaway Windows or macOS VM, or the host itself.
Autoscaling agents
Start agents on your cloud provider when the queue grows and remove them when they sit idle.
Metrics built in
Build times, pipeline counts and the busiest repos per org and repo, with a chart builder for your own views.
Plugins are containers
Reuse any plugin image for releases, deployments and notifications, or write your own in any language.
Secrets at every level
Repo, org and global secrets, encrypted at rest and limited to the images and events that may use them, or read from an external store.
- Build minutes
- Unlimited, on your hardware.
- Monthly quotas, then per-minute billing.
- Runners
- Any size, any architecture, on-prem or cloud.
- Fixed machine sizes and few architectures.
- Forges
- GitHub, GitLab, Forgejo, Gitea, Bitbucket, one server.
- Bound to the platform that hosts it.
- Secrets
- On your server or in your own secret store.
- Stored on someone else's platform.
- Scaling
- Cloud agents start only when the queue needs them.
- Pay for idle capacity or wait in line.
- Isolation
- Containers, pods or a fresh VM per workflow.
- Whatever the provider decides to run.
- License
- Apache-2.0, every feature included.
- Proprietary, features by plan.
Unlimited, on your hardware.
Monthly quotas, then per-minute billing.
Any size, any architecture, on-prem or cloud.
Fixed machine sizes and few architectures.
GitHub, GitLab, Forgejo, Gitea, Bitbucket, one server.
Bound to the platform that hosts it.
On your server or in your own secret store.
Stored on someone else's platform.
Cloud agents start only when the queue needs them.
Pay for idle capacity or wait in line.
Containers, pods or a fresh VM per workflow.
Whatever the provider decides to run.
Apache-2.0, every feature included.
Proprietary, features by plan.
Run your first pipeline in five minutes.
Start the server and an agent with Docker Compose, log in with your forge, and enable a repository.
