Lightweight workflow engine

Run production workflows without adopting a heavy platform.

Dagu turns shell scripts, containers, SSH tasks, HTTP calls, and agent CLIs into scheduled YAML workflows with retries, logs, queues, and a web UI.

A workflow engine can be this small
name: nightly-ops
schedule: "0 2 * * *"

steps:
  - name: extract
    command: python scripts/extract.py

  - name: transform
    command: ./bin/transform
    depends: extract
    retryPolicy:
      limit: 3

  - name: notify
    command: ./scripts/slack-success.sh
    depends: transform

Single self-hosted binary

No external database or broker required

YAML workflows that stay readable in git

Local, queued, and distributed execution modes

Built for the operational middle

Most teams do not need a data platform to schedule scripts. They need dependency order, retries, output capture, history, and a way to rerun failed steps without SSHing into a server.

  • Schedule existing scripts without rewriting them into a framework.
  • Keep workflow definitions in YAML so code review stays simple.
  • Start on one host and move to workers only when the workload needs it.

Small runtime, serious controls

Dagu keeps the runtime shape small while still providing the controls teams expect once jobs matter.

  • Retries, dependencies, timeouts, logs, and status history.
  • Web UI for inspection, manual runs, and operational visibility.
  • Executors for commands, Docker, HTTP, SSH, sub-DAGs, and agent steps.

A natural fit for AI agent work

AI agents already operate through commands and CLIs. Dagu gives those commands a scheduler, dependency graph, retry policy, and audit trail.

  • Run Claude, Codex, Gemini, or another agent CLI inside a workflow step.
  • Put human approval, validation, and publishing steps around agent output.
  • Swap models and agent CLIs without moving the orchestration layer.

Why teams choose Dagu

Dimension
Dagu
Typical alternative
Deployment
One binary with local file storage.
Often requires a metadata database, broker, webserver, and scheduler.
Workflow shape
YAML calls the commands you already run.
Many engines require framework-specific code or SDK imports.
Adoption path
Start with one script and grow incrementally.
Teams often migrate an entire class of jobs before seeing value.

FAQ

Practical questions before adopting Dagu

What makes Dagu lightweight?

Dagu runs as a single self-hosted binary and stores workflow state in local files. You do not need to operate a database, broker, or separate control plane to get started.

Can Dagu run existing scripts?

Yes. A Dagu step can run shell commands, binaries, scripts, Docker containers, HTTP requests, SSH commands, and other executors without forcing an application rewrite.

Is Dagu only for local jobs?

No. You can start locally, use queue-based execution, or run distributed coordinator and worker processes when you need to scale beyond one machine.

Start with one workflow.

Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.

Install Dagu