The cross-platform composition engine

The cross-platform composition engine

The cross-platform composition engine

Build powerful software environments and containerized operations from modular components and simple functions. Perfect for complex software delivery and AI agents. Built by the creators of Docker.

Build powerful software environments and containerized operations from modular components and simple functions. Perfect for complex software delivery and AI agents. Built by the creators of Docker.

Build powerful software environments and containerized operations from modular components and simple functions. Perfect for complex software delivery and AI agents. Built by the creators of Docker.

Building Blocks

Components for modern software and workflows

Components for modern
software and workflows

Components for modern
software and workflows

Turn

containers

,

LLMs

,

files

,

repositories

,

directories

,

and more into programmable and stateful objects. Get full type safety across with a consistent interface that works in any supported language.

Chain functions to do anything, anywhere

Chain functions to do anything, anywhere

Chain functions to do anything, anywhere

Write function chains that work consistently anywhere. Functions automatically cache results and maintain pure state between runs—no more rebuilding what hasn't changed.

Write function chains that work consistently anywhere. Functions automatically cache results and maintain pure state between runs—no more rebuilding what hasn't changed.

Go

Python

TypeScript

func (m *Api) Run(dir *dagger.Directory, db *dagger.Service) *dagger.Service {
    return dag.Container().
        From("alpine:latest").
        WithServiceBinding("db", db).
        WithMountedDirectory("/app", dir).
        WithWorkdir("/app").
        AsService(dagger.ContainerAsServiceOpts{
            Args: []string{"go", "run", "/app/main.go"},
        })
}

Go

Python

TypeScript

func (m *Api) Run(dir *dagger.Directory, db *dagger.Service) *dagger.Service {
    return dag.Container().
        From("alpine:latest").
        WithServiceBinding("db", db).
        WithMountedDirectory("/app", dir).
        WithWorkdir("/app").
        AsService(dagger.ContainerAsServiceOpts{
            Args: []string{"go", "run", "/app/main.go"},
        })
}

Go

Python

TypeScript

func (m *Api) Run(dir *dagger.Directory, db *dagger.Service) *dagger.Service {
    return dag.Container().
        From("alpine:latest").
        WithServiceBinding("db", db).
        WithMountedDirectory("/app", dir).
        WithWorkdir("/app").
        AsService(dagger.ContainerAsServiceOpts{
            Args: []string{"go", "run", "/app/main.go"},
        })
}

Go

Python

TypeScript

func (m *Api) Run(dir *dagger.Directory, db *dagger.Service) *dagger.Service {
    return dag.Container().
        From("alpine:latest").
        WithServiceBinding("db", db).
        WithMountedDirectory("/app", dir).
        WithWorkdir("/app").
        AsService(dagger.ContainerAsServiceOpts{
            Args: []string{"go", "run", "/app/main.go"},
        })
}

Open Platform

Get everything you need to ship fast, with confidence

Add capability, control, predictability, and observability to your workflows or AI coding agents — without adding more to your plate.

CLI & SDKs

Rapidly prototype, develop, and ship

Prototype, test, debug, and ship interactively and quickly through your terminal. Write applications in Python, TypeScript, Go, or any language you prefer with type-safe connections. Mix components across language ecosystems.

LLMs

Make agents that run free, not wild

Add agentic capabilities into your workflows, or give agents the perfect environment and set of tools so they can do their magic without wreaking havoc.

Tracing

See every step

Built-in tracing, logs, and metrics that show exactly what's happening at every step. Debug complex agent interactions immediately instead of guessing what went wrong.

Engine

Run it on any platform, any language

Containerized execution runtime that creates cacheable, reproducible operations. Works with any compute platform or tech stack, automatically optimizing for speed and cost.

Modules

Share & Reuse

Build reusable modules to share with your team or grab existing ones from the Daggerverse — stop coding the same automation patterns from scratch.

Examples

Examples

See Dagger in action

Components for modern
software and workflows

Explore projects built with Dagger, for inspiration or a quick start.

Testimonials

Testimonials

