Open source/Single binary/Zero dependencies

The workflow engine that doesn't turn into an SRE project.

Dagu is a local-first workflow engine for ops automation and AI-assisted operations. Open source and self-hostable: one binary, no external database or broker. Define DAGs in declarative YAML. It supports shell commands, docker containers, k8s jobs, remote commands via SSH, and more. Cloud and Kubernetes ready: deploy with Docker or the official Helm chart and scale out to distributed workers across Linux, macOS, and Windows. Keep existing scripts and tools as they are while Dagu adds scheduling, retries, approvals, logs, and run history around them.

Dagu is built for developers who want powerful workflow orchestration without the operational overhead.

Try Live Demodemouser / demouser
daily-report.yaml
on schedule
# runs every night at 02:00
schedule: "0 2 * * *"
type: chain
steps:
- id: fetch_data
run: python fetch.py
retry_policy:
limit: 3
interval_sec: 60
- id: build_report
run: python report.py
- id: notify
run: ./notify.sh
last run · 02:00:04 · exit 03/3 steps

Trusted by developers at

1Password
Intel
MongoDB
Baidu
ByteDance
Canonical
Grab
Douban
Debian
NASA / JPL
Gitee
Plaid
Geodis
Aleno
Mambu
Audibene
NINAnor
RUBIX GmbH
cynkra
DataLad
dandi
QNIB Solutions
modoolar
TTT Studios
vital-software
m3dev
Build On Technologies
Dalibo
InfoInnova
infront-quant
gfx-labs
t54-labs
sajo
ANZX
1Password
Intel
MongoDB
Baidu
ByteDance
Canonical
Grab
Douban
Debian
NASA / JPL
Gitee
Plaid
Geodis
Aleno
Mambu
Audibene
NINAnor
RUBIX GmbH
cynkra
DataLad
dandi
QNIB Solutions
modoolar
TTT Studios
vital-software
m3dev
Build On Technologies
Dalibo
InfoInnova
infront-quant
gfx-labs
t54-labs
sajo
ANZX
1Password
Intel
MongoDB
Baidu
ByteDance
Canonical
Grab
Douban
Debian
NASA / JPL
Gitee
Plaid
Geodis
Aleno
Mambu
Audibene
NINAnor
RUBIX GmbH
cynkra
DataLad
dandi
QNIB Solutions
modoolar
TTT Studios
vital-software
m3dev
Build On Technologies
Dalibo
InfoInnova
infront-quant
gfx-labs
t54-labs
sajo
ANZX

Production-grade workflow engine features

Battle-tested workflow engine features let you focus on the core value without worrying about orchestration.

Performance

Run thousands of workflow runs per day on one machine, depending on hardware, workflow shape, step duration, and queue settings.

Distributed executions

Use queues, concurrency limits, and distributed workers to control load and spread jobs across machines.

Notifications

Recurring schedules, catchup, durable executions, timeouts, reruns, notification, and incidents routing to responders.

Auth & RBAC

User management, RBAC, workspaces, approval steps, built-in secret management, API Keys, and webhooks.

Common patterns

Health Check
SSH Backup
Notify

Private Script Workflows

Turn private scripts, internal CLIs, reusable actions, pinned tools, and artifacts into workflows other teams can safely request or run.

  • 1Keep existing scripts and commands intact
  • 2Expose narrow parameters instead of broad production access
  • 3Call versioned Dagu Actions with typed outputs
  • 4Store reports and logs as first-class artifacts
workflow.yaml
tools:
  - jqlang/jq@jq-1.7.1

steps:
  - id: collect
    action: acme/dagu-action-export@v1.4.2
    with:
      dataset: customers

  - id: transform
    run: jq '.items[] | {id, email}' ${steps.collect.outputs.path}
    stdout:
      artifact: reports/customers.json
    depends: [collect]

  - id: publish
    action: outputs.write
    with:
      values:
        report: reports/customers.json
        rows: ${steps.collect.outputs.rows}
    depends: [transform]

Loved by developers

Real comments from the Dagu GitHub community.

I've been looking for an alternative for dynamic agent workflows lately. I started out down the Temporal path. Temporal is powerful, but if all you want is to dynamically chain agents, scripts, data processing, and ops tasks together, the whole stack can feel a bit heavy. Then I came across Dagu, and the direction felt right. It runs as a single binary, workflows are written in YAML, everything lives in local files, it ships with a web UI, and there's no extra DB or broker to stand up. There are plenty of built-in actions too: shell, Docker, K8s Jobs, SSH — all there. A nice surprise was harness.run, which lets you plug external coding agent CLIs straight into a workflow. What I like most: the workflow itself is just a file, and state, logs, retries, dependencies, and the UI are all taken care of for you. For small teams, private environments, personal automation, and agent workflows, Dagu's local-first approach turns out to be a really comfortable fit.
Engineer at Alipay

This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!

@vnghia

Developer

#827

I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.

@vincent067

Developer

#1814

I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.

@DarkWiiPlayer

Developer

#924

Self-hosted on your own infrastructure

Dagu is GPLv3 and free forever. Paid licenses add SSO, RBAC, audit logging, incident routing, and support for teams.

Community
Free forever
Unlimited servers, unlimited workers
  • Full workflow automation and monitoring
  • Web UI with DAG visualization
  • Docker, SSH, and HTTP executors
  • Cron scheduling & retries
  • Up to 2 API keys for automation
Minimum
$50 / mo

3 self-host Dagu server licenses

3 licenses = 3 servers, unlimited workers
Start free license trial
Pro
$150 / mo

15 self-host Dagu server licenses

15 licenses = 15 servers, unlimited workers
Start free license trial
Enterprise
Custom

For teams building event-driven workflow infrastructure in complex environments

Custom licensed server allotment
  • Architecture consulting for distributed setup
  • Custom implementation
  • MCP OIDC/SSO setup guidance
  • Initial migration support
  • Dedicated meetings
What we build
  • Custom Solutions

    Building tailored features for specific company needs.

  • Turnkey Solutions

    Creating ready-to-go setups to help teams scale Dagu easily without burning massive technical or server resources.

Contact Us

Create a 14-day self-host license trial in minutes14 days, No credit card required. Start free license trial

Quickstart

Install Dagu and run your first workflow from the Web UI in a few minutes.

1

Install dagu command

The script installers are the recommended path. Homebrew, npm, and Docker remain available for binary-only or container installs.

Mac/Linux Terminal
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
✓ Guided installer ready
2

Run your first workflow

Start the Web UI, create a two-step workflow, and run it.

Run it
$dagu start-all

If the installer already opened the Web UI, skip this command. Otherwise start it now.

hello.yaml
steps:
  - id: hello
    run: echo "Hello from Dagu!"
  - id: step_2
    run: echo "Running step 2"
    depends: hello

Open the Web UI, create hello.yaml, paste this workflow, and click Run.

Optional

Connect AI tools

Install the Dagu skill for workflow authoring, or connect an MCP client to a running Dagu server.

Dagu skill
$gh skill install dagucloud/dagu dagu

Helps Claude Code, Codex, Gemini CLI, and other AI coding tools write Dagu YAML.

Dagu MCP endpoint
URLhttp://localhost:8080/mcp

Lets MCP-capable clients read Dagu state, preview changes, and control DAG runs.

OIDC/SSO-backed MCP access is available for enterprise deployments. Contact us to discuss setup.

Contact

Questions, enterprise needs, or feedback?

We'd love to hear from you.