Windmill hub CLI
npm install @windmill-labs/hub-cliYou can run it directly with bunx @windmill-labs/hub-cli or install it globally with npm install -g @windmill-labs/hub-cli in which case you can run it with wmill-hub.
Create a .env file in the root of the project with the following content:
``envurl of your private hub
HUB_URL=https://hub.my.url
> Note:
HUB_URL and TOKEN are not required when using wm-pull with a license key.Commands
$3
Pull scripts from your private hub and save them in the
hub folder.`bash
wmill-hub pull
`| Option | Alias | Description |
|---|---|---|
|
--url | -u | Hub URL (defaults to HUB_URL env variable) |
| --license-key | -l | License key to validate enterprise edition (defaults to LICENSE_KEY env variable, alternative to HUB_URL + TOKEN) |$3
Pull resource types from your private hub.
`bash
wmill-hub pull-resource-types
`To pull resource types from the official Windmill hub:
`bash
wmill-hub pull-resource-types --url https://hub.windmill.dev
`| Option | Alias | Description |
|---|---|---|
|
--url | -u | Hub URL (defaults to HUB_URL env variable) |$3
Pull flows from your private hub.
`bash
wmill-hub pull-flows
`| Option | Alias | Description |
|---|---|---|
|
--url | -u | Hub URL (defaults to HUB_URL env variable) |
| --license-key | -l | License key to validate enterprise edition (defaults to LICENSE_KEY env variable, alternative to HUB_URL + TOKEN) |$3
Pull scripts from the official Windmill hub. Equivalent to
pull --url https://hub.windmill.dev.`bash
wmill-hub wm-pull
`| Option | Alias | Description |
|---|---|---|
|
--license-key | -l | License key to validate enterprise edition (defaults to LICENSE_KEY env variable, alternative to HUB_URL + TOKEN) |You can then run
wmill-hub push to push the scripts to your private hub.
If you don't want all of them, delete the integrations you don't want before the first push.
If you want to modify them, do it directly on the hub, not in the hub folder.
To get the latest version of the official hub, run wmill-hub wm-pull again. It will not overwrite the imported scripts you modified on the hub.$3
Push scripts to your private hub.
`bash
wmill-hub push
`| Option | Alias | Description |
|---|---|---|
|
--url | -u | Hub URL (defaults to HUB_URL env variable) |
| --dry-run | -d | Run without actually pushing (default: false) |
| --ci | -c | Run in CI mode, non-interactive (default: false) |
| --integration | -i | Push only a specific integration |$3
Push resource types to your private hub.
`bash
wmill-hub push-resource-types
`| Option | Alias | Description |
|---|---|---|
|
--url | -u | Hub URL (defaults to HUB_URL env variable) |
| --dry-run | -d | Run without actually pushing (default: false) |
| --ci | -c | Run in CI mode, non-interactive (default: false) |$3
Push flows to your private hub.
`bash
wmill-hub push-flows
`| Option | Alias | Description |
|---|---|---|
|
--url | -u | Hub URL (defaults to HUB_URL env variable) |
| --dry-run | -d | Run without actually pushing (default: false) |
| --ci | -c | Run in CI mode, non-interactive (default: false) |$3
Create an integration script template in the
hub folder.`bash
wmill-hub create --summary "My script summary" --language bun --kind action --app my_integration
`or simply:
`bash
wmill-hub create -s "My script summary" -a my_integration
`| Option | Alias | Required | Description |
|---|---|---|---|
|
--summary | -s | yes | Script summary |
| --app | -a | yes | Integration app name |
| --kind | -k | no | Script kind: action, trigger, approval, failure (default: action) |
| --language | -l | no | Script language (default: bun) |Supported languages:
python3, deno, bun, nativets, go, bash, powershell, postgresql, mysql, bigquery, snowflake, mssql, graphql, php.$3
Create a flow template in the
hub folder.`bash
wmill-hub create-flow --summary "My flow summary" --app my_integration
`| Option | Alias | Required | Description |
|---|---|---|---|
|
--summary | -s | yes | Flow summary |
| --app | -a | yes | Integration app name |$3
Generate metadata (schema and dependencies) for an integration script. Requires either
--integration or --path.`bash
Generate metadata for all scripts in an integration
wmill-hub generate-metadata --integration my_integrationGenerate metadata for a specific script
wmill-hub generate-metadata --path hub/my_integration/scripts/action/123_my_script/script.json
`| Option | Alias | Description |
|---|---|---|
|
--integration | -i | Integration name (generates metadata for all action scripts in the integration) |
| --path | -p | Path to a specific script.json` file |