17.5k stars · AGPL-3.0 (the sidebar also lists Apache-2.0 for parts of the repository; LICENSE-AGPL confirmed as GNU AGPL v3 on 2026-09-09) · v1.808.0 (2026-09-09), read from /releases/latest — released the same day as the edition · Track this in Scout
Turns a script you already have into a scheduled job with a generated web form and a log of every run.
▶Repo detailsthe review · specs · pros & cons · install
What it is
Windmill is a developer platform that runs scripts. It supports Python, TypeScript, Go, Bash and SQL. It reads the arguments of your function and builds a small form from them, and it can join several scripts into one flow.
What it is good for. A project full of scripts that pull data, run a test, and write a report is the plain case for this. Those scripts otherwise run only when somebody sits down and runs them. Here they run at six in the morning and report a failure. The form it generates also means you can change one number and press a button, instead of opening an editor and hunting for a variable.
- It builds a usable web form from your function's arguments. You write no front-end code at all.
- It keeps every run, with the values used and the output produced. You can see why last Tuesday's result was wrong.
- Secrets, schedules, retries and queues are handled for you. That is a large amount of code you do not have to write or maintain.
- The licence is AGPL-3.0. Running it privately for your own work is fine. Offering Windmill itself to other people over the web would oblige you to publish your changes.
- It is a big program. Postgres plus worker processes, 2 GB of memory and upwards.
- It overlaps Procrastinate (Edition 5 #10) and entry #1 above. The honest split is this. Windmill runs your scripts. Activepieces connects other people's products.
mkdir -p ~/windmill && cd ~/windmill curl -fsSL https://raw.githubusercontent.com/windmill-labs/windmill/main/docker-compose.yml -o docker-compose.yml curl -fsSL https://raw.githubusercontent.com/windmill-labs/windmill/main/Caddyfile -o Caddyfile sudo docker compose up -d # Then open http://your-server:8000 and create the first account.




