wails
Installation
SKILL.md
Wails: Desktop Apps in Go
Wails builds native desktop applications with a Go backend and a web frontend rendered in the platform webview (WebKit on macOS/Linux, WebView2 on Windows). No bundled Chromium — binaries are megabytes, not hundreds of megabytes.
Two major versions coexist, with incompatible APIs. v2 is stable. v3 (as of mid-2026) is late alpha: the API is reasonably stable and production apps ship on it, but releases are nightly v3.0.0-alpha2.x tags and details still move. The single most common failure mode — for LLMs especially — is mixing v2 and v3 code. Every response must be pure v2 or pure v3.
Step 0 — Detect the Version (Mandatory)
Before writing any code, determine the version from the project. Do not guess from the user's phrasing.
| Signal | v2 | v3 |
|---|---|---|
| go.mod import | github.com/wailsapp/wails/v2 |
github.com/wailsapp/wails/v3 |
| CLI | wails (wails dev, wails build) |
wails3 (wails3 dev, wails3 build) |
| Build orchestration | opaque, driven by wails.json |
Taskfile.yml (go-task), transparent |
| Entry point | wails.Run(&options.App{...}) |
application.New(application.Options{...}) |
| Go→JS exposure | Bind: []interface{}{app} |
Services: []application.Service{...} |
| Runtime calls | runtime.EventsEmit(ctx, ...) with stored context |
methods on app / window — no context threading |
| Frontend imports | wailsjs/go/main/App |
frontend/bindings/<import-path>/<service> |