ntfy desktop #
A small Rust + GPUI desktop client for ntfy.

Features #
- Low resource usage (I've measured about 35MB with the window closed).
- Cross-server unified topic list.
- Multiple servers with public, access token, or password login.
- Subscribe/unsubscribe to topics and read messages with deduplication.
- Automatic server reconnection with online indicators.
- Mute topics for 5 minutes, 15 minutes, 1 hour, 8 hours, or indefinitely.
- Nicknames for accounts and topics.
- Tray icon (with minor customization) so it can run in the background.
- Credentials saved to the OS keyring.
Download #
Get the latest release here.
Build from source #
Use a current stable Rust toolchain (1.90 or later). Run the commands below from the repository directory.
Nix development shell #
flake.nix provides all of the development dependencies needed. It supports x86_64 and
aarch64 on Linux and macOS. On macOS, the Xcode Command Line Tools are still needed.
Enter the shell with nix develop.
Linux #
Dependencies (Debian/Ubuntu package names, adapt for your distro if needed):
build-essentialclanglibclang-devpkg-configlibasound2-devlibfontconfig1-devlibxkbcommon-devlibxkbcommon-x11-devlibwayland-devlibx11-xcb-devlibvulkan-devlibssl-devlibdbus-1-dev
Build with:
cargo build --locked --release
./target/release/ntfy-gpui
Supports Wayland and X11. Your desktop needs a tray host (i.e. GNOME needs the AppIndicator extension). Saving credentials requires an unlocked Secret Service provider, like GNOME Keyring or KWallet.
For building Linux binaries on macOS, see cross-compilation notes.
macOS #
Dependencies:
- Xcode Command Line Tools.
Build with:
sh scripts/bundle-macos.sh release
open dist/ntfy.app
Notifications require the app bundle. For a debug build, omit release from the bundle command.
Windows #
I haven't personally tested this on Windows, but this will probably work.
Dependencies:
- The MSVC Rust toolchain.
- Visual Studio w/ C++ build tools and the Windows SDK.
- Inno Setup 6 (for the installer).
Build with:
cargo build --locked --release
To build an installer:
iscc packaging\windows\ntfy.iss
The installer makes a Start Menu shortcut and the notification identity dev.ntfy-gpui.desktop. Notification click-to-open is not implemented.