Introduction
Getting Started
Understand what DxCore is and how it parallelizes your CI workloads across multiple agents.
What is DxCore?
DxCore is a DAG parallel task execution engine. It is not a CI system — it is an execution layer you bolt onto your existing CI (GitHub Actions, GitLab CI, etc.) to parallelize build and test workloads across multiple agents.
Your build system (Turborepo, Nx, Gradle, Docker Buildx) already knows your task graph. DxCore takes that graph, schedules tasks across connected agents respecting dependency order, and streams results back to your CI pipeline.
Note
DxCore is an independent project by Eyal Lapid (JoinWith) and is not affiliated with, endorsed by, or sponsored by Vercel, Nrwl, Gradle, Docker, or any other third-party project. See Trademarks & Attribution.
How It Works
DxCore operates in five steps:
1. Graph Production
Your build system outputs a task DAG. For example, turbo run build test --dry=json produces a JSON representation of every task and its dependencies.
2. Dispatch
The dxcore dispatch command reads the graph from stdin and submits it to the coordinator over WebSocket.
3. Scheduling
The coordinator parses the DAG, optionally expands tasks into shards, and computes the frontier — the set of tasks whose dependencies are all complete. It assigns frontier tasks to agents based on resource hints and capability tags.
4. Execution
Agents execute assigned tasks using the appropriate adapter (turbo, nx, gradle, docker, or generic). Results flow back to the coordinator, which propagates success or failure through the DAG and computes the next frontier.
5. Profiling
Task duration, agent specs, and shard info are recorded. Over time, the coordinator learns optimal shard counts for each task.
Tip
DxCore works with any CI provider that supports running parallel jobs — GitHub Actions, GitLab CI, CircleCI, and more.
Supported Adapters
| Adapter | Build System | Graph Command |
|---|---|---|
turbo |
Turborepo | turbo run <task> --dry=json |
nx |
Nx | nx run-many --targets=<tasks> --graph=stdout |
gradle |
Gradle | ./gradlew -q exportDxcoreGraph (DxCore plugin) |
docker |
Docker Buildx | docker buildx bake --print |
generic |
Any | Custom JSON with explicit shell commands |