CLI Reference
Overview
Section titled “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:
wails3 --helpwails3 <command> --helpProject lifecycle
Section titled “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
Section titled “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
Section titled “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
Section titled “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).
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
Section titled “Services”wails3 service <subcommand>:
| Subcommand | Description |
|---|---|
service init | Scaffold a new service package. |
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
Section titled “Build output paths”- Native binaries land in
bin/<APP_NAME>(orbin/<APP_NAME>.exeon Windows). There is nobuild/bin/. - Packaged outputs (
.app,.dmg, NSIS installer, MSIX, DEB/RPM/AppImage) likewise land inbin/(or under platform-specific subdirectories created by the relevant Taskfile task).
Global flags
Section titled “Global flags”| Flag | Applies to | Description |
|---|---|---|
--no-colour | All commands | Disable ANSI colour in CLI output. |