n8n alternative
A code-first n8n alternative for developers.
Dagu is a self-hosted n8n alternative for teams that would rather keep their automation in version-controlled YAML than build it on a visual canvas. You still get schedules, retries, logs, and a web UI, all from one binary.
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]Workflows are version-controlled YAML you keep in git
One self-hosted binary, with no database or Node runtime to run
Steps for shell, Docker, HTTP, SSH, and AI agents
Schedules, retries, logs, and a web UI built in
At a glance
n8n vs. Dagu
Version-controlled YAML you edit and review in git.
Visual node canvas configured in a browser UI.
Single binary with local files; no database required.
A long-running service plus a database to self-host.
Code-first scripts, ops jobs, pipelines, and AI agent workflows.
No-code SaaS app integrations and visual automations.
In depth
Where each tool fits
Automation that lives in your repo
A visual node editor is great for wiring SaaS apps together by hand. Code-first teams usually want something different: automation that lives in git, shows up as a clean diff in review, and runs the scripts and binaries they already have.
- Define every step in YAML and keep it under version control.
- Review automation changes in an ordinary pull request.
- Run the commands, scripts, and containers your team already uses.
A smaller thing to self-host
Self-hosting a node-based automation platform usually means running a service plus a database and keeping both healthy. Dagu is a single binary backed by local files, so there is far less to keep running.
- One binary with local file storage, and no external database or broker.
- Start on one host; move to queued or distributed workers when needed.
- Keep upgrades and backups simple.
Built for scripts, ops, and AI agents
Dagu targets developer and operations automation: scheduled jobs, pipelines, runbooks, and agent tasks, rather than no-code SaaS glue.
- Executors for shell, Docker, HTTP, SSH, sub-workflows, and agent steps.
- Dependencies, retries, timeouts, logs, and run history by default.
- Run Claude, Codex, or another agent CLI inside a workflow step.
FAQ
Practical questions before adopting Dagu
Is Dagu a drop-in replacement for n8n?
No. n8n is a visual, node-based tool for connecting SaaS apps without code. Dagu is a code-first orchestrator: it fits when you want version-controlled YAML and a single self-hosted binary for scripts, containers, cron, and agents, but it is not a drag-and-drop builder and has no SaaS connector marketplace.
Does Dagu have a visual editor?
Dagu ships a web UI for running, inspecting, and monitoring workflows, but workflows are authored in YAML rather than drawn on a canvas. The UI is for operating workflows, not building them.
Can Dagu call APIs and webhooks like n8n?
Yes. Dagu can make HTTP requests, run on schedules, and trigger steps from commands, so API calls and webhook-style flows are possible. It just does not bundle hundreds of prebuilt SaaS integrations the way n8n does; you wire those up with HTTP and CLI steps.
Next step
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.