Files
windmill/cli/README.md
2022-11-01 15:53:28 +01:00

78 lines
2.7 KiB
Markdown

# 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.\<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.
### Pushing individual files
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.
## 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/<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.
## Managing Remotes
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.
### 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 <token>`/`--username <username> --password <password>`.
## Completion
The CLI comes with completions out of the box via `wmill completions <shell>`. (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)
```