Scarab
CI tools tend to fall into two camps. Workflow engines (Argo, Tekton, Temporal) have a durable core that survives a crash, but they aren’t really CI: forge integration, in-repo config, PR checks, identity, secrets, the DSL, and the UI are all yours to build. CIs that live in your forge (GitHub Actions, GitLab, Woodpecker, Drone) hand you all of that, but underneath, the orchestrator is just a job runner. If the control plane restarts partway through a run, the run is orphaned or starts over. Scarab is built to be both at once: the batteries-included feel of a forge CI, sitting on a control plane that treats a run as durable state rather than a process it forgets the moment it restarts.

What makes it different
Section titled “What makes it different”- cohesion
One product, not a kit.
A CI that lives in your forge (DSL, secrets, approvals, identity, UI) on a durable engine. Not a workflow engine you have to build a CI on top of, and not a job-runner CI with nothing durable underneath.
- durability
Runs are state, not processes.
A durable state machine on Postgres, in the spirit of DBOS. When the control plane restarts, a run resumes from its last completed step, and each step runs exactly once. That’s the architecture doing its job, not a boast.
- identity
Keyless by design.
OIDC that doesn’t care which forge you use, with Scarab acting as its own OIDC issuer so runs can federate into your cloud without long-lived keys. Adapters for GitHub and Forgejo are implemented today. See Status.
- the DSL
A real language, not templated YAML.
A typed intermediate representation with a YAML frontend and CEL expressions. Under it all is one flat recursive DAG, where
invokeis reuse and matrix is just a modifier.
Why now
Section titled “Why now”As pipelines get longer and more autonomous (agents, review gates that sit open for hours, workflows that span days), “the job died, click re-run” stops being good enough. Scarab can hold a paused run almost for free and pick up exactly where it left off, and it keeps an event log that only ever grows, so you can see everything that happened. That’s where a durable core earns its keep. It’s also the kind of foundation that agent-driven development actually wants, rather than just a nicer YAML dialect. And Scarab is built that way too: ambitious systems software from a small team, at a pace that used to take a room full of people.

Lineage
Section titled “Lineage”Scarab owes its shape to Woodpecker: lean CI that lives in your forge, with none of the enterprise ceremony. It’s shaped just as much by Woodpecker’s limits: the many backends it has to support, and the pace a volunteer project can sustain. Sticking to Kubernetes alone is us shedding that backend baggage on purpose, and the pace is what a small team leaning on AI can now hold.