Desktop app
The desktop app shows the same data as wayglass watch and wayglass review in a window: the open intents, the changes policy routed to a person (approve or reject, with a required reason), overlaps, the audit timeline, and counters. It is built with Wails v2 and lives in desktop/ in the main repository as its own Go module.
It uses the login that wayglass login stored and keeps no secret of its own.
You need Go 1.25.8 or later, the Xcode command line tools on macOS (the GTK3 and WebKitGTK development packages on Linux), and the Wails v2 CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@v2.16.0wayglass login --worker https://wayglass.example.com --key-stdin # oncemake desktop # tests, then wails buildopen desktop/build/bin/Wayglass.app # macOSWithout the Wails CLI, on macOS:
cd desktopCGO_LDFLAGS="-framework UniformTypeIdentifiers -mmacosx-version-min=10.13" \ go build -tags desktop,production -ldflags "-w -s" -o build/bin/wayglass-desktop .Identity
Section titled “Identity”Approvals are recorded under the display name set in the window: click the name in the title bar. It is saved in ~/.config/wayglass/desktop.yaml, never in the credentials file. Without one, the app uses the CLI’s identity: WAYGLASS_AGENT, else the agent stored by wayglass login, else user@host.
The app refuses to decide a change its identity wrote, and the Worker refuses it too.
Projects
Section titled “Projects”The Worker has no route that lists projects, so the project picker starts with WAYGLASS_PROJECT and the .wayglass/config.yaml of the directory the app was started from. Add others with +. The list is kept in ~/.config/wayglass/desktop.yaml (project names and the display name only).
Polling and notifications
Section titled “Polling and notifications”The app polls like wayglass watch: every 2 seconds, backing off to 30 seconds while the Worker does not answer. An idle poll reads only the audit log.
Notifications (the bell icon) need the bundled .app. A bare binary has no bundle id, so it only updates the window title.