CLI Reference

Overview

The Wails CLI (wails3) is the command-line entry point for creating, developing, building, signing, packaging, and inspecting Wails 3 applications. Most build orchestration is delegated to per-project Taskfiles (under build/ in your project) — many wails3 commands are thin wrappers that invoke a specific task.

For the most up-to-date help on any command, run:

bash
wails3 --help
wails3 <command> --help

Project lifecycle

Command Description
wails3 init Create a new project from a template. Flags: -n (project name), -t (template, default vanilla), -p (Go package name, default main), -d (project directory, default .), -q (quiet), -l (list templates), -mod (Go module path), --git (Git repository URL), --skipgomodtidy, -s (skip remote-template warning), --productname/--productdescription/--productversion/--productcompany/--productcopyright/--productcomments/--productidentifier.
wails3 dev Run the application in development mode with frontend hot reload. Flags: --config (default ./build/config.yml), --port (Vite dev port), -s (enable HTTPS).
wails3 build Build the project. Thin wrapper around the Taskfile build task. Flags: --tags (forwarded as EXTRA_TAGS=), --obfuscated (build with Garble; see Obfuscated Builds), --garbleargs (extra flags forwarded to garble before the build subcommand).
wails3 package Run the platform-specific package Taskfile task.
wails3 task [name] Run any Taskfile task; with no name, --list shows every registered task.
wails3 doctor Print a diagnostic report of your environment.
wails3 doctor-ng Newer TUI variant of doctor.
wails3 version Print the CLI version.
wails3 releasenotes Print recent release notes.
wails3 docs Open the docs site in your browser.
wails3 sponsor Open the sponsor page.

Generation

wails3 generate <subcommand>:

Subcommand Description
generate bindings Generate Go-to-frontend bindings. Flags: -d (output dir), -models, -index, -ts, -i (interfaces), -b (bundle), -names (emit Call.ByName), -noevents, -noindex, -dry, -silent, -v, -clean (default true), -f, -obfuscated (generate wails_obfuscated.gen.go with stable binding IDs for Garble builds; see Obfuscated Builds), -obfuscated-output (directory for the generated file; defaults to the main package directory). Accepts package patterns (e.g. ./...); falls back to the current directory if none given.
generate icons Convert a source PNG into the platform icon formats. Flags: -input, -windowsfilename, -macfilename, -iconcomposerinput, -macassetdir.
generate build-assets Generate the build/ directory contents (Taskfile snippets, NSIS files, Info.plist, .desktop template, etc.) from build/config.yml.
generate runtime Regenerate the pre-built /wails/runtime.js shipped to the webview.
generate syso Generate the Windows .syso resource file (icon + manifest + version info).
generate webview2bootstrapper Generate a WebView2 bootstrap installer for Windows.
generate constants Generate JS event-name constants from Go event types.
generate template Scaffold a new project template.
generate .desktop Generate a Linux .desktop file (used by AppImage/DEB/RPM).
generate appimage Generate the AppImage build directory.

Update

wails3 update <subcommand>:

Subcommand Description
update build-assets Refresh the build/ directory from build/config.yml (preserves user edits where possible).
update cli Self-update the wails3 binary.

Code signing & packaging

Command Description
wails3 setup signing Interactive wizard that configures signing for the platforms it detects in build/. Flags: --platform (repeatable; defaults to auto-detect from build directory).
wails3 setup entitlements Interactive wizard for macOS entitlements. Flag: --output (path; default build/darwin/entitlements.plist).
wails3 sign [GOOS=…] Wrapper that runs the platform-specific *:sign Taskfile task for the current OS (or the one specified via GOOS).
wails3 tool sign Low-level direct signing entry point. Flags: --input, --output, --verbose, --certificate, --password, --thumbprint, --timestamp, --identity, --entitlements, --hardened-runtime, --notarize, --keychain-profile, --pgp-key, --pgp-password, --role.

There is no wails3 signing subcommand — for keychain credentials use xcrun notarytool store-credentials, and for PGP keys use gpg directly (the wails3 setup signing wizard automates both).

Tools

wails3 tool <subcommand>:

Subcommand Description
tool checkport Check whether a TCP port is open (useful for waiting on Vite).
tool watcher Run a command whenever watched files change.
tool cp Cross-platform file copy.
tool buildinfo Print the embedded Go build info from a binary.
tool package Build a Linux package (deb, rpm, archlinux) from build/linux/nfpm.
tool version Bump a project’s semantic version.
tool lipo Combine multiple macOS architecture binaries into a universal binary.
tool capabilities Probe the system for GTK3/GTK4 / WebKit availability.
tool sign (See Code signing & packaging.)

Services

wails3 service <subcommand>:

Subcommand Description
service init Scaffold a new service package.

iOS

wails3 ios <subcommand>:

Subcommand Description
ios overlay:gen Generate the Go overlay for the iOS bridge shim.
ios xcode:gen Generate an Xcode project in the output directory.

Build output paths

  • Native binaries land in bin/<APP_NAME> (or bin/<APP_NAME>.exe on Windows). There is no build/bin/.
  • Packaged outputs (.app, .dmg, NSIS installer, MSIX, DEB/RPM/AppImage) likewise land in bin/ (or under platform-specific subdirectories created by the relevant Taskfile task).

Global flags

Flag Applies to Description
--no-colour All commands Disable ANSI colour in CLI output.

Questions? Ask in Discord or check the examples.

Edit page

Last updated: