windmill

star 7

Build automation workflows and internal tools with Windmill's code-first platform.

modbender By modbender schedule Updated 3/6/2026

name: Windmill description: Build automation workflows and internal tools with Windmill's code-first platform. metadata: {"clawdbot":{"emoji":"๐ŸŒ€","os":["linux","darwin","win32"]}}

Script Traps

  • Main function signature determines input schema โ€” Windmill infers from type hints, wrong types break the UI form
  • Return value is the script output โ€” forgetting to return means downstream steps get nothing
  • Python dependencies go in inline requirements.txt comment โ€” not a global file, each script is isolated
  • TypeScript runs on Bun โ€” Node.js-specific APIs may not work

Flow Execution

  • results.step_name fails if step hasn't run yet โ€” conditional branches cause undefined access errors
  • Parallel branches need explicit configuration โ€” default is sequential, not concurrent
  • Suspend steps wait forever without timeout โ€” set explicit timeout or flow hangs indefinitely
  • Error handlers only catch step failures โ€” script syntax errors bypass handlers

Scheduling Pitfalls

  • Timezone defaults to server timezone โ€” set explicitly or jobs fire at unexpected times
  • Concurrent execution allowed by default โ€” add mutex lock if jobs shouldn't overlap
  • Schedules attach to scripts/flows โ€” no standalone schedule entities, delete script = delete schedule

Secrets and Variables

  • Secrets cannot be read back from UI after creation โ€” store originals securely elsewhere
  • Variables are plaintext and visible โ€” never put sensitive data in variables, only secrets
  • Path format matters โ€” u/username/secret for user, f/folder/secret for shared

Self-Hosting

  • PostgreSQL is the only state โ€” workers are stateless, back up only the database
  • Single container includes workers โ€” fine for small loads, separate workers for scale
  • Worker count determines parallelism โ€” one worker = one concurrent script execution

Webhook Triggers

  • Each script/flow gets unique webhook URL โ€” changes if you rename the script
  • Webhook payload becomes script input โ€” schema must match expected arguments
  • No built-in auth on webhooks โ€” validate tokens in script logic or use reverse proxy

Common Mistakes

  • Testing flows without testing scripts first โ€” debug scripts individually
  • Expecting state between runs โ€” use variables or external storage for persistence
  • Hardcoding paths โ€” use wmill.get_resource() for portability between workspaces
Install via CLI
npx skills add https://github.com/modbender/skill-library-mcp --skill windmill
Repository Details
star Stars 7
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator