Built for teams whose main work is not orchestration.

Local-first orchestration that just works.

Define workflows in declarative YAML; one open-source binary runs them, locally or over SSH, with schedules, retries, human tasks, logs, and a Web UI. Your scripts, containers, and AI agents stay untouched. No external database, no framework.

Install dagu command
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
daily-report.yaml
# 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

Quickstart

Quickstart
1

Install dagu command

Binary
$curl -L https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
✓ Installed to /usr/local/bin/dagu
2

Run your first workflow

hello.yaml
$cat > hello.yaml << EOF
# Your first workflow
steps:
- command: echo "Hello from dagu!"
- command: ls -la
EOF
✓ hello.yaml created
3

Run it

Terminal
$dagu start hello.yaml
Running hello...
✓ hello finished
Hello from dagu!
Running list...
✓ list finished
-rw-r--r-- hello.yaml
✓ Workflow completed successfully
4

Explore the Web UI

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

Terminal
$dagu start-all
✓ Server started at http://localhost:8080
Web UI: Real-time monitoring, visual DAG view, execution history

Using Dagu?

A GitHub star helps other developers find Dagu and keeps the repository close at hand.

Star Dagu on GitHub

Run workflows without leaving your AI tools

Use Claude, Codex, Cursor, or any MCP client to build and run workflows.

From your AI tools

Build and run workflows from any MCP client.

Create workflows and inspect their runs through scoped MCP tools. Retry a failure or stop a run from the same client.

Agent / IDE → MCP → Dagu

Set up MCP
  • Claude Code
  • Cursor
  • GitHub Copilot
  • OpenAI Codex
  • Gemini CLI
  • Kiro
  • Windsurf
  • Cline
  • Roo Code
  • Zed
  • Devin
  • Trae
  • ChatGPT
  • Junie
  • Goose
  • Amp
  • OpenCode
  • Antigravity
  • Amazon Q
  • Warp
  • VS Code
  • Raycast
  • LM Studio
  • Perplexity

Production operations

The guarantees and the knobs, by their real names.

Performance

Thousands of runs per day on one machine; capacity depends on CPU, disk, and workflow shape. State is local files, so there is no database to size or migrate.

Distributed executions

File-based queues with per-DAG concurrency limits. dagu coordinator dispatches over gRPC to workers selected by labels such as gpu=true.

Notifications

Cron schedules with timezones, catchup_window, overlap_policy, per-step retry_policy, zombie detection, lifecycle handlers, email and webhook notifications, and incident routing.

Auth & RBAC

DAGU_AUTH_MODE none, basic, or builtin; five RBAC roles; workspaces; human tasks; secret masking; API keys; per-DAG webhook tokens.

Architecture

The same binary runs three ways.

Single server

One dagu start-all process runs the server, scheduler, and steps on one machine, with file-based storage.

Single server

Temporary workers

Your platform provisions a worker per run that invokes the binary and is destroyed when the run ends. The server reads run state from a shared volume.

Temporary workers

Coordinator and workers

The server dispatches tasks into a coordinator. Workers connect outbound over gRPC, poll for tasks matching their labels, and report status and logs back.

Coordinator and workers

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.

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
Team
$50 / mo

3 self-host Dagu server licenses

3 licenses = 3 servers, unlimited workers
Start free license trial

$500 / yr · Save 2 months

Pro
$150 / mo

15 self-host Dagu server licenses

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

$1,500 / yr · Save 2 months

Enterprise
Custom

For teams building event-driven workflow infrastructure in complex environments

Custom licensed server allotment
  • Priority support
Contact Us

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

Team and Pro include standard support. Enterprise includes priority support. See support details

Details on what the license covers and how Community compares: Self-host license guide

Need internal approval? Read the Adoption Brief

Contact

Questions, bugs, or ideas?

Open a GitHub issue, ask in Discord, or email. Replies come from the maintainer, not a bot.