gitwtfhub

wtf is ui?

andlabs/ui — explained in plain English

Analysis updated 2026-06-24

8,359GoAudience · developerComplexity · 3/5Setup · moderate

TL;DR

A Go library for building desktop apps with native-looking windows and controls on Windows, Mac, and Linux, wrapping the C library libui, currently mid-alpha and best suited for small programs and experiments.

Mindmap

mindmap
  root((andlabs/ui))
    What it does
      Native GUI in Go
      Cross-platform
      Wraps libui
    Platform support
      Windows Vista+
      macOS 10.8+
      Linux GTK+ 3.10+
    Status
      Mid-alpha
      Not for production
    Getting started
      Install platform deps
      Single go get
      Example programs

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Build a small cross-platform desktop tool in Go that uses real OS controls instead of rendering a web browser.

REASON 2

Prototype a simple GUI utility that runs natively on Windows, Mac, and Linux from a single codebase.

What's in the stack?

GoCGTK+libui

How it stacks up

andlabs/uigonum/gonumcharmbracelet/bubbles
Stars8,3598,3648,353
LanguageGoGoGo
Setup difficultymoderateeasyeasy
Complexity3/52/52/5
Audiencedeveloperdatadeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Linux requires GTK+ 3.10+ from your package manager, Windows requires embedding a manifest file for correct control rendering.

Wtf does this do

This is a Go library for building desktop applications with native-looking user interfaces. Go is a programming language made by Google. A native GUI means the windows, buttons, and controls your app shows will look and behave like they belong on whichever operating system the user is running, whether that is Windows, Mac, or Linux, rather than rendering a custom look from scratch. The library is a Go wrapper around a separate C library called libui, written by the same author. On Windows it uses the platform's built-in controls going back to Vista. On Mac it requires macOS 10.8 or newer. On Linux and other Unix-like systems it relies on GTK+ 3.10 or newer, which you install through your package manager before using the library. The project self-describes as mid-alpha software, meaning it is not finished and not ready for production use in large or complex applications. Some parts work stably enough for small programs and the included examples, but many features are incomplete, some behavior is buggy on specific platforms, and the API is still changing. The README points to the libui project for more detail on the current state. Installing it in a Go project is a single command once the platform dependencies are in place. On Windows there is one extra setup step: the library requires a Windows manifest file that enables a specific version of the system's control rendering library. The README explains how to embed one using a provided subpackage, or how to supply your own. A handful of working example programs are included in the repository and can be built individually as a starting point for learning the API.

Yoink these prompts

Prompt 1
Using andlabs/ui in Go, write a desktop window with a text input field and a button that shows the typed text in a label when clicked.
Prompt 2
How do I set up andlabs/ui on Ubuntu Linux? List the GTK+ packages to install via apt and the go get command to add the library to my module.
Prompt 3
Show me how to embed the required Windows manifest file into a Go app that uses andlabs/ui so the controls render with the correct visual style on Windows 10.
Prompt 4
Walk me through running the andlabs/ui example programs from the repository so I can see what the library can do before writing my own app.

Frequently asked questions

wtf is ui?

A Go library for building desktop apps with native-looking windows and controls on Windows, Mac, and Linux, wrapping the C library libui, currently mid-alpha and best suited for small programs and experiments.

What language is ui written in?

Mainly Go. The stack also includes Go, C, GTK+.

How hard is ui to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is ui for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.