Code-first orchestration platform for internal software
Build any internal software, and run it on Windmill
Windmill lets you build scripts, workflows, apps, agents and data pipelines, and runs them on the fastest self-hostable orchestration engine.
Workflows: Draw a DAG in the flow editor, or write it as code in Python or TypeScript, and call it as an API endpoint. Retries, approvals and parallel branches are built in.
AI agents: Run on any of 12 providers, or on your own model behind an OpenAI-compatible endpoint. Your scripts and MCP servers become its tools.
Data pipelines: Run DuckDB and Python steps on your own buckets, or import your dbt project as it is: Windmill runs it on your workers and tracks each model as an asset, with its lineage.
Apps: A React or Svelte frontend whose backend is your existing scripts and workflows, each one a function the app calls. Share it with your teams, or embed it in your product.
Infrastructure: Worker groups, autoscaling and instance settings are a YAML file, applied by the CLI or a Kubernetes operator. Self-host in your cloud or on-prem.
In the Windmill UI or locally
Build with AI directly in the Windmill UI, or locally from your editor and coding agent with the Windmill CLI or MCP. All of it lands in the same workspace.
Self-hosting? Deploy with Docker or Kubernetes first.
Scope what each team can access
Give each team its integrations, permissions, skills, MCP servers and custom tools, so its AI builds safely, with only the access it needs.
Review before deploying to prod
Changes are built in a fork of the workspace, like a branch. A deployer reviews the diff and the CI results, deploys to staging then prod, and each version stays one click away from a rollback.
Change it in the fork: Edit in the fork, with AI or by hand, and deploy to it with a message. The banner counts what is ahead of staging.
Review and merge: A deployer reviews the diff of each changed item, answers the request and deploys it to staging.
Promote to prod: From staging, the same items go to prod in one click, and git sync commits each deploy to your GitHub or
GitLab repo.
Roll back in a click: Each deployment keeps its version and message. Pick a previous one, see the diff, and redeploy it.
See each run, and why it failed
Windmill is also the runtime your apps, workflows and agents run on, so observability comes built in: each run keeps its inputs, logs and result, and a failure alerts the team with everything needed to fix it.
Inputs, result and logs: Open a run to see what it received, what it returned or why it failed, its logs and its memory, then mark the failure resolved.
Flow timeline: Each step of a flow on one time axis: what ran in parallel, how long each step waited for a worker, and how long it ran.
Traces: The HTTP calls a job makes are captured as OpenTelemetry (OTEL) spans, with their status and timing, and exported to your own collector: Jaeger, Tempo or any OTLP backend.
Queue and worker metrics: Concurrency and queue delay per worker tag, to see which group needs more workers. Also exported over OTEL and exposed to Prometheus.
Service logs: The logs of each worker and server, searchable from the UI, with the errors of each host at a glance. Also written to stdout, so any log collector such as Fluentd can ship them.
Audit logs: Who ran, changed or deleted what, and when, for each script, flow, resource and AI request. Also written to stdout, so any log collector such as Fluentd can ship them.
Build on top of the fastest orchestrator in the industry
From a single-node VPS to 1,000-node Kubernetes clusters, auto-scale on demand or isolate critical tasks with dedicated worker groups.
See benchmarksStrict enough for your platform team, invisible to the person building
Security
Governance
“Windmill quickly became crucial at Photoroom. We self-hosted Windmill Enterprise Edition to run a large number of internal scripts and business-critical automations.”

“At Pave, we self-host Windmill Enterprise Edition to run 100+ scripts and 15+ crons. Our Windmill deployment interacts with half a dozen data stores to power all kinds of business-critical tasks and automations across several teams.”

“Our platform per se is built entirely upon Windmill. It was one of the few products that allowed us the flexibility of integrating with our own third-party Python library and having a graphical user interface already pre-baked - that was the main selling point of Windmill for us.”

“At Investing.com, we use Windmill to orchestrate our AI workflows. The quick setup through Docker Compose and intuitive UI allowed us to get started immediately.”

“We actually use Windmill's job engine to do a lot of the heavy lifting for us. We schedule future jobs into Windmill's job engine to handle some drip hydration tasks for our demo platform.”

“Currently, we employ 9 apps, 20 flows, and 63 scripts in our daily operations. They all serve as the foundation for essential tasks, allowing users to independently manage their activities according to their specific needs.”


