# Windmill CLI A simple CLI allowing interactions with windmill from the command line. [![asciicast](https://asciinema.org/a/533968.svg)](https://asciinema.org/a/533968) ## Setup Setup the CLI by running `wmill setup`. This will guide you through the setup process easily. ## Pushing Resources The CLI can push resource specifications to a windmill instance. See the [examples/](./examples/) folder for formats. ### Pushing a folder You can push all files in a folder at once using `wmill push` Files MUST be named resource_name.\.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. ### Pushing individual files You can push individual resources using `wmill push \`. This does not require a special folder layout or file name, as this is given at runtime. ## Listing 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`. ## User Management You can add & remove users via `wmill user add/remove`, and list them using `wmill user` ## Login Logging in using `wmill login` or the setup will save a token to your local computer, into `~/.config/windmill//token` (or `C:\Users\\AppData\Roaming\windmill\\token` on windows). This is inherently unsafe, so do not log into the CLI on untrusted devices. ## Managing Remotes Advanced users may use multiple remotes at once, which the CLI supports using `wmill remote`. Add remotes using `wmill remote add ` & Remove them using `wmill remote remove `. You can use a remote by either setting it as default using `wmill remote set-default ` or by overriding the remote using `--remote ` on any command. If you don't want to save the URL locally, you can always override the command using `--base-url ` on any command. ### Login on multiple remotes You will have to login on each remote, either do this using `wmill login` or override the token/credentials on each command using `--token `/`--username --password `. ## Completion The CLI comes with completions out of the box via `wmill completions `. (Via [cliffy](https://cliffy.io/)) ### Bash To enable bash completions add the following line to your `~/.bashrc`: ``` source <(wmill completions bash) ``` ### Fish To enable fish completions add the following line to your `~/.config/fish/config.fish`: ``` source (wmill completions fish | psub) ``` ### Zsh To enable zsh completions add the following line to your `~/.zshrc`: ``` source <(wmill completions zsh) ```