Introduction
Dagger is the missing software stack for CI. It makes your pipelines faster and more repeatable, not by throwing bigger machines at them, but by replacing artisanal scripts with a clean API, real code, and a portable DAG execution engine.
Once daggerized, your pipeline logic is decoupled from its environment. Trigger it before or after push; run it locally or let our cloud scale it out; spin up multi-container environments just in time; all cached automatically, traced end to end, and extensible in your favorite language.
Orientation​
- Want to adopt Dagger in your project? Start with the Quickstart, then follow Workspace setup.
- Your project already uses Dagger? See CLI to run checks, generate code, and start services.
- Want to learn more about what Dagger can do? Keep reading.
What you can do​
No code required. Install modules, run commands, get results.
Lint and format across your stack​
dagger install github.com/dagger/eslint
dagger install github.com/dagger/prettier
dagger check
Run e2e tests with real services​
dagger install github.com/dagger/playwright
dagger check
Run code generators​
dagger install github.com/dagger/go
dagger generate
Debug a broken build​
dagger check
dagger api call eslint lint terminal
Key features​
Programmable. Real code — Go, Python, TypeScript — not YAML.
Local-first. Run your full pipeline before you push. Same result everywhere.
Zero-setup tracing. Every step traced automatically. No instrumentation code.
Interactive debugging. Drop into a terminal at any step of your pipeline.
Incremental execution. Only what changed gets re-executed.
Agent-friendly. Agents run Dagger checks in their dev loop. Sandboxed, cached, remote.
Native secrets. Plugs into your existing secret infrastructure.
Just-in-time services. Service dependencies build on demand, no pre-provisioning.