Lightweight workflow engine
A lightweight workflow engine for scripts, cron, and runbooks.
Dagu is a lightweight workflow engine that turns the commands your team already runs into scheduled, observable YAML workflows, with retries, logs, queues, and a web UI.
name: nightly-ops
schedule: "0 2 * * *"
steps:
- id: extract
run: python scripts/extract.py
- id: transform
run: ./bin/transform
retry_policy:
limit: 3
depends: [extract]
- id: notify
run: ./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
At a glance
Why teams choose Dagu
One binary with local file storage.
Often requires a metadata database, broker, webserver, and scheduler.
YAML calls the commands you already run.
Many engines require framework-specific code or SDK imports.
Start with one script and grow incrementally.
Teams often migrate an entire class of jobs before seeing value.
In depth
Where each tool fits
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.
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.
Next step
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.