Write scripts for production

Write a script in any language, Windmill turns it into an API endpoint, a scheduled job, or a shareable tool with a UI. No infrastructure to manage.

Write in TypeScript, Python, Go, Bash, SQL and 20+ languages
Trigger from webhooks, schedules, queues, or the auto-generated UI
Built-in versioning and full observability on every run
Compose into workflows or use as backends for internal apps

Trusted by 4,000+ organizations, including 300+ EE customers at scale:

ZoomZoomKahootInvesting.comCFA InstituteAxiansAxiansPhotoroomPavePanther LabsNocd

What is a script on Windmill?

A script is a function in any language that you write, deploy and monitor directly on Windmill. Windmill handles the runtime, the dependencies, the UI and the API. You just write the logic.

Each script automatically gets an auto-generated form, webhook endpoints and real-time logs. Scripts can run on demand or through built-in triggers, and can be composed into workflows and apps.

Two ways to write scripts

Write scripts directly in the Windmill UI or develop locally with your own editor. Both paths deploy to the same platform.

In the Windmill UI

The built-in editor gives you autocomplete, LSP support, a live preview of the auto-generated UI, one-click deploy and AI assistance (BYOK).

Learn more about the script editor

In your local editor

Use the CLI, the VS Code extension or AI coding tools like Claude Code. Scripts are standard files on disk, ready for any editor or AI agent.

Learn more about local development

Built-in triggers

Every script gets an auto-generated UI so anyone on your team can run it. It also gets sync and async API endpoints out of the box. On top of that, Windmill provides a full set of built-in triggers: schedules, Kafka, Postgres CDC, SQS, MQTT, emails, WebSockets and more.

Learn more about available triggers
Script triggers

Built for production

Every script runs within a platform built for enterprise requirements: immutable versioning, role-based access control, full audit trails, SSO and self-hosting. No extra setup needed.

Versioning and deploy

Every script version is immutable and addressable by hash. Deploy from the UI, the CLI or Git sync. Roll back to any previous version instantly. Sync your workspace with GitHub or GitLab and use your existing code review workflows.

Learn more about deployment and versioning

Full observability

Every run is logged with inputs, outputs, duration and status. Real-time execution logs stream as your script runs. Set up error handlers to send alerts on failure. Audit trails track who ran what and when.

Learn more about observability

RBAC and permissions

Control who can view, edit and run each script with role-based access control. Organize scripts into folders with group-level permissions. Authenticate users with SSO. Every action is recorded in the audit log.

Learn more about RBAC

Assign scripts to dedicated infrastructure

Choose where and how each script runs. Assign scripts to worker groups with specific hardware, network access or pre-installed dependencies. Run them remotely with agent workers behind firewalls, or use dedicated workers for high-throughput scripts that need permanently warm runtimes.

Learn more about workers

Frequently asked questions

Build your internal platform on Windmill

Scripts, flows, apps, and infrastructure in one place.