⚠️ Quick intro: Right-click on Trndi's window to open its menu for settings and other options!
- User Manual - Complete guide for end users
- Screenshots
- Introduction
- What differs Trndi from apps?
- Multi-user support
- Usage
- Accessibility
- Installation
- Setup
- Support
- Donate
- Development
- History
- Linux notes
- Settings storage
- Contributing
- Languages / Translations
RaspberryPi (with touch screen) - see Guide for RPi display
NEW: Join us on Discord
Trndi is a desktop app that shows your blood sugar and graph. It works with Night Scout, Tandem Source and Dexcom Share at the moment. It also supports the xDrip app, connecting over the local network/WiFi.
- Natively runs on your computer without needing installation
- Runs out-of-the-box! Does not depend on other software to be installed (on Linux, this may depend on your distro)
- Supports multiple languages
- Runs on your Raspberry Pi and other arm computers, optionally as a full-screen display
- Works on touch-screen devices, such as a RaspberryPi with screen
- Supports modern JavaScript extensions
- Small and portable
- Supports dark and light color modes
- Displays your readings in a trend graph
- Free and open source
- Integrates with Windows, macOS and Linux special features such as the macOS dock, Windows taskbar and Linux notifications.
- Supports low, normal and high blood sugar colors. But also custom ranges such as "normal, but on the edge to high"
- Offers a WebAPI for other clients to access glucose data
- Supports experimental predictions
- Supports Razer Chroma on Windows and Linux
- Native proxy support on Windows and Linux (uses system proxy on macOS)
Need to see more than one person? Trndi supports parallel users. Setup the users in the settings. Don't forget to click Save when editing users!
You need to start Trndi multiple times, each instance lets you choose a user. Just open the app multiple times and select a different account. Users can have different sources and run JavaScript plugins independently.
Trndi includes built‑in accessibility features to make readings easier to see and hear:
- Text-to-speech (TTS) — enable "Announce readings" in Settings to have Trndi speak glucose updates.
- High contrast mode — toggle the high‑contrast theme for improved visibility.
- Adjustable speech voice & rate — choose voice and set speaking rate from Settings.
- Keyboard & screen‑reader friendliness — dialogs and controls expose standard labels and keyboard focus so screen readers can navigate the UI.
- Open links externally — links (Help, documentation) are opened with the system browser.
Download TrndiSetup.exe from the latest release and run it.
Download Trndi-windows-x64.zip from the latest release, extract and run Trndi.exe.
You can install Trndi via NuGet from GitHub Packages (or Chocolatey), see the guide.
Download the appropriate package for your distribution from the latest release:
- Debian/Ubuntu:
trndi_VERSION_amd64.debortrndi_VERSION_arm64.deb— Recommended for best desktop integration - Fedora/RHEL:
trndi-VERSION.x86_64.rpmortrndi-VERSION.aarch64.rpm— Recommended for best desktop integration - AppImage (Universal):
Trndi-x86_64.AppImageorTrndi-aarch64.AppImage— Recommended for Arch, openSUSE, and other distributions - Portable:
Trndi-linux-amd64.ziporTrndi-linux-arm64.zip
Use native packages (.deb/.rpm) when available:
- ✅ Better system integration
- ✅ Desktop extensions (GNOME/KDE) install to system locations automatically
- ✅ Automatic updates via package manager
- ✅ Proper uninstallation support
Use AppImage for other distributions:
- ✅ Works on any Linux distribution
- ✅ No installation required
- ✅ Portable and self-contained
- ℹ️ Desktop extensions need manual installation (see below)
# Download the AppImage for your architecture
wget https://github.com/slicke/trndi/releases/latest/download/Trndi-x86_64.AppImage
# Make it executable
chmod +x Trndi-x86_64.AppImage
# Run it
./Trndi-x86_64.AppImage- GNOME: includes a GNOME Shell top-bar extension (
trndi-current@slicke.com) that shows the current reading. - KDE Plasma 6: includes a panel widget ("Trndi Current") you can add via Add Widgets.
Both indicators read the same cache file: ${XDG_CACHE_HOME:-$HOME/.cache}/trndi/current.txt.
Installation:
- DEB/RPM packages: Extensions install automatically to
/usr/local/share/trndi/ - AppImage: Extensions are bundled but require manual installation:
# Extract AppImage to access extensions ./Trndi-x86_64.AppImage --appimage-extract # GNOME: Copy to extensions directory mkdir -p ~/.local/share/gnome-shell/extensions cp -r squashfs-root/usr/share/trndi/gnome-shell-extension/trndi-current@slicke.com \ ~/.local/share/gnome-shell/extensions/ # GNOME: enable / reload the extension # - Use the Extensions app or run: # gnome-extensions enable trndi-current@slicke.com # - If using Xorg: press Alt+F2, type r and Enter to reload GNOME Shell # - If using Wayland: log out and log in to apply the extension # KDE: Copy to plasmoids directory mkdir -p ~/.local/share/plasma/plasmoids cp -r squashfs-root/usr/share/trndi/kde-plasmoid/com.slicke.trndi.current \ ~/.local/share/plasma/plasmoids/ # KDE: restart Plasma and add widget # - Restart (optional): kquitapp6 plasmashell && plasmashell (Plasma 5) or log out/in # - Add the "Trndi Current" widget via *Add Widgets*
Download Trndi-macos-silicon.dmg from the latest release.
Note: After opening, you need to remove the quarantine attribute:
xattr -c /path/to/Trndi.appTrndi can be built for Haiku OS using Lazarus.
Requirements:
- Free Pascal Compiler:
pkgman install fpc - Lazarus build tools:
pkgman install lazarus_bin - OpenSSL for HTTPS support:
pkgman install openssl
Building from source:
# Install dependencies
pkgman install fpc lazarus_bin openssl
> use pkgman php8 to perform HTTP-based unit tests
# Clone and build
git clone https://github.com/slicke/trndi.git
cd trndi
# Use the included Makefile rather than calling lazbuild directly for simplicity.
# Add noext to remove extensions (mORMot2 dependency issues)
make noextFeatures on Haiku:
- Native notification support (via
notify-sendif available) - Text-to-speech support (via
espeakif available) - Settings stored in
~/config/settings/Trndi/trndi.ini - HTTP/HTTPS support via FPC's TFPHTTPClient
Trndi can be built for FreeBSD, OpenBSD, and NetBSD using Lazarus.
Requirements:
- Free Pascal Compiler
- Lazarus build tools
- libcurl for HTTP/HTTPS support
- OpenSSL
Building from source:
# Install dependencies (FreeBSD example)
pkg install fpc lazarus curl openssl
# Clone and build
git clone https://github.com/slicke/trndi.git
cd trndi
# Use the included Makefile rather than calling lazbuild directly
make
# Or build without extensions (no mORMot2 dependency)
make noextFeatures on BSD:
- Native notification support (via
notify-sendif available) - Text-to-speech support (via
espeakif available) - Settings stored in
~/.config/trndi/trndi.ini - HTTP/HTTPS support via libcurl
Right click or click/hold the reading (or "Setup" text) and choose settings to access settings.
- For NightScout, settings will be fetched from your server and auto-applied
- For Dexcom, see the Dexcom setup guide. The backend does not support all features, but this can be fixed with some manual work.
- For Tandem, see the Tandem setup guide. The backend does not support all features, but this can be fixed with some manual work.
- For xDrip, you need to turn on the local web server and use that IP/password
- For other backends, feel free to contribute a api driver. See API Drivers
- For HTTP API access, see the Web API documentation to expose glucose data to other applications
NOTE To receive notifications see here
See a box instead of an icon? On Debian systems, you may need to install a graphic font. I recommend fonts-noto-color-emoji.
Join us on Discord to discuss issues or new features
If Trndi is useful to you, consider supporting its development:
Development tools can be obtained via most distros package managers:
- Fedora/RHEL:
dnf install lazarus - Ubuntu/Debian:
apt install lazarus - FreeBSD:
pkg install editors/lazarus
Use the Lazarus IDE to build and/or develop the app, set release target in the Project Options.
Linux / Haiku / BSD (recommended)
Build development:
make debugBuild release:
makeBuild release without extensions support:
This removes dependency on mORMot2
make noext
Build to a release folder:
```bash
make OUTDIR=output_directorymacOS / Windows
Windows (PowerShell):
- Prefer the included
make.ps1helper for convenience. It wrapslazbuildand provides shortcuts:./make.ps1or./make.ps1 release-> builds Release vialazbuild(-dRelease)./make.ps1 debug-> builds Debug vialazbuild(-dDebug)./make.ps1 noext-> builds the "No Ext (Release)" mode./make.ps1 help-> show usage
macOS / (also usable on Windows if you prefer):
Build development:
lazbuild Trndi.lpiBuild release:
lazbuild --build-mode="No Ext (Release)" Trndi.lpiBuild to a release folder:
lazbuild -B output_directory Trndi.lpiLinux, BSD and Haiku use make, for macOS substitute make with gmake
There is a convenience Makefile that wraps lazbuild with common targets:
make(default: release)make debugmake build(honorsWIDGETSETandBUILD_MODE)make testmake list-modes— list available build modes inTrndi.lpimake noext— build without mORMot2 using a temporary project copy (useful if you don't have the mORMot2 package installed locally)make noext-release/make noext-debug— same asnoextbut force build modemake IGNORE_MORMOT=1ormake build-ignore— force build even if mORMot2 is not found (skip presence check)make cleanmake.ps1(Windows PowerShell helper) — run./make.ps1 helpfor shortcuts (release,debug,noext)
Defaults by platform:
- Linux: forces the
Qt6build modes by default (e.g.Qt6 (Release)) - Windows / macOS: prefers native
Extensions (Release)/No Extensions (Release)(respectively) style builds for release targets
Examples:
make # on Linux -> Qt6 (Release) (artifacts placed in the 'build/' directory)
make noext # on Linux -> Qt6 (Release) using temporary project copy
make BUILD_MODE=Debug # chooses Qt6 (Debug) on Linux, Extensions (Debug) on macOS/Windows
make list-modes # show exact LPI targets if you want to pick one explicitlyNote: By default make build writes build artifacts into $(OUTDIR) (default: build/). You can override this by setting OUTDIR=... on the make command line if you prefer a different location.
Trndi2 (and later) is a rewrite, less bloated, version of Trndi 1, which was never released publicly. Trndi 1 was originally called Dexmon (and only did Dexcom). The original idea spawns from an old app called TrayTrend which I made with a similar purpose.
Trndi is actively tested on Windows (x64), Fedora Linux (amd64), Debian Linux (arm64 / Raspberry Pi).
If you find yourself having problems running Trndi, i.e., it will not start, you might be missing the Qt6 framework and/or the pascal headers.
You can download them for any RPM/DEB distro in this repo.
You can install the libqt6pas6 package on Debian-based distros via apt.
You can install the libqt6pas6 package via apt.
You can install the qt6pas package in DNF.
You can install the qt6pas package.
Look for qt6pas or libqt6-pas (or qt6pas6) in your package manager, or search for libQt6Pas.so.
Trndi stores settings per platform in the standard location:
- Windows: Registry under HKCU\Software\Trndi
- macOS: NSUserDefaults (Preferences), typically domain com.slicke.Trndi (often stored in ~/Library/Preferences/com.slicke.Trndi.plist)
- Linux: Lazarus GetAppConfigFile path, typically ~/.config/Trndi/trndi.ini in section [trndi]
On Linux, this is a single INI file consistently used for Get/Set/Delete operations — no legacy paths or multiple files.
Contributions are welcome. Please read CONTRIBUTING for coding style, PasDoc guidelines, and how to generate the developer docs for native, extensions, and API units.
If you're adding or modifying an API driver, start with the API guide for the contract and examples, then follow the API section in CONTRIBUTING.
See also BUILDING.md
To contribute a translation, check out LANGUAGES.md.




