A simple CLI allowing interactions with windmill from the command line.
Install the wmill
CLI tool using deno install --unstable -A https://deno.land/x/wmill/main.ts
.
Update to the latest version using wmill upgrade
.
Setup the CLI by running wmill setup
. This will guide you through the setup process easily.
The CLI can push resource specifications to a windmill instance. See the examples/ folder for formats.
You can push all files in a folder at once using wmill push
Files MUST be named resource_name.<type>.json. They will be pushed to the remote path they are in, for example the file u/admin/fib/fib.script.json
will be pushed as a script to u/admin/fib/fib.
You can push individual resources using wmill <type> push <file_name> \<remote_name\>
. This does not require a special folder layout or file name, as this is given at runtime.
All commands support listing by just not providing a subcommand, ie wmill script
will result in a list of scripts. Some allow additional options, learn about this by specifying --help
.
You can add & remove users via wmill user add/remove
, and list them using wmill user
Logging in using wmill login
or the setup will save a token to your local computer, into ~/.config/windmill/<hash>/token
(or C:\Users\<username>\AppData\Roaming\windmill\<hash>\token
on windows).
This is inherently unsafe, so do not log into the CLI on untrusted devices.
Advanced users may use multiple remotes at once, which the CLI supports using wmill remote
.
Add remotes using wmill remote add <name> <base_url>
& Remove them using wmill remote remove <name>
.
You can use a remote by either setting it as default using wmill remote set-default <name>
or by overriding the remote using --remote <name>
on any command.
If you don't want to save the URL locally, you can always override the command using --base-url <base_url>
on any command.
You will have to login on each remote, either do this using wmill login
or override the token/credentials on each command using --token <token>
/--username <username> --password <password>
.
The CLI comes with completions out of the box via wmill completions <shell>
. (Via cliffy)
To enable bash completions add the following line to your ~/.bashrc
:
source <(wmill completions bash)
To enable fish completions add the following line to your ~/.config/fish/config.fish
:
source (wmill completions fish | psub)
To enable zsh completions add the following line to your ~/.zshrc
:
source <(wmill completions zsh)