skillpack.co
All solutions

Windmill

active

Code-first workflow platform — turn Python/TypeScript/Go/Bash scripts into workflows with auto-generated UIs. 16K stars, 148 contributors, 420 commits/30d, extreme release velocity (v1.661.0). 51K npm weekly downloads.

Score 92
Windmill in action

Where it wins

428pt HN peak + 378pts for 'fastest workflow engine' — strong developer reception

Code-first: Python/TypeScript/Go/Bash with auto-generated UIs

420 commits/30d, v1.661.0 — extreme release velocity

Independent comparisons confirm best-in-class for code-heavy internal tooling

51K npm weekly downloads, 148 contributors

Where to be skeptical

Smaller community than n8n (16K vs 180K stars) and Kestra (26.5K)

No MCP bridge found — limits Claude Code integration

Code-first approach limits non-developer adoption

Less AI-native than n8n — no dedicated AI nodes

Editorial verdict

Best for developers who want workflows-as-code rather than visual canvases. Purpose-built for internal tooling, DevOps automation, and script orchestration. If your automation is 'run these scripts in sequence with a UI,' Windmill is the answer. No MCP bridge limits Claude Code integration.

Videos

Reviews, tutorials, and comparisons from the community.

Windmill.dev - An Open Source Low-Code Automation Tool

Trevor Sullivan·2023

Related

Public evidence

Raw GitHub source

GitHub README peek

Constrained peek so you can sanity-check the source material without leaving the site.

<p align="center"> <a href="https://www.windmill.dev/"><img src="https://raw.githubusercontent.com/windmill-labs/windmill/main/imgs/windmill-banner.png" alt="windmill.dev"></a> </p> <p align=center> Open-source developer platform for internal code: APIs, background jobs, workflows and UIs. Self-hostable alternative to Retool, Pipedream, Superblocks and a simplified Temporal with autogenerated UIs and custom UIs to trigger workflows and scripts as internal apps. <p align=center> Scripts are turned into sharable UIs automatically, and can be composed together into flows or used into richer apps built with low-code. Supported languages: Python, TypeScript, Go, Bash, SQL, GraphQL, PowerShell, Rust, and more. </p> <p align="center"> <a href="https://github.com/windmill-labs/windmill/blob/main/LICENSE-AGPL" target="_blank"> </a> <a href="https://github.com/windmill-labs/windmill/actions/workflows/docker-image.yml" target="_blank"> <img src="https://github.com/windmill-labs/windmill/actions/workflows/docker-image.yml/badge.svg" alt="Docker Image CI"> </a> <a href="https://pypi.org/project/wmill" target="_blank"> </a> </p> <p align="center"> </a> <a href="https://discord.gg/V7PM2YHsPB" target="_blank"> <img src="https://discordapp.com/api/guilds/930051556043276338/widget.png" alt="Discord Shield"/> </a> </p> <p align="center"> <a href="https://app.windmill.dev">Try it</a> - <a href="https://www.windmill.dev/">Website</a> - <a href="https://www.windmill.dev/docs/intro/">Docs</a> - <a href="https://discord.gg/V7PM2YHsPB">Discord</a> - <a href="https://hub.windmill.dev">Hub</a> - <a href="https://www.windmill.dev/docs/misc/contributing">Contributor's guide</a> </p>

Windmill - Developer platform for APIs, background jobs, workflows and UIs

Windmill is fully open-sourced (AGPLv3) and Windmill Labs offers dedicated instances and commercial support and licenses.

Windmill Diagram

https://github.com/user-attachments/assets/d80de1d9-64de-4d89-aacd-6df23fa81fc4

  • Windmill - Developer platform for APIs, background jobs, workflows and UIs
    • Main Concepts
    • Show me some actual script code
    • Local Development
    • Stack
    • Fastest Self-Hostable Workflow Engine
    • Security
    • Performance
    • Architecture
    • How to self-host
      • Docker compose
      • Kubernetes (Helm charts)
      • Cloud providers
      • OAuth, SSO & SMTP
      • License
      • Integrations
    • Environment Variables
    • Run a local dev setup
      • Frontend only
      • Backend + Frontend
    • Contributors
    • Copyright

Main Concepts

  1. Define a minimal and generic script in Python, TypeScript, Go or Bash that solves a specific task. The code can be defined in the provided Web IDE or synchronized with your own GitHub repo (e.g. through VS Code extension): provided Web IDE or synchronized with your own GitHub repo (e.g. through VS Code extension):

Step 1

  1. Your scripts parameters are automatically parsed and generate a frontend.

Step 2

Step 3

  1. Make it flow! You can chain your scripts or scripts made by the community shared on WindmillHub.

Step 3

  1. Build complex UIs on top of your scripts and flows.

Step 4

Scripts and flows can be triggered by schedules, webhooks, HTTP routes, Kafka, WebSockets, emails, and more.

Build your entire infra on top of Windmill!

Show me some actual script code

//import any dependency  from npm
import * as wmill from "windmill-client";
import * as cowsay from "cowsay@1.5.0";

// fill the type, or use the +Resource type to get a type-safe reference to a resource
type Postgresql = {
  host: string;
  port: number;
  user: string;
  dbname: string;
  sslmode: string;
  password: string;
};

export async function main(
  a: number,
  b: "my" | "enum",
  c: Postgresql,
  d = "inferred type string from default arg",
  e = { nested: "object" }
  //f: wmill.Base64
) {
  const email = process.env["WM_EMAIL"];
  // variables are permissioned and by path
  let variable = await wmill.getVariable("f/company-folder/my_secret");
  const lastTimeRun = await wmill.getState();
  // logs are printed and always inspectable
  console.log(cowsay.say({ text: "hello " + email + " " + lastTimeRun }));
  await wmill.setState(Date.now());

  // return is serialized as JSON
  return { foo: d, variable };
}

Local Development

Windmill supports multiple ways to develop locally and sync with your instance:

ToolDescription
CLISync scripts from local files or GitHub, run scripts/flows from the command line
VS Code ExtensionEdit and test scripts & flows directly from VS Code / Cursor with full IDE support
Git SyncTwo-way sync between Windmill and your Git repository
Claude CodeAI-assisted development with Claude for scripts, flows, and apps

https://github.com/user-attachments/assets/c541c326-e9ae-4602-a09a-1989aaded1e9

You can run scripts locally by passing the right environment variables for the wmill client library to fetch resources and variables from your instance. See local development docs.

View on GitHub →