AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Build desktop apps in Go. Windows show a web frontend in the system webview, calling Go through a TypeScript client generated from your code, or native UI written in Go that MyGo draws on the GPU. Pur
Developer toolsGo · TypeScriptGitHub @egoistOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Develop desktop apps with a web frontend or native UI in Go
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Desktop apps in Go, with native UI or a web frontend.
Sponsored by:
Each MyGo window shows one of two kinds of interface, and one app, or one window, can mix them:
ui and
drawn by MyGo itself on the GPU: no HTML, no JavaScript and no webview, so
the window opens at once and takes little memory.Either way, an app is a single Go binary of a few megabytes, focused on low memory and CPU use.
A window with a web page, whose frontend calls Go:
type Greeter struct{}
// Greet returns a greeting.
func (Greeter) Greet(name string) string { return "Hello, " + name }
func main() {
mygo.Bind(Greeter{})
mygo.App.WhenReady(func() {
mygo.NewWindow(mygo.WindowOptions{Title: "Hello", URL: "/"})
})
if err := mygo.App.Run(); err != nil {
log.Fatal(err)
}
}
import { Greeter } from "./mygo"; // generated
document.body.textContent = await Greeter.greet("Ada");
A window with native UI, whose view is a Go function of the app's state:
type counter struct{ n int }
func (s *counter) view(c *ui.Context) {
ui.Column(c).Fill().Center().Gap(12).Children(func() {
ui.Text(c, fmt.Sprint(s.n)).FontSize(40).Bold()
if ui.PrimaryButton(c, "Increment").Clicked() {
s.n++
}
})
}
func main() {
s := &counter{}
mygo.App.WhenReady(func() {
mygo.NewWindow(mygo.WindowOptions{
Title: "Counter",
Content: ui.View(s.view),
})
})
if err := mygo.App.Run(); err != nil {
log.Fatal(err)
}
}
With Go 1.27.3+ and Bun, create an app with a web frontend:
bunx mygo-cli init my-app # or: npx mygo-cli init my-app
cd my-app
bun run dev
An app of native UI needs Go alone:
go run github.com/egoist/mygo/cmd/mygo@latest init -template native my-app
cd my-app
go tool mygo dev
Read the documentation.
MIT