GitTop
GitTop is a small desktop client for GitHub notifications. I built it so I could close the browser without losing track of reviews and mentions.
It is written in Rust with Iced and uses OpenGL for GPU work. Current builds use about 5 to 15 MB of RAM while active and 1 to 2 MB in tray mode, depending on the platform. The 0.5 release series has mostly been about platform behavior and packaging while keeping those numbers low.
How it works
By default, GitTop polls notifications and shows their state from the tray. Power Mode adds an in-app notification view and filtering rules for priority and noise.
The app supports multiple accounts. Rules can hide noisy notification types while leaving reviews, mentions, and other work visible.
Platform work
Most bugs live in the platform code: notifications, credentials, window focus, the tray, startup, and network failure handling.
Linux refocus runs through IPC, and Linux tray mode behaves more like a daemon than a foreground app. Credentials use platform stores through keyring-core.
Windows and macOS use the normal iced::application path. Linux uses iced::daemon because tray mode on Wayland closes and recreates windows instead of hiding them.
Notifications go through native systems: WinRT toasts on Windows, DBus notifications on Linux, and Notification Center on macOS. Memory trimming is platform-specific too: EmptyWorkingSet() on Windows and malloc_trim() on glibc Linux.
Packaging
GitTop ships through a broad release matrix: Windows installer/archive, winget, Chocolatey, Scoop, Flatpak bundles, AUR, COPR, and VUP for Void Linux. Releases cover multiple architecture/libc targets where it matters, including GNU/musl Linux builds.