* feat(cli): add better error handling with path logging for JSON parsing failures - Add try-catch blocks with path logging for all JSON.parse operations in ZipFSElement - Log specific file paths for flow.yaml, app.yaml, script.yaml, and resource.yaml parsing failures - Improve debugging experience by showing which file caused parse errors before re-throwing - Addresses feedback in issue #6369 for better error handling in CLI sync command Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com> * feat(cli): extend error handling to cover extractInlineScripts and additional parsing operations - Add try-catch blocks around extractInlineScriptsForFlows and extractInlineScriptsForApps calls - Add error handling for yamlStringify operations in flow, app, script, and resource processing - Add error handling for yamlParseContent operations in multiple locations - Add error handling for JSON.parse operations in comparison logic - All error handlers log the specific file path that caused the failure for better debugging Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com> * refactor(cli): remove unnecessary try-catch blocks around yamlStringify calls yamlStringify operations cannot fail so the try-catch blocks were unnecessary. Kept the essential error handling for operations that can actually fail like extractInlineScripts, JSON.parse, and yamlParseContent. Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com> --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com> Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
Windmill CLI
A simple CLI allowing interactions with windmill from the command line.

You can find more information in Windmill Docs
Installation
Install the wmill CLI tool using npm install -g windmill-cli.
Update to the latest version using wmill upgrade.
Workspaces
To get started run wmill workspace add or use the instructions from the
workspace settings.
Running Flows & Scripts
Run a script or flow using wmill flow/script run u/username/path/to/script and
pass any inputs using --data + Inputs specified as a JSON string or a file
using @ <filename> or stdin using @-.
Curl-style syntax using -d @- for stdin or -d @<filename> is also supported.
Flow Steps and Logs will be streamed during execution automatically.
Pushing Resources, Scripts & More
The CLI can push specifications to a windmill instance. See the examples/ folder for formats.
Switch to a different workspace
wmill workspace switch <workspace_name>
Sync a workspace
Pull
wmill sync pull
Push
wmill sync push
We recommend using the --yaml option to use yaml instead of json as the encoding format. Yaml will be made the default soon.
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
Pulling
You can pull the entire workspace using wmill pull
Completion
The CLI comes with completions out of the box via wmill completions <shell>.
(Via cliffy)
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)
