Woodpecker is a fully open-source, self-hosted CI engine — you run the whole platform (server + agents) and define pipelines in YAML. KiCI brings typed-TypeScript pipelines and a managed control plane, so you keep execution sovereign without operating a CI server yourself.
Pipelines are real, typed TypeScript — loops, conditionals, functions, autocomplete
Pipelines are YAML — a workflow is a list of steps in a .woodpecker.yml file
Source code and secrets
Your source and secrets stay on your own sovereign infrastructure, and KiCI runs the control plane as a managed service
Secrets are kept in Woodpecker’s own central secret store and injected into steps with from_secret — on the server you run
Self-hosting model
You self-host the execution (orchestrator and agents) on your own infrastructure, while KiCI runs the control plane as a managed service — no CI server to operate
Fully self-hosted — you run the server (UI, API, webhook processing) as well as the agents that execute workflows
Autoscaling ephemeral agents
A built-in auto-scaler provisions ephemeral agents on demand across Docker/Podman containers, bare-metal processes, and Firecracker microVMs — on your own infrastructure, with no extra controller
A separate autoscaler add-on can scale agents with the load (spinning up cloud VMs)
Dynamic job generation
Generate jobs programmatically in-process — a dynamicJob generator emits typed job definitions in TypeScript, fanning out one job per item an upstream job discovers
Built-in matrix workflows fan a workflow across combinations, but generation is matrix-bound rather than programmatic code
Testing & local dev loop
kici run --local and kici run remote run a full workflow from your current codebase — locally or against the real remote pipeline — before you commit or push
Pipelines run on your Woodpecker server when triggered by the forge — there is no equivalent that dry-runs the real remote pipeline from your local working tree before pushing