Skip to main content

Apps

Listing apps​

The wmill app list command is used to list all apps in the remote workspace.

wmill app

Pushing an app​

Pushing an app to a Windmill instance is done using the wmill app push command.

wmill app push <file_path>

Arguments​

ArgumentDescription
file_pathThe path to the app file to push.

Examples​

  1. Push the app located at ./my_app.json.
wmill app push ./my_app.json

App access mode​

The access mode is the one policy field a tracked app file keeps: app.yaml for low-code apps, raw_app.yaml for full-code apps. Everything else in the policy is regenerated on push.

It is a tri-state:

public: true # anonymous: anyone with the URL, no login
guests: true # guest: an identity required, Windmill account not
# neither # publisher: workspace members with read access only

A pull followed by a push round-trips the mode, so an app open to guests stays open to guests through git sync.

Pushing guests: true does not by itself let anyone in: guest access is also gated by a workspace switch and an instance switch, both read on every guest request. Opening an app to guests or to the public can additionally be restricted to workspace admins and bypass users by a protection ruleset, which applies to the CLI as it does to the UI.

Full-code app commands​

The CLI provides additional commands for full-code apps:

Create a new full-code app​

wmill app new

Interactive wizard to scaffold a full-code app with React, Svelte or Vue.

Start the dev server​

From the app directory:

wmill app dev

Starts a local development server with hot reload and WebSocket backend. Options: --port, --host, --entry, --no-open.

Bundle an app without deploying it​

wmill app bundle [app_folder] --out <dir>

Runs the same build wmill app push runs, but writes bundle.js and bundle.css to a directory instead of deploying. The folder defaults to the current directory and the output to <app_folder>/dist. Use --no-minify to skip minification.

This is also the build behind the source-deploy API endpoints, so an app deployed from sources through the API is compiled exactly as the CLI and the editor compile it.

Generate lock files​

Generate .lock files for backend runnables with dependencies using the wmill generate-metadata command:

wmill generate-metadata

To only update app lockfiles, use:

wmill generate-metadata --skip-scripts --skip-flows

Options: --yes, --dry-run, --default-ts.

Legacy command

Prior to the unified command, this was done with wmill app generate-locks. This command is now deprecated but still works.

Generate agent documentation​

From the app directory:

wmill app generate-agents

Generates AGENTS.md and DATATABLES.md for AI coding agent context.

Remote path format​

<u|g|f>/<username|group|folder>/...