npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@windmill-labs/hub-cli

v1.0.12

Published

Windmill hub CLI

Readme

Hub CLI

Setup

You 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:

# url of your private hub
HUB_URL=https://hub.my.url

# to get a token, create a token for a superadmin user on your **Windmill instance**.
TOKEN=your_token

# (optional) enterprise license key — alternative to HUB_URL + TOKEN for pull commands
LICENSE_KEY=your_license_key

Note: HUB_URL and TOKEN are not required when using wm-pull with a license key.

Commands

pull

Pull scripts from your private hub and save them in the hub folder.

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) |

pull-resource-types

Pull resource types from your private hub.

wmill-hub pull-resource-types

To pull resource types from the official Windmill hub:

wmill-hub pull-resource-types --url https://hub.windmill.dev

| Option | Alias | Description | |---|---|---| | --url | -u | Hub URL (defaults to HUB_URL env variable) |

pull-flows

Pull flows from your private hub.

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) |

wm-pull

Pull scripts from the official Windmill hub. Equivalent to pull --url https://hub.windmill.dev.

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.

push

Push scripts to your private hub.

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 |

push-resource-types

Push resource types to your private hub.

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) |

push-flows

Push flows to your private hub.

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) |

create

Create an integration script template in the hub folder.

wmill-hub create --summary "My script summary" --language bun --kind action --app my_integration

or simply:

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.

create-flow

Create a flow template in the hub folder.

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 |

generate-metadata

Generate metadata (schema and dependencies) for an integration script. Requires either --integration or --path.

# Generate metadata for all scripts in an integration
wmill-hub generate-metadata --integration my_integration

# Generate 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 |