A CI/CD platform where infrastructure is first-class.
Declare machines and jobs over them in typed Pkl — the system materializes the machines, executes the DAG, and guarantees teardown. Configuration errors are caught at eval time, not mid-run.
🚧 early development — designing in the open
CI systems treat build machines as an afterthought — annexed "runners" you configure elsewhere. Graphene CI makes them part of the workflow:
builderRes = core.Ephemeral { # ephemeral cloud VM: created
name = "builder-res" # for the run, torn down
provider = yc.Provider {} # after — guaranteed
hardware = core.Hardware { cpu = 8, ramMib = 16384 }
}
builder = core.Host { name = "builder", backedBy = builderRes }
buildJob = core.Job {
name = "build"
runsOn = builder # object reference — typo = eval error
needs = [core.Dependency { job = prepareJob }] # DAG by construction
actions = [dockerBuild, dockerPush] # typed actions, typed outputs
}- Static first — machine topology, job DAG, capability coverage, and value types are all verified before anything runs.
- Pkl declares, plugins execute — the language runs nothing; behavior lives in versioned, immutable plugins (providers, actions, triggers, secret backends).
- Teardown guaranteed — ephemeral resources are cleaned up under any outcome, including crashes.
- Runs are reproducible — schema versions, plugin versions, and inputs are pinned per run.
| Repository | Responsibility |
|---|---|
graphene-lang |
KCL ecosystem: core schemas, codegen toolchain, service IDL |
graphene |
Core: control plane, agent, CLI |
graphene-plugins |
Built-in plugins and the Plugin SDK |
graphene-docs |
Product documentation and ADRs |
.github |
Roadmap registry, templates, processes |