Help us shape the future of Go! Take the 2026 Go Developer Survey

wails

module
v3.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2026 License: MIT

README

Wails v3.0.0

Wails v3.0.0 is the stable release for desktop applications on Windows, macOS and Linux.

go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0

Android and iOS support remains experimental and is outside the stable desktop compatibility contract.

Getting Started

Installation, migration, platform support, and feature documentation are in docs/ and published at v3.wails.io.

Stargazers over time

Wails star history chart

Directories

Path Synopsis
cmd
updater-ui-driver-byo command
updater-ui-driver-byo: BYO-window variant.
updater-ui-driver-byo: BYO-window variant.
wails3 command
examples
autostart command
badge command
badge-custom command
binding command
build command
cancel-async command
cancel-chaining command
clipboard command
contextmenus command
dev command
dialogs command
dialogs-basic command
dock command
drag-n-drop command
environment command
events command
events-bug command
file-input command
frameless command
hide-window command
ignore-mouse command
keybindings command
liquid-glass command
mcp command
MCP example — a playground Wails application controllable by LLM agents.
MCP example — a playground Wails application controllable by LLM agents.
menu command
notifications command
panic-handling command
plain command
raw-message command
screen command
services command
single-instance command
spotlight command
streams command
systray-basic command
systray-clock command
systray-custom command
systray-menu command
systray-stress command
updater command
Updater example: a minimal Wails v3 app that ships in-app updates from a GitHub release.
Updater example: a minimal Wails v3 app that ships in-app updates from a GitHub release.
video command
web-apis/beacon command
web-apis/blob command
web-apis/canvas command
web-apis/dialog command
web-apis/fetch command
web-apis/share command
web-apis/webgl command
window command
window-api command
window-call command
window-menu command
wml command
server module
internal
appbundle
Package appbundle assembles fresh macOS application bundles without shell tools.
Package appbundle assembles fresh macOS application bundles without shell tools.
appimage
Package appimage stages Linux application runtimes and publishes type-2 AppImages.
Package appimage stages Linux application runtimes and publishes type-2 AppImages.
applesign
Package applesign writes Apple code signatures without platform executables.
Package applesign writes Apple code signatures without platform executables.
artifactsum
Package artifactsum writes SHA256 sidecars for completed distribution files.
Package artifactsum writes SHA256 sidecars for completed distribution files.
assetserver
Code from https://github.com/erikdubbelboer/ringqueue
Code from https://github.com/erikdubbelboer/ringqueue
browser
Package browser provides functions to open URLs and files in the default browser.
Package browser provides functions to open URLs and files in the default browser.
buildguard
Package buildguard turns a desktop build with no native backend into one clear error.
Package buildguard turns a desktop build with no native backend into one clear error.
buildmeta
Package buildmeta resolves application version inputs without executing source code.
Package buildmeta resolves application version inputs without executing source code.
bundlearchive
Package bundlearchive writes portable ZIP archives of application bundles.
Package bundlearchive writes portable ZIP archives of application bundles.
codesignature
Package codesignature reads integrity-protected signing identities and creates CMS/PKCS#7 signatures using Go's standard cryptographic primitives.
Package codesignature reads integrity-protected signing identities and creates CMS/PKCS#7 signatures using Go's standard cryptographic primitives.
credentialstore
Package credentialstore stores signing credentials in the operating system's vault.
Package credentialstore stores signing credentials in the operating system's vault.
dbus/menu
Code generated by dbus-codegen-go DO NOT EDIT.
Code generated by dbus-codegen-go DO NOT EDIT.
dbus/notifier
Code generated by dbus-codegen-go DO NOT EDIT.
Code generated by dbus-codegen-go DO NOT EDIT.
defaults
Package defaults provides functionality for loading and saving global default settings for Wails projects.
Package defaults provides functionality for loading and saving global default settings for Wails projects.
dev
Package dev owns the Wails YAML development session.
Package dev owns the Wails YAML development session.
devruntime
Package devruntime implements the private CLI/application readiness protocol.
Package devruntime implements the private CLI/application readiness protocol.
dirscan
Package dirscan scans project trees with bounded filesystem concurrency.
Package dirscan scans project trees with bounded filesystem concurrency.
generator/collect/_reference command
This example explores exhaustively the behaviour of encoding/json when handling types that implement marshaler interfaces.
This example explores exhaustively the behaviour of encoding/json when handling types that implement marshaler interfaces.
git
go-common-file-dialog/cfd
Common File Dialogs
Common File Dialogs
gosod
Package gosod extracts an fs.FS to a directory, processing .tmpl files as Go templates.
Package gosod extracts an fs.FS to a directory, processing .tmpl files as Go templates.
hostinfo
Package hostinfo collects the hardware fields used by the doctor reports.
Package hostinfo collects the hardware fields used by the doctor reports.
iconfile
Package iconfile generates Windows and macOS icon files from application artwork.
Package iconfile generates Windows and macOS icon files from application artwork.
installerbuild
Package installerbuild prepares and publishes NSIS installers while retaining the project's installer script and the NSIS compiler as a tool boundary.
Package installerbuild prepares and publishes NSIS installers while retaining the project's installer script and the NSIS compiler as a tool boundary.
keychain
Package keychain provides secure credential storage using the system keychain.
Package keychain provides secure credential storage using the system keychain.
libpath
Package libpath provides utilities for finding native library paths on Linux.
Package libpath provides utilities for finding native library paths on Linux.
lo
mailbox
Package mailbox provides asynchronous FIFO message processing.
Package mailbox provides asynchronous FIFO message processing.
notaryservice
Package notaryservice submits signed macOS archives to Apple's Notary API.
Package notaryservice submits signed macOS archives to Apple's Notary API.
notaryticket
Package notaryticket verifies and attaches Apple's observed notarization ticket format.
Package notaryticket verifies and attaches Apple's observed notarization ticket format.
packager
Package packager provides a simplified interface for creating Linux packages using nfpm
Package packager provides a simplified interface for creating Linux packages using nfpm
packagesign
Package packagesign signs existing Linux package archives without invoking external tools.
Package packagesign signs existing Linux package archives without invoking external tools.
pcinames
Package pcinames reads vendor and device names from the host's pci.ids data.
Package pcinames reads vendor and device names from the host's pci.ids data.
puregocheck command
Command puregocheck proves that the CGO-free (purego) backends can reach every native function they call, and that none of them silently stub out behaviour the cgo backends implement.
Command puregocheck proves that the CGO-free (purego) backends can reach every native function they call, and that none of them silently stub out behaviour the cgo backends implement.
puregogen command
Command puregogen generates purego function bindings from Clang's C AST.
Command puregogen generates purego function bindings from Clang's C AST.
readonlyfs
Package readonlyfs writes portable SquashFS v4 filesystems for application images.
Package readonlyfs writes portable SquashFS v4 filesystems for application images.
releasenotes
Package releasenotes formats release Markdown for terminal output.
Package releasenotes formats release Markdown for terminal output.
report
Package report is the build-reporting contract for wake.
Package report is the build-reporting contract for wake.
report/pulse
Package pulse renders a wake build to a terminal as the "Pulse" TUI: a pre-painted skeleton of one row per planned step that updates each row in place as steps progress, plus a pinned progress strip and throughput sparkline beneath.
Package pulse renders a wake build to a terminal as the "Pulse" TUI: a pre-painted skeleton of one row per planned step that updates each row in place as steps progress, plus a pinned progress strip and throughput sparkline beneath.
report/pulse/ansi
Package ansi is a tiny pure-stdlib set of ANSI helpers, just enough to render the wake build TUI without pulling in a styling library.
Package ansi is a tiny pure-stdlib set of ANSI helpers, just enough to render the wake build TUI without pulling in a styling library.
reportcopy
Package reportcopy writes diagnostic text to the system clipboard.
Package reportcopy writes diagnostic text to the system clipboard.
s
semver
Package semver provides simple semantic version parsing and comparison.
Package semver provides simple semantic version parsing and comparison.
signingconfig
Package signingconfig resolves user-level signing defaults for runtime plans.
Package signingconfig resolves user-level signing defaults for runtime plans.
sliceutil
Package sliceutil provides generic utility functions not available in stdlib.
Package sliceutil provides generic utility functions not available in stdlib.
sourceignore
Package sourceignore applies project .gitignore files to build inputs and watches.
Package sourceignore applies project .gitignore files to build inputs and watches.
stagefile
Package stagefile copies regular files into caller-owned staging directories.
Package stagefile copies regular files into caller-owned staging directories.
tint
Package tint provides a colorized slog.Handler for development logging.
Package tint provides a colorized slog.Handler for development logging.
typeconstraints
Package typeconstraints computes the structural restrictions used by the binding generator.
Package typeconstraints computes the structural restrictions used by the binding generator.
universalbinary
Package universalbinary combines Mach-O binaries and static archives into universal files.
Package universalbinary combines Mach-O binaries and static archives into universal files.
userpaths
Package userpaths resolves standard application and personal directories.
Package userpaths resolves standard application and personal directories.
uuid
Package uuid provides minimal UUID generation (v4 random, v5 name-based SHA1).
Package uuid provides minimal UUID generation (v4 random, v5 name-based SHA1).
voidpackage
Package voidpackage writes XBPS archives for Void Linux.
Package voidpackage writes XBPS archives for Void Linux.
wake/benchmark
Package benchmark measures complete Wails CLI invocations and applies explicit median-based performance budgets.
Package benchmark measures complete Wails CLI invocations and applies explicit median-based performance budgets.
wake/buildinfo
Package buildinfo owns the closed Wails v3 build capability registry.
Package buildinfo owns the closed Wails v3 build capability registry.
wake/manifest
Package manifest owns the single user-facing build configuration for Wails.
Package manifest owns the single user-facing build configuration for Wails.
wake/migration
Package migration owns the ephemeral analysis types printed by `wails3 migrate`.
Package migration owns the ephemeral analysis types printed by `wails3 migrate`.
wake/migration/taskfile
Package taskfile reads legacy build declarations for one-way migration.
Package taskfile reads legacy build declarations for one-way migration.
wake/packagetemplate
Package packagetemplate copies user-owned package replacements into a disposable workspace.
Package packagetemplate copies user-owned package replacements into a disposable workspace.
wake/pipeline
Package pipeline plans and executes Wails build intent as a static typed DAG.
Package pipeline plans and executes Wails build intent as a static typed DAG.
webview2/pkg/doublecall
Package doublecall calls WebView2 COM methods that take a C double BY VALUE (put_ZoomFactor, put_RasterizationScale, put_Expires, the print settings).
Package doublecall calls WebView2 COM methods that take a C double BY VALUE (put_ZoomFactor, put_RasterizationScale, put_Expires, the print settings).
windowspackage
Package windowspackage writes unsigned MSIX containers using Go's ZIP, DEFLATE, XML and SHA256 implementations.
Package windowspackage writes unsigned MSIX containers using Go's ZIP, DEFLATE, XML and SHA256 implementations.
pkg
application
Portions of this code are derived from the project: - https://github.com/fyne-io/systray
Portions of this code are derived from the project: - https://github.com/fyne-io/systray
application/internal/mainthreadharness
Package mainthreadharness drives an AppKit run loop so the main thread dispatch tests can schedule work at it and nest a loop inside a dispatched callback, as a modal dialog or an open menu does.
Package mainthreadharness drives an AppKit run loop so the main thread dispatch tests can schedule work at it and nest a loop inside a dispatched callback, as a modal dialog or an open menu does.
doctor-ng
Package doctorng provides system diagnostics and dependency checking for Wails.
Package doctorng provides system diagnostics and dependency checking for Wails.
mac
Package mac provides a set of functions to interact with the macOS platform.
Package mac provides a set of functions to interact with the macOS platform.
services/notifications
Package notifications provides cross-platform notification capabilities for desktop applications.
Package notifications provides cross-platform notification capabilities for desktop applications.
updater
Package updater provides an in-app self-update facility for Wails v3 applications.
Package updater provides an in-app self-update facility for Wails v3 applications.
updater/internal/semver
Package semver wraps golang.org/x/mod/semver with a small, provider-friendly interface.
Package semver wraps golang.org/x/mod/semver with a small, provider-friendly interface.
updater/providers/appcast
Package appcast implements an updater.Provider against a Sparkle-style AppCast RSS feed.
Package appcast implements an updater.Provider against a Sparkle-style AppCast RSS feed.
updater/providers/endpoint
Package endpoint implements an updater.Provider against the Wails Update Manifest protocol: a single JSON document that describes the latest release and its per-platform artifacts.
Package endpoint implements an updater.Provider against the Wails Update Manifest protocol: a single JSON document that describes the latest release and its per-platform artifacts.
updater/providers/github
Package github implements an updater.Provider backed by GitHub Releases.
Package github implements an updater.Provider backed by GitHub Releases.
updater/providers/keygen
Package keygen implements an updater.Provider against the keygen.sh REST API.
Package keygen implements an updater.Provider against the keygen.sh REST API.
w32
* Copyright (C) 2019 The Winc Authors.
* Copyright (C) 2019 The Winc Authors.
tasks
cleanup command
contribs command
release command
releasegate command
Command releasegate is the weekly release gate.
Command releasegate is the weekly release gate.
sed command
test
4769-menu command
dnd-npm-runtime command
manual/request-cancellation command
Native regression probe for #5963.
Native regression probe for #5963.
tests
event-performance command
Command eventperf is the Phase -1 measurement harness for Wails v3 Go→JS event dispatch.
Command eventperf is the Phase -1 measurement harness for Wails v3 Go→JS event dispatch.
gtk4-benchmark command
purego command
The native parity probe runs unchanged with either the cgo or purego backend.
The native parity probe runs unchanged with either the cgo or purego backend.
purego/e2e command
The e2e probe drives a real Wails app with real OS input: key bindings, menu accelerators, Edit-menu shortcuts in the page, keyboard menu navigation, a context menu, message dialogs and the open-file dialog.
The e2e probe drives a real Wails app with real OS input: key bindings, menu accelerators, Edit-menu shortcuts in the page, keyboard menu navigation, a context menu, message dialogs and the open-file dialog.
purego/visual command
The visual evidence probe opens each window kind the backend supports, one at a time, and screenshots the whole screen while it is up.
The visual evidence probe opens each window kind the backend supports, one at a time, and screenshots the whole screen while it is up.
stream-performance command
Command streamperf is the load harness for GoStream.
Command streamperf is the load harness for GoStream.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL