
Local-first workflow engine.
Declarative, file-based, self-contained, and air-gapped ready. One binary that scales from laptop to distributed cluster.

Why Dagu?
- Single binary - No database, message broker, or external services. Architecture
- Declarative YAML - Define workflows without code. YAML Reference
- Composable - Nest sub-workflows with parameters. Control Flow
- Distributed - Route tasks to workers via labels. Distributed Execution
- AI Agent - Built-in LLM-powered assistant with tools, memory, and configurable personalities. AI Agent
- Workflow Operator - Persistent AI operator for Slack and Telegram. Monitor runs, debug failures, recover incidents, and continue follow-up in context. Workflow Operator
- Production-ready - Retries, hooks, metrics, RBAC. Error Handling
Quick Start
Install
bash
curl -fsSL https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.sh | bashpowershell
irm https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.ps1 | iexcmd
curl -fsSL https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.cmd -o installer.cmd && .\installer.cmd && del installer.cmdbash
docker run --rm -v ~/.dagu:/var/lib/dagu -p 8080:8080 ghcr.io/dagu-org/dagu:latest dagu start-allbash
brew install dagubash
npm install -g --ignore-scripts=false @dagu-org/daguThe script installers open a guided wizard that can install Dagu, add it to your PATH, set up a background service, create the first admin, and offer Dagu AI skill installation. Homebrew, npm, Docker, and manual downloads remain available, but they do not include the guided setup flow. See the Installation Guide for details.
Create a Workflow
bash
cat > hello.yaml << 'EOF'
steps:
- command: echo "Hello from Dagu!"
- command: echo "Step 2"
EOFRun
bash
dagu start hello.yamlStart Web UI
bash
dagu start-allVisit http://localhost:8080
Key Capabilities
| Capability | Description |
|---|---|
| Nested Workflows | Reusable sub-DAGs with full execution lineage tracking |
| Distributed Execution | Label-based worker routing with automatic service discovery |
| Error Handling | Exponential backoff retries, lifecycle hooks, continue-on-failure |
| Step Types | Shell, Docker, SSH, HTTP, JQ, Mail, and more |
| Observability | Live logs, Gantt charts, Prometheus metrics, OpenTelemetry |
| AI Agent | Built-in LLM assistant with tool calling, persistent memory, and souls |
| Workflow Operator | Persistent AI operator for Slack and Telegram to manage workflows and incident follow-up |
| Security | Built-in RBAC (Pro) with admin, manager, operator, and viewer roles |
Examples
CLI Orchestration
yaml
schedule: "0 2 * * *"
type: graph
steps:
- id: build
command: make build
- id: test
command: make test
depends: build
retry_policy:
limit: 3
interval_sec: 10
- id: deploy
type: ssh
config:
host: prod-server
command: ./deploy.sh
depends: test
handler_on:
success:
command: notify.sh "Deployment succeeded"
failure:
command: alert.sh "Deployment failed"AI Agent Workflow
yaml
type: graph
steps:
- id: analyze
type: agent
messages:
- role: user
content: "Review error logs and suggest fixes"
output: ANALYSIS
approval:
prompt: "Review AI analysis before applying"
- id: apply
command: ./apply-fix.sh "${ANALYSIS}"
depends: [analyze]See Examples for more patterns.
Use Cases
- CLI Orchestration - Chain shell scripts, Docker containers, and remote commands into reliable workflows
- AI-Agent Workflows - LLM-powered agents with tool calling, approval gates, and memory. Manage workflows through Workflow Operator in Slack or Telegram
- Deployment Automation - Multi-environment rollouts with approval gates
- Scheduled Operations - Cron-based maintenance, backups, and reporting
- Legacy Migration - Wrap existing scripts without rewriting them
Quick Links: Overview | CLI | Web UI | API | Architecture