“A-ha!” moments

  • Jordan Parker

    When @solomonstre drops an open-source Claude Code... ya run with it. "Toy Programmer" + added MCP & cursor-rules + an updated version of @zbeyens phenom "dotai" repo

    Kyle Penfound

    This is so awesome to play with. I just made a new frontend for my main demo repo without any hand-holding, writing integrations, or anything. Just core dagger + bring your own LLM. In a 2 minute video. Most of which is for the sake of the recording

    Benjie D.

    So im finally coming around on this whole AI thing is the future...Solomon Hykes demo of an agent writing a curl clone in 5 minutes using Dagger is still lingering in my mind...if any of you are curmudgeons like me you might want to watch...

    Yves

    If you don’t know where to start to create AI agents, you should have a look at Dagger agents. That makes it so easy to build tools that will benefit from AI but as real developer tool.

    Steeve Morin

    Few understand the implications of this. This will be absolutely defining

    Alberto Fuentes

    I'm feeling a "docker moment" in real time. Even though I didn't know the CI tool, it seems so promising for multiple areas.

  • Matias Pan

    @dagger_io experimental AI tooling is really interesting. I just leveraged two separate modules (Strava and Notify). It took me 20 minutes to build the prompt and less than 5 to write the code.

    Ankur Duggal

    This is crazy cool! If you have worked with LLMs this is amazing!

    Peter Jausovec

    all your dagger functions are now available for agents to use. built-in function registry.

    Madhav Jivrajani

    This is nuts. @dagger_io has always had amazing dev exp, but the fact that it lends itself so seamlessly to something like this is endlessly impressive, massive props @solomonstre and the team!

    Austen

    Ok, my mind is a little blown right now. I never considered having LLMs accept containers as inputs and then interact with them to accomplish some goal.

    Adrian Duermael

    CEO at Cubzh

    That's why tools like @dagger_io are going to be so powerful! (standardized text interface, multi-language modules and a neatly integrated web GUI over the CLI) Great AI assistant experiences largely depend on well-designed interfaces they can easily leverage.

  • Steeve Morin

    Founder of ZML

    I think few realize where Dagger sits in the agentic race. I know I didn’t until I was shown. Incredible.

    Corentin Kerisit

    If you can relate, you need @dagger_io and fast.

    Pedro Piñera

    Founder, CEO - Tuist

    It’ll take time for people to realize the value of @dagger_io but I’m optimistic it’ll reach critical mass and break the vendor locking that many CI providers benefited from for many years.

    Pedro Piñera

    Founder, CEO - Tuist

    I just tried to set up a CI pipeline using @dagger_io to compile and test an Elixir project and OMG. The portability is so priceless. Blog post in progress 😀​

    David Flanagan

    My entire CI/CD pipeline is Dagger and I'd love for dev to be too; still a few changes that need to happen there though.

    Watch this space 😃​

    Edouard Bonlieu

    Co-founder @gokoyeb , deploy apps and databases on high-performance infrastructure around the world. Previously built @scaleway

    Excited to hear @solomonstre talking about @dagger_io and Dagger functions. Need to push the @gokoyeb function to the Daggerverse

  • Jordan Parker

    When @solomonstre drops an open-source Claude Code... ya run with it. "Toy Programmer" + added MCP & cursor-rules + an updated version of @zbeyens phenom "dotai" repo

    Kyle Penfound

    This is so awesome to play with. I just made a new frontend for my main demo repo without any hand-holding, writing integrations, or anything. Just core dagger + bring your own LLM. In a 2 minute video. Most of which is for the sake of the recording

    Benjie D.

    So im finally coming around on this whole AI thing is the future...Solomon Hykes demo of an agent writing a curl clone in 5 minutes using Dagger is still lingering in my mind...if any of you are curmudgeons like me you might want to watch...

    Yves

    If you don’t know where to start to create AI agents, you should have a look at Dagger agents. That makes it so easy to build tools that will benefit from AI but as real developer tool.

    Steeve Morin

    Few understand the implications of this. This will be absolutely defining

    Alberto Fuentes

    I'm feeling a "docker moment" in real time. Even though I didn't know the CI tool, it seems so promising for multiple areas.

    Matias Pan

    @dagger_io experimental AI tooling is really interesting. I just leveraged two separate modules (Strava and Notify). It took me 20 minutes to build the prompt and less than 5 to write the code.

    Ankur Duggal

    This is crazy cool! If you have worked with LLMs this is amazing!

    Peter Jausovec

    all your dagger functions are now available for agents to use. built-in function registry.

    Madhav Jivrajani

    This is nuts. @dagger_io has always had amazing dev exp, but the fact that it lends itself so seamlessly to something like this is endlessly impressive, massive props @solomonstre and the team!

  • Jordan Parker

    When @solomonstre drops an open-source Claude Code... ya run with it. "Toy Programmer" + added MCP & cursor-rules + an updated version of @zbeyens phenom "dotai" repo

    Kyle Penfound

    This is so awesome to play with. I just made a new frontend for my main demo repo without any hand-holding, writing integrations, or anything. Just core dagger + bring your own LLM. In a 2 minute video. Most of which is for the sake of the recording

    Benjie D.

    So im finally coming around on this whole AI thing is the future...Solomon Hykes demo of an agent writing a curl clone in 5 minutes using Dagger is still lingering in my mind...if any of you are curmudgeons like me you might want to watch...

    Yves

    If you don’t know where to start to create AI agents, you should have a look at Dagger agents. That makes it so easy to build tools that will benefit from AI but as real developer tool.

    Steeve Morin

    Few understand the implications of this. This will be absolutely defining

    Alberto Fuentes

    I'm feeling a "docker moment" in real time. Even though I didn't know the CI tool, it seems so promising for multiple areas.

    Matias Pan

    @dagger_io experimental AI tooling is really interesting. I just leveraged two separate modules (Strava and Notify). It took me 20 minutes to build the prompt and less than 5 to write the code.

    Ankur Duggal

    This is crazy cool! If you have worked with LLMs this is amazing!

    Peter Jausovec

    all your dagger functions are now available for agents to use. built-in function registry.

    Madhav Jivrajani

    This is nuts. @dagger_io has always had amazing dev exp, but the fact that it lends itself so seamlessly to something like this is endlessly impressive, massive props @solomonstre and the team!

Build workflows that build software.

Build workflows that build software.

Build workflows that build software.

Build workflows that build software.