Run Argo Workflows on your laptop. No cluster to set up.
Dagweave Local runs your workflow locally, using the same CLI commands you already use, for free.
The loop
Editing a workflow usually means pushing it to a cluster and waiting to find out you had a typo. Dagweave Local runs the same YAML on your machine instead.
Script steps run straight on your machine. Steps with a container image need Docker, and Dagweave Local starts and manages a small cluster for them.
$ dagweave run examples/pipeline.yaml
dagweave: running on the host, because every step is a command this machine can run directly
dagweave: steps run against this machine, so alpine:3.20 is not used
dagweave: steps share this machine's /tmp, which separate pods would not, so a step reading what another wrote there works here and would not on a cluster
hello
HELLO
5
HELLO has 5 letters
Succeeded produce 4ms
Succeeded shout 6ms
Succeeded count 6ms
Succeeded finish 3ms
Succeeded pipeline 14ms
dagweave: Succeeded, 5 step(s), under /home/you/.local/state/dagweave/runs/pipelineThe commands you already use
You run the same CLI commands as if you were running the argo CLI.
argo submit wf.yaml -> dagweave submit wf.yaml
argo get NAME -> dagweave get NAME
argo logs NAME -> dagweave logs NAME
argo list -> dagweave list
argo lint wf.yaml -> dagweave lint wf.yaml
argo delete NAME -> dagweave delete NAMETry an expression before you run it
Argo expressions are easy to get wrong, and you usually find out halfway through a run. Try one with dagweave expr first, and it tells you what Argo would get. Run dagweave lint and it checks every expression in the workflow.
$ dagweave expr 'asInt(inputs.parameters.m) * 2'
dagweave: column 7: nothing called inputs.parameters.m is in scope.
asInt(inputs.parameters.m) * 2
^
Give it a value with --param m=VALUE.Free
Dagweave Local is free to download and use, with no limits on what you run and no account needed.
Download Dagweave Local, free
curl -fsSL https://github.com/dagweave/local-releases/releases/latest/download/dagweave-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') -o Dagweave && chmod +x Dagweavecurl -fsSL https://github.com/dagweave/local-releases/releases/latest/download/dagweave-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') -o Dagweave && chmod +x Dagweave$a = if ($env:PROCESSOR_ARCHITECTURE -eq 'ARM64') { 'arm64' } else { 'amd64' }; irm "https://github.com/dagweave/local-releases/releases/latest/download/dagweave-windows-$a.exe" -OutFile dagweave.exeUsing Homebrew? brew install dagweave/tap/dagweave
You'll need Docker installed if your steps run containers.
Develop locally. Ship to your cluster.
Test every change locally, straight from the Dagweave editor. When it works, run the exact same workflow on your cluster. Nothing to rewrite.
The Dagweave Local CLI is free. Want a UI? Connect it to the Dagweave app with a paid plan.
$ dagweave login
Open https://app.dagweave.com/device and enter BCDF-GHJK
Waiting for you to approve this machine in the browser...
$ dagweave listen
dagweave: connecting my-laptop to https://app.dagweave.com
dagweave: listening.