Whiz

Crates.io

Whiz (/wɪz/) is a modern DAG/tasks runner for multi-platform monorepos. It provides convenient live reloading, env management, pipes, and more in a tabbed view.

Demo

Whiz is part of the Metatype ecosystem. Consider checking out how this component integrates with the whole ecosystem and browse the documentation to see more examples.

Getting started

You can download the binary executable from releases page on GitHub, make it executable and add it to your $PATH or use eget to automate those steps.

```bash

via eget, make sure $HOME/.local/bin/ is in $PATH or choose another directory

eget zifeo/whiz --to $HOME/.local/bin/

via cargo

cargo install whiz --locked cargo install --git https://github.com/zifeo/whiz --locked

create your tasks file, see https://github.com/zifeo/whiz/blob/main/whiz.yaml for an example

touch whiz.yaml

run

whiz

upgrade

whiz upgrade ```

Usage

Configuration file

Environment variables for all tasks can be defined in the env section at root level. You can use Lade loaders when loading secrets (e.g. infisical://DOMAIN/PROJECT_NAME/ENV_NAME/SECRET_NAME).

env: [key]: [value]

All other root level keys are considered as tasks. Each time a dependency is load, the dependent task is also reloaded.

yaml command: [command] watch: [file or list of files] env: [key]: [value] env_file: [file or list of env files] depends_on: [task or list of task names for dependencies] pipes: # see https://github.com/zifeo/whiz/blob/main/whiz.yaml [regex]: [destination]

See this file for a complete example.

CLI options

See whiz --help for more information.

| Flags | Description | | ------------------- | ---------------------------- | | -f, --file \

Key bindings

| Keys | Action | | ------------ | ----------------------------------- | | l, RighArrow | go to next tab | | h, LeftArrow | go to previous tab | | k, Ctl + p | scroll up one line | | j, Ctl + n | scroll down one line | | Ctl + u | scroll up half page | | Ctl + d | scroll down half page | | Ctl + b | scroll up full page | | Ctl + f | scroll down full page | | 0 | go to last tab | | 1-9 | go to the tab at the given position | | q, Ctl + c | exit the program | | r | rerun the job in the current tab |

Development

bash cargo run --