Meshtastic GUI client written using LLM agent in Golang.
Find a file
Alexey Skobkin 3d82c56c3e
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/tag/ci Pipeline was successful
feat(ui): left-click tray icon shows window, right-click opens minimal Quit menu
Previously every click on the tray icon opened a two-item menu, forcing two
clicks to open the app from the tray. Wire the main window via Fyne 2.7's
desktop.App.SetSystemTrayWindow so a left-click shows the window directly on
Windows / macOS / most Linux desktops, while a right-click still opens the
menu. The menu is now reduced to a single 'Quit' entry; hiding the window
continues to go through the existing close intercept on the X button.

- internal/ui/tray.go: call SetSystemTrayWindow(window); drop the 'Show'
  menu item; keep 'Quit'.
- internal/ui/tray_test.go: assert 1 menu item and that SetSystemTrayWindow
  is wired; drop the old show/focus action test.
- internal/ui/ui_test_spies_test.go: capture SetSystemTrayWindow in
  trayAppSpy so the new assertion can run.
2026-06-17 19:19:14 +03:00
.woodpecker build(ci): updating golangci-lint to latest version 2026-02-22 06:31:41 +03:00
cmd refactor(projections): projections extracted into a separate sub-package (#111) 2026-02-21 06:37:08 +03:00
docs docs: node overview screenshot added 2026-02-21 07:02:10 +03:00
internal feat(ui): left-click tray icon shows window, right-click opens minimal Quit menu 2026-06-17 19:19:14 +03:00
.gitignore chore: track THIRD_PARTY_NOTICES.md alongside README.md 2026-06-11 04:40:03 +03:00
.golangci.yml build(ci): fixing CI problems introduced by recent changes 2026-02-19 04:49:58 +03:00
.goreleaser.yml build(ci): removing 'build' scope from changelogs 2026-02-21 07:11:10 +03:00
AGENTS.md docs: adding instruction to recommend commit messages to AGENTS.md 2026-06-09 20:36:57 +03:00
go.mod chore(deps): upgraded fyne.io/x/fyne, fyne.io/systray v1.12.1 => v1.12.2, github.com/BurntSushi/toml v1.5.0 => v1.6.0, github.com/fsnotify/fsnotify v1.9.0 => v1.10.1, github.com/go-gl/gl, github.com/go-gl/glfw/v3.3/glfw, github.com/go-ole/go-ole v1.2.6 => v1.3.0, github.com/hack-pad/safejs v0.1.0 => v0.1.1, github.com/mattn/go-isatty v0.0.20 => v0.0.22, github.com/mattn/go-runewidth v0.0.17 => v0.0.24, github.com/nicksnyder/go-i18n/v2 v2.5.1 => v2.6.1, github.com/saltosystems/winrt-go, github.com/sirupsen/logrus v1.9.3 => v1.9.4, github.com/soypat/cyw43439 v0.1.0 => v0.1.1, github.com/soypat/seqs, github.com/yuin/goldmark v1.7.8 => v1.8.2, golang.org/x/exp, golang.org/x/image v0.24.0 => v0.42.0, golang.org/x/net v0.35.0 => v0.55.0, golang.org/x/text v0.22.0 => v0.38.0, modernc.org/libc v1.72.3 => v1.73.0 2026-06-09 18:57:30 +03:00
go.sum chore(deps): upgraded fyne.io/x/fyne, fyne.io/systray v1.12.1 => v1.12.2, github.com/BurntSushi/toml v1.5.0 => v1.6.0, github.com/fsnotify/fsnotify v1.9.0 => v1.10.1, github.com/go-gl/gl, github.com/go-gl/glfw/v3.3/glfw, github.com/go-ole/go-ole v1.2.6 => v1.3.0, github.com/hack-pad/safejs v0.1.0 => v0.1.1, github.com/mattn/go-isatty v0.0.20 => v0.0.22, github.com/mattn/go-runewidth v0.0.17 => v0.0.24, github.com/nicksnyder/go-i18n/v2 v2.5.1 => v2.6.1, github.com/saltosystems/winrt-go, github.com/sirupsen/logrus v1.9.3 => v1.9.4, github.com/soypat/cyw43439 v0.1.0 => v0.1.1, github.com/soypat/seqs, github.com/yuin/goldmark v1.7.8 => v1.8.2, golang.org/x/exp, golang.org/x/image v0.24.0 => v0.42.0, golang.org/x/net v0.35.0 => v0.55.0, golang.org/x/text v0.22.0 => v0.38.0, modernc.org/libc v1.72.3 => v1.73.0 2026-06-09 18:57:30 +03:00
LICENSE ci: multi-platform builds (GoReleaser), golangci-lint, some other fixes and improvements. 2026-02-10 17:32:58 +00:00
README.md docs: add license notices for generated Meshtastic protobuf bindings (closes #141) 2026-06-11 04:39:58 +03:00
THIRD_PARTY_NOTICES.md docs: add license notices for generated Meshtastic protobuf bindings (closes #141) 2026-06-11 04:39:58 +03:00

MeshGo

build status latest release

logo

MeshGo is a desktop client for Meshtastic networks.

It focuses on a practical GUI for connecting to nodes, browsing network data, and interacting with messages.

Download latest release

Check Releases section for latest downloads available.

Note

Releases are hosted on my private Forgejo instance, Github is used only to mirror the source code for better availability.

Screenshots

chat view

Chat view

hop tooltip

delivery indicator

Node list

nodes view

node overview

nodes traceroute

Map view

map view

map tile loading status

Node settings

node user settings

channel settings

channel settings

App settings

app settings

Update dialog

update dialog

License

MeshGo's original source code is licensed under MIT unless otherwise noted.

The generated Meshtastic protobuf bindings in internal/radio/meshtasticpb/ are generated from Meshtastic protobuf schemas from meshtastic/protobufs, which are licensed under GPL-3.0. These generated files are kept separate from MeshGo's original code. See THIRD_PARTY_NOTICES.md for details and the upstream license reference.