Skip to main content

Dagger Documentation

Welcome to Dagger, a programmable tool that lets you replace your software project's artisanal scripts with a modern API and cross-language scripting engine.

  1. Encapsulate all your project's tasks and workflows into simple functions, written in your programming language of choice.
  2. Dagger packages your functions into a custom GraphQL API.
  3. Run your functions from the command line, your language interpreter, or a custom HTTP client.
  4. Package your functions into a module, to reuse in your next project or share with the community.
  5. Search for existing modules, and import them into yours. All Dagger modules can reuse each other's functions - regardless of which language they are written in.

Dagger Cloud complements the Dagger Engine with a production-grade control plane. Features of Dagger Cloud include pipeline visualization, operational insights, and distributed caching.

Who is it for?

Dagger may be a good fit if you are...

  • Your team's "designated devops person", hoping to replace a pile of artisanal scripts with something more powerful.
  • A platform engineer writing custom tooling, with the goal of unifying application delivery across organizational silos.
  • A cloud-native developer advocate or solutions engineer, looking to demonstrate a complex integration on short notice.

Benefits to development teams

  • Reduce complexity: Even complex builds can be expressed as a few simple functions.
  • No more "push and pray": Everything CI can do, your local dev environment can do too.
  • Native language benefits: Use the same programming language to develop your application and its delivery tooling.
  • Easy onboarding of new developers: If you can build, test and deploy, they can too.
  • Caching by default: Dagger caches everything. Expect 2x to 10x speed-ups.
  • Cross-team collaboration: Reuse another team's workflows without learning their stack.

Benefits to platform teams

  • Reduce CI lock-in: Dagger functions run on all major CI platforms - no proprietary DSL needed.
  • Eliminate bottlenecks: Let application teams write their own functions. Enable standardization by providing them a library of reusable components.
  • Save time and money with faster CI runs: CI pipelines that are "Daggerized" typically run 2x to 10x faster, thanks to caching and concurrency. This means developers waste less time waiting for CI, and you spend less money on CI compute.
  • Benefit from a viable platform strategy: Development teams need flexibility, and you need control. Dagger gives you a way to reconcile the two, in an incremental way that leverages the stack you already have.

How does it work?

See the architecture overview for more information.