Windmill CLI Setup for Cursor AI Agents

Version: 1.0
Date: January 30, 2026
Owner: AI Team


1. Purpose

This guide enables Cursor AI agents to inspect and interact with Windmill pipelines. Windmill is our workflow orchestration platform (being phased out).

Note: We are migrating away from Windmill. This documentation is primarily for inspection and migration purposes.


2. Credentials Location

1Password:

  • Vault: Brainforge AI Team
  • Item: Windmill Token Uttam (note: may have trailing space)

Retrieve Token:

# Search for Windmill items
op item list | grep -i windmill
 
# Get token
op item get "Windmill Token Uttam " --format json

3. CLI Installation

# Install via npm
npm install -g windmill-cli
 
# Verify installation
wmill --version

4. Authentication

# Add workspace (for Windmill Cloud)
wmill workspace add brainforgeai brainforgeai \
  --base-url https://app.windmill.dev \
  --token YOUR_TOKEN
 
# Or interactive login
wmill workspace add

5. Common Operations

5.1 List Workspaces

wmill workspace list --base-url https://app.windmill.dev

5.2 Switch Workspace

wmill workspace switch brainforgeai

5.3 Sync/Pull Scripts

# Pull all scripts to local directory
wmill sync pull
 
# Pull specific folder
wmill sync pull --include "f/zoom*"

5.4 List Scripts

# List all scripts in workspace
wmill script list

5.5 Run Script

wmill script run f/zoom_export/zoom_to_aws_s3_export \
  --data '{"meeting_uuid": "xxx"}'

6. Script Structure

Windmill scripts are organized by:

  • Folders (f/) - Grouping scripts by feature
  • Scripts - Individual executable code
  • Flows - Multi-step workflows

Example paths:

  • f/zoom_export/zoom_to_aws_s3_export
  • f/zoom_event_subscription/zoom_event_subscription

7. Inspecting Scripts for Migration

When migrating to other services:

  1. Sync scripts locally:

    wmill sync pull
  2. Review script code in f/ directories

  3. Identify:

    • Triggers (webhooks, schedules)
    • External API calls
    • Database operations
    • Output destinations

8. UI Access


9. Migration Status

ScriptStatusReplacement
zoom_to_aws_s3_exportMigratedzoomExport.ts (Railway)
zoom_event_subscriptionMigratedwebhook route (Next.js)

10. Troubleshooting

“No workspace given” error:

  • Use --base-url https://app.windmill.dev for cloud
  • Or run wmill workspace add first

“sync pull” hangs:

  • May prompt for confirmation
  • Use printf "Y\n" | wmill sync pull

Token not working:

  • Verify token in 1Password (check for trailing spaces)
  • Ensure token has correct permissions

11. API Reference


12. Version History

  • v1.0 (January 30, 2026) — Initial documentation for migration purposes