lobehub/lobe-mygo
Developer ToolsA Go UI kit that brings Lobe UI components and design tokens to native desktop apps built with MyGo.
Overview
Lobe MyGo ports the Lobe UI design language to MyGo's native Go UI, so desktop apps can use React-style components without HTML, JavaScript, or a webview. It provides 70+ components across actions, form fields, choice controls, display, feedback, overlays, navigation, layout, code, and Markdown, plus light/dark theme tokens generated from @lobehub/ui, springs and shared-element transitions, and 2,300+ Lucide icons as Go functions. It targets Go developers building native desktop interfaces with MyGo.
The library claims to be pure Go without cgo, producing a small per-platform binary that can be cross-compiled. The token system is the bridge to Lobe UI: a Go app and a React app can share colors, radii, font sizes, and appearance behavior.
Getting Started
Prerequisites: Go 1.27 or later and a project based on MyGo.
go get github.com/lobehub/lobe-mygo
The README's minimal example calls theme.Apply(c) at the top of each view, reads tokens with theme.TokensOf(c), and uses action.Button inside a MyGo window:
package main
import (
"fmt"
"log"
"github.com/egoist/mygo"
"github.com/egoist/mygo/ui"
"github.com/lobehub/lobe-mygo/pkg/action"
"github.com/lobehub/lobe-mygo/pkg/theme"
)
var count int
func view(c *ui.Context) {
theme.Apply(c)
ui.Column(c).Fill().Center().Gap(12).Background(theme.TokensOf(c).BgContainer).Children(func() {
if action.Button(c, "Hello Lobe", action.ButtonProps{Variant: action.Primary}).Clicked() {
count++
}
ui.Text(c, fmt.Sprintf("Clicked %d times", count))
})
}
func main() {
mygo.App.WhenReady(func() {
mygo.NewWindow(mygo.WindowOptions{Title: "Hello Lobe", Width: 480, Height: 320, Content: ui.View(view)})
})
if err := mygo.App.Run(); err != nil {
log.Fatal(err)
}
}
To browse components, use the live documentation site starting with Getting Started or run the native catalog locally. From a clone, go run ./catalog opens the catalog window, and go run ./catalog button/basic opens a single component page. For the WebAssembly-based docs site, run bun install && bun run dev; the catalog demos are in the catalog directory.
Constraints
- Go 1.27 minimum, building on MyGo's native UI.
- The library is a UI layer for MyGo, not a standalone GUI framework; existing MyGo application structure is required.
- Local docs development needs Bun in addition to Go.
- The project is MIT licensed (28).
- README states no cgo and cross-compilation support, but compatibility with specific operating systems or GPU backends is not detailed in the provided material.
HotRepo's Take
Lobe MyGo entered HotRepo's Go new list on 2026-11-09 with 104 stars gained in its recorded growth window and 1 fork. That is early attention for a young repository, and its value depends on whether the Lobe UI look and token compatibility matter to your app. The strongest technical differentiator is the shared design-token layer with Lobe UI plus a pure-Go rendering path; the practical next check is the component catalog and whether the subset you need is present.
Written by AI from the project's README, updated . The project's own docs are the source of truth.
You might also like
- vivaui/vivaBuild native Go desktop apps that render through each OS's own window and GPU APIs, without a WebView or bundled runtime.
- yappologistic/CUIA dependency-free C99 library of roughly 190 native UI components for building cross-platform Windows, macOS and Linux desktop apps.
- Caho1/open-claude-uiA React/CSS component library that reconstructs Claude's desktop design system, including motion physics, from decompiled binaries.
- oneo-me/nsgoWrite cross-platform apps in Go while each platform renders them with its own native views.
- egoist/mygo-musicA native Go desktop music player for local files, with JavaScript plugins adding streaming catalogs and accounts.