Automation
Skill
/cli-commands
MUST use when using the CLI, including debugging job failures and inspecting run history via `wmill job`.
Install
$ npx -y skills add windmill-labs/windmill --skill cli-commands --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/cli-commands
Context preview
The summary Claude sees to decide when to auto-load this skill.
MUST use when using the CLI, including debugging job failures and inspecting run history via `wmill job`.
SKILL.md
cli-commands.SKILL.mdname: cli-commands
description: MUST use when using the CLI, including debugging job failures and inspecting run history via `wmill job`.
Windmill CLI Commands
The Windmill CLI (`wmill`) provides commands for managing scripts, flows, apps, and other resources.
Global Options
- `--workspace <workspace:string>` - Specify the target workspace. This overrides the default workspace.
- `--debug --verbose` - Show debug/verbose logs
- `--show-diffs` - Show diff informations when syncing (may show sensitive informations)
- `--token <token:string>` - Specify an API token. This will override any stored token.
- `--base-url <baseUrl:string>` - Specify the base URL of the API. If used, --token and --workspace are required and no local remote/workspace already set will be used.
- `--config-dir <configDir:string>` - Specify a custom config directory. Overrides WMILL_CONFIG_DIR environment variable and default ~/.config location.
Commands
app
app related commands
**Options:**
- `--json` - Output as JSON (for piping to jq)
**Subcommands:**
- `app list` - list all apps
- `--json` - Output as JSON (for piping to jq)
- `app get <path:string>` - get an app's details
- `--json` - Output as JSON (for piping to jq)
- `app push [file_path:string] [remote_path:string]` - push a local app. With no args, infers the app from the current directory and the remote path from its location relative to wmill.yaml.
- `app dev [app_folder:string]` - Start a development server for building apps with live reload and hot module replacement
- `--port <port:number>` - Port to run the dev server on (will find next available port if occupied)
- `--host <host:string>` - Host to bind the dev server to
- `--entry <entry:string>` - Entry point file (default: index.ts for Svelte/Vue, index.tsx otherwise)
- `--no-open` - Don't automatically open the browser
- `--recording` - Frame the app in a shell with a Record button, to capture a replayable session recording of the app under development
- `app lint [app_folder:string]` - Lint a raw app folder to validate structure and buildability
- `--fix` - Attempt to fix common issues (not implemented yet)
- `app bundle [app_folder:string]` - Bundle a raw app folder to js/css without deploying it
- `--out <dir:string>` - Directory to write bundle.js and bundle.css into (default: <app_folder>/dist)
- `--no-minify` - Skip minification
- `app new` - create a new raw app from a template
- `--summary <summary:string>` - App summary (short description). Skips the prompt when provided. Triggers non-interactive mode.
- `--path <path:string>` - App path (e.g., f/folder/my_app or u/username/my_app). Skips the prompt when provided. Triggers non-interactive mode.
- `--framework <framework:string>` - Framework template: react19 | react18 | svelte5 | vue. Skips the prompt when provided. Triggers non-interactive mode.
- `--datatable <datatable:string>` - Datatable to wire up. Without this flag in non-interactive mode, no datatable is configured.
- `--schema <schema:string>` - Schema to use with --datatable. Created (CREATE SCHEMA IF NOT EXISTS) if it doesn't already exist.
- `--overwrite` - Overwrite the target directory if it already exists, without prompting.
- `--no-open-in-desktop` - Do not prompt to open the new app in Claude Desktop.
- `app generate-agents [app_folder:string]` - regenerate AGENTS.md and DATATABLES.md from remote workspace
- `app set-permissioned-as <path:string> <email:string>` - Set the on_behalf_of_email for an app (requires admin or wm_deployers group)
audit
View audit logs (requires admin)
**Subcommands:**
- `audit list` - List audit log entries
- `audit get <id:string>` - Get a specific audit log entry
- `--json` - Output as JSON (for piping to jq)
config
Show all available wmill.yaml configuration options
**Options:**
- `--json` - Output as JSON for programmatic consumption
**Subcommands:**
- `config migrate` - Migrate wmill.yaml from gitBranches/environments to workspaces format
datatable
datatable related commands
**Subcommands:**
- `datatable list` - list all datatables in the workspace
- `--json` - Output as JSON (for piping to jq)
- `datatable run <sql:string>` - run a SQL query on a datatable
- `-n --name <name:string>` - Datatable name (default: main)
- `-s --silent` - Output only the final result as JSON. Useful for scripting.
- `datatable migrate` - manage datatable migrations
- `datatable migrate new <name:string>` - scaffold a new migration (.up.sql / .down.sql files)
- `-d --datatable <datatable:string>` - Target datatable (default: main)
- `datatable migrate up` - apply all pending migrations to the main datatable (or one via --datatable)
- `-d --datatable <datatable:string>` - Target datatable (default: main)
- `datatable migrate down` - roll back the most recent migration on the main datatable (or one via --datatable)
- `-d --datatable <datatable:string>` - Target datatable (default: main)
- `datatable create [name:string]` - register a datatable database in the workspace (default: instance-backed 'main') so scripts can use datatable://<name>
- `--resource <resource:string>` - Back the datatable with an existing postgresql resource path instead of the instance database
- `--force` - Allow adding to a workspace that already has datatables (fork metadata on existing ones is not preserved)
- `datatable serve` - Serve all datatables as a Postgres-wire endpoint (psql, DBeaver, pgAdmin); the client picks the datatable via the database name in its connection string
- `--port <port:number>` - Port to listen on (default: first free port in 5433-5500)
- `--host <host:string>` - Bind address (default: 127.0.0.1)
- `--password <password:string>` - Password for Postgres clients (default: generate a random password at startup)
- `datatable psql` - Start a serve listener and launch psql connected to it
- `-n --name <name:string>` - Datatable to connect psql t
Read more
name: cli-commands description: MUST use when using the CLI, including debugging job failures and inspecting run history via `wmill job`.
Windmill CLI Commands
The Windmill CLI (`wmill`) provides commands for managing scripts, flows, apps, and other resources.
Global Options
- `--workspace <workspace:string>` - Specify the target workspace. This overrides the default workspace.
- `--debug --verbose` - Show debug/verbose logs
- `--show-diffs` - Show diff informations when syncing (may show sensitive informations)
- `--token <token:string>` - Specify an API token. This will override any stored token.
- `--base-url <baseUrl:string>` - Specify the base URL of the API. If used, --token and --workspace are required and no local remote/workspace already set will be used.
- `--config-dir <configDir:string>` - Specify a custom config directory. Overrides WMILL_CONFIG_DIR environment variable and default ~/.config location.
Commands
app
app related commands
**Options:**
- `--json` - Output as JSON (for piping to jq)
**Subcommands:**
- `app list` - list all apps
- `--json` - Output as JSON (for piping to jq)
- `app get <path:string>` - get an app's details
- `--json` - Output as JSON (for piping to jq)
- `app push [file_path:string] [remote_path:string]` - push a local app. With no args, infers the app from the current directory and the remote path from its location relative to wmill.yaml.
- `app dev [app_folder:string]` - Start a development server for building apps with live reload and hot module replacement
- `--port <port:number>` - Port to run the dev server on (will find next available port if occupied)
- `--host <host:string>` - Host to bind the dev server to
- `--entry <entry:string>` - Entry point file (default: index.ts for Svelte/Vue, index.tsx otherwise)
- `--no-open` - Don't automatically open the browser
- `--recording` - Frame the app in a shell with a Record button, to capture a replayable session recording of the app under development
- `app lint [app_folder:string]` - Lint a raw app folder to validate structure and buildability
- `--fix` - Attempt to fix common issues (not implemented yet)
- `app bundle [app_folder:string]` - Bundle a raw app folder to js/css without deploying it
- `--out <dir:string>` - Directory to write bundle.js and bundle.css into (default: <app_folder>/dist)
- `--no-minify` - Skip minification
- `app new` - create a new raw app from a template
- `--summary <summary:string>` - App summary (short description). Skips the prompt when provided. Triggers non-interactive mode.
- `--path <path:string>` - App path (e.g., f/folder/my_app or u/username/my_app). Skips the prompt when provided. Triggers non-interactive mode.
- `--framework <framework:string>` - Framework template: react19 | react18 | svelte5 | vue. Skips the prompt when provided. Triggers non-interactive mode.
- `--datatable <datatable:string>` - Datatable to wire up. Without this flag in non-interactive mode, no datatable is configured.
- `--schema <schema:string>` - Schema to use with --datatable. Created (CREATE SCHEMA IF NOT EXISTS) if it doesn't already exist.
- `--overwrite` - Overwrite the target directory if it already exists, without prompting.
- `--no-open-in-desktop` - Do not prompt to open the new app in Claude Desktop.
- `app generate-agents [app_folder:string]` - regenerate AGENTS.md and DATATABLES.md from remote workspace
- `app set-permissioned-as <path:string> <email:string>` - Set the on_behalf_of_email for an app (requires admin or wm_deployers group)
audit
View audit logs (requires admin)
**Subcommands:**
- `audit list` - List audit log entries
- `audit get <id:string>` - Get a specific audit log entry
- `--json` - Output as JSON (for piping to jq)
config
Show all available wmill.yaml configuration options
**Options:**
- `--json` - Output as JSON for programmatic consumption
**Subcommands:**
- `config migrate` - Migrate wmill.yaml from gitBranches/environments to workspaces format
datatable
datatable related commands
**Subcommands:**
- `datatable list` - list all datatables in the workspace
- `--json` - Output as JSON (for piping to jq)
- `datatable run <sql:string>` - run a SQL query on a datatable
- `-n --name <name:string>` - Datatable name (default: main)
- `-s --silent` - Output only the final result as JSON. Useful for scripting.
- `datatable migrate` - manage datatable migrations
- `datatable migrate new <name:string>` - scaffold a new migration (.up.sql / .down.sql files)
- `-d --datatable <datatable:string>` - Target datatable (default: main)
- `datatable migrate up` - apply all pending migrations to the main datatable (or one via --datatable)
- `-d --datatable <datatable:string>` - Target datatable (default: main)
- `datatable migrate down` - roll back the most recent migration on the main datatable (or one via --datatable)
- `-d --datatable <datatable:string>` - Target datatable (default: main)
- `datatable create [name:string]` - register a datatable database in the workspace (default: instance-backed 'main') so scripts can use datatable://<name>
- `--resource <resource:string>` - Back the datatable with an existing postgresql resource path instead of the instance database
- `--force` - Allow adding to a workspace that already has datatables (fork metadata on existing ones is not preserved)
- `datatable serve` - Serve all datatables as a Postgres-wire endpoint (psql, DBeaver, pgAdmin); the client picks the datatable via the database name in its connection string
- `--port <port:number>` - Port to listen on (default: first free port in 5433-5500)
- `--host <host:string>` - Bind address (default: 127.0.0.1)
- `--password <password:string>` - Password for Postgres clients (default: generate a random password at startup)
- `datatable psql` - Start a serve listener and launch psql connected to it
- `-n --name <name:string>` - Datatable to connect psql t
Ships withwindmill
Windmill is fully open-sourced (AGPLv3) and Windmill Labs offers dedicated instances and commercial support and licenses.
Get the whole plugin
Stats
17,908
Stars
1,095
Forks
Active
Maintenance
Rust
Language
2d ago
Last commit
4y ago
Created
Repo: windmill-labs/windmill
Other skills on windmill.
Skill
Skill
Skill
Skill
Skill
Skill

