Skip to content
jackfazPublic

About

Your CGM glucose (FreeStyle Libre, Dexcom, Nightscout) on the Windows taskbar, tray, a small window, a desktop panel or the Mac menu bar. Free and open source. Not a medical device.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

GlucoBar: your Libre or Dexcom glucose on the Windows taskbar

Release Downloads Build Windows 10/11 6 languages MIT license

Download for Windows · Highlights · Website · Install · Mac · LibreLinkUp setup · Use · Sensors · Changelog

GlucoBar shows your FreeStyle Libre or Dexcom reading on your Windows PC, so you can keep an eye on it while you work without reaching for your phone. It reads the latest value from LibreLinkUp (Abbott's sharing service) or Dexcom Share, and shows it with the trend arrow and how long ago it was measured. Nightscout and Nocturne sites work too, and there is a Mac version in beta.

You can show it in four places, alone or together: on the taskbar next to the clock, as an icon in the notification area, in a small window that stays on top, or in a larger panel on the desktop with a 12-hour chart and a few statistics. It works on a second monitor too, and hides while a video or a game is full screen.

Your password stays encrypted in Windows Credential Manager and is only sent to your sensor maker's servers. GlucoBar is free, open source (MIT), and available in English, Italian, Spanish, French, German and Portuguese.

On the taskbar Small window
Taskbar Window
Value, arrow and minutes next to the clock. Always on top, with a 3-hour chart. Drag it anywhere.
Desktop panel Icon next to the clock
Desktop panel Icon next to the clock
Behind your windows: chart of the last 3, 6 or 12 hours, average, min, max, time in range, 15-minute change and sensor day. Resizable. The coloured number in the notification area. Hover it for the arrow and the minutes.

Colours: green in range (70–180 mg/dL), orange above 180, red below 70 or above 250, grey when the reading is more than 15 minutes old. Thresholds and colours can be changed in Settings.

Highlights

The chart, one second away

Full chart opening above the value on the taskbar

Keep the mouse on the value on the taskbar for a second and the full chart opens just above it, with a short fade: the value, the change in the last 15 minutes, average, min, max, time in range and the last hours. Move the mouse away and it closes.

Your colours

Dark Light
Dark theme Light theme
Colour-blind friendly Your own colours
Colour-blind friendly colours Custom colours

Light, dark or automatic theme (it follows Windows or macOS), a palette that works with the common forms of colour blindness, or your own colour for everything: the value in range, high, very high, low and old, backgrounds, text, chart and grid.

Quick menu, full settings

Right-click menu Settings
Right-click menu Settings window
Right-click any GlucoBar element for the quick actions: refresh, what to show, sensor, settings. Everything else, in tabs: account, language and unit; thresholds, alerts and delta; theme and colours; elements; updates. Every change shows right away.

Alerts, sensor and updates

Messages for a new version, a sensor that stopped, and low glucose

  • Optional alerts for low, very high or no data, each with its own sound: GlucoBar's, or your own files and sound packs. The low and very high sounds can repeat, each at its own interval, until the value is back in range or you press Silence. Off by default, and not a replacement for your sensor's alarms.
  • Sensor (FreeStyle Libre): day of use, a reminder before it ends and, if it stops early, a button that opens the manufacturer's replacement form with the serial number copied.
  • Updates from inside the app: one click installs the new version and keeps your settings; Settings → Updates → Check for updates now checks right away.

And also

  • Delta: the change since the previous reading, next to the value instead of the arrow ("142 +5"), next to the arrow, or under the value ("3 min +5").
  • Update every 10 seconds to 5 minutes.
  • Desktop panel always on top, hidden while a video or a game is full screen, or kept over it like picture-in-picture, with adjustable opacity.
  • Any taskbar: on the left, right or top (Windows 10), auto-hidden, on a second monitor.
  • Two sensors at once, e.g. a Libre and a Dexcom: both values on the taskbar and in the icon, two lines on the chart.
  • More than one person followed with the same LibreLinkUp account, side by side on the taskbar, each with a nickname.
  • Reminders to pick up medicines, order sensors or take long-acting insulin.
  • Trend estimate (experimental, off by default): where the value is heading in the next 30 minutes.
  • Connect other devices: Home Assistant, ESP32 displays, Stream Deck or OBS can show the value through a local address or MQTT.

GlucoBar is not a medical device. Do not use it to decide insulin doses or to treat a hypo: always rely on your reader or the official app. It uses an unofficial API that Abbott can change at any time.

Sensors

Sensor Read through Status
FreeStyle Libre (Libre 2, Libre 3 and their Plus versions) LibreLinkUp Supported
Dexcom G6, G7, ONE+ Dexcom Share Beta: works with a G7, G6 and ONE+ testers wanted
Any sensor uploading to Nightscout or Nocturne (Medtronic, Eversense, xDrip+, Juggluco, AndroidAPS, Loop, …) Nightscout API Beta, testers wanted
Medtronic Guardian / Simplera CareLink Being evaluated

Dexcom support has been confirmed by a G7 user; G6 and ONE+ have not been tried yet. Nightscout and Nocturne have so far been tested against simulated servers. If you use any of them, please tell us in Discussions or in an issue whether it works for you, even just "works fine".

Would you like another sensor? Open an issue and tell us which one.

Install

  1. Turn on sharing on your phone (once).
    • FreeStyle Libre: share your readings with LibreLinkUp, using your own LibreLink account. It takes five minutes: see Setting up LibreLinkUp.
    • Dexcom: in the Dexcom app, turn on Share and invite at least one follower. GlucoBar signs in with your own Dexcom account, not the follower's.
    • Nightscout or Nocturne: you need a site that already receives your readings. If it is not public, create a read-only token. Nightscout: Admin Tools → Add new Subject, role readable, and copy its token. Nocturne: Settings → Connectors → API tokens → Create API token, with read permission for Blood glucose.
  2. Download the installer from the Releases page, or directly with this link, which always gives the latest version: https://github.com/jackfaz/glucobar/releases/latest/download/GlucoBar-Setup.exe. No administrator rights needed.
  3. Choose the setup language, tick what to show (with previews) and whether to start GlucoBar with Windows.
  4. On first start, choose your sensor and enter the account: the LibreLinkUp email for FreeStyle Libre (the same as LibreLink, if you followed the guide below), or your Dexcom email, phone number (with country code) or user name, or your Nightscout or Nocturne site address (the one you open in the browser) and token.

Windows may show "Windows protected your PC" because the installer is not code-signed yet: click More info → Run anyway. Each release lists the installer's SHA-256 and a link to its VirusTotal scan, so you can check the file before running it.

Mac (beta)

On the Mac the value sits in the menu bar, next to the clock; click it for the GlucoBar menu. The small window and the desktop panel work as on Windows. It needs a Mac with Apple silicon (M1 or newer) and macOS 11 or later.

  1. Download GlucoBar-mac.dmg: https://github.com/jackfaz/glucobar/releases/latest/download/GlucoBar-mac.dmg
  2. Open it and drag GlucoBar onto Applications.
  3. Open GlucoBar from Applications. The app is not notarized by Apple yet, so the first time macOS blocks it: open System Settings → Privacy & Security, scroll down to the message about GlucoBar and click Open Anyway (on macOS 14 and earlier you can also Control-click the app → Open). You only need to do this once.
  4. Choose your sensor and enter the account, as on Windows.

From the menu you can also turn on Open at login. Passwords are kept in the macOS Keychain (entries GlucoBar:LibreLinkUp, GlucoBar:Dexcom, GlucoBar:Nightscout) and the settings in ~/Library/Application Support/GlucoBar/config.json.

The glucobar command is inside the app. To use it from any terminal:

sudo mkdir -p /usr/local/bin
sudo ln -sf /Applications/GlucoBar.app/Contents/MacOS/glucobar-cli /usr/local/bin/glucobar

To uninstall: turn off Open at login, quit GlucoBar, run glucobar forget if you want to delete passwords and settings, and move GlucoBar to the Trash.

Setting up LibreLinkUp

GlucoBar reads your FreeStyle Libre through LibreLinkUp, Abbott's app for sharing readings with family and carers. You set it up once, on your phone, in a few minutes. The simplest way is to share with yourself, using the account you already have in the LibreLink app.

The steps in the LibreLink and LibreLinkUp apps Screenshots from the Italian version of the apps.

  1. In the LibreLink app (the one that reads your sensor), open the menu and tap Connected Apps.
  2. Next to LibreLinkUp, tap Manage.
  3. Tap Add Connection, enter your name and the email of your LibreLink account, and send the invitation.
  4. Install the LibreLinkUp app from the App Store or Google Play, tap Log In and use the same email and password as LibreLink (LibreLinkUp calls it your LibreView account). Accept the invitation and the terms of use: your reading appears in LibreLinkUp.
  5. In GlucoBar, choose FreeStyle Libre and enter the same email and password.

After that you can uninstall LibreLinkUp from the phone. GlucoBar will tell you if you ever need it again, for example when Abbott updates its terms of use.

You can also invite a different email, for example a family member's, and use that account in GlucoBar instead: it works the same way.

If GlucoBar shows an error

Message What to do
Wrong email or password Check that you can sign in to the LibreLinkUp app with the same email and password.
No patient linked The invitation has not been accepted yet: open LibreLinkUp and accept it, or send it again from LibreLink.
Open the LibreLinkUp app on your phone and accept the terms of use Open LibreLinkUp, accept, then right-click GlucoBar → Refresh now.
The value stays grey No new reading for 15 minutes: check that the phone is near the sensor and online.

Use

  • Right-click any GlucoBar element (the icon, the value on the taskbar, the window or the panel): refresh, Show (tick the elements you want), Alerts (which alerts, their sounds and how often to repeat them), Sensor, Settings…, quit. Double-click: refresh now.
  • Settings… has everything else, in tabs: General (account, language, unit, how often to update, start with Windows), Values (thresholds, delta, trend estimate), Alerts and sounds, Appearance (theme and every colour), Elements (what to show, taskbar value, desktop panel) and Updates (installed version, Check for updates now, automatic updates).
  • Windows 11 hides new icons under the ^ arrow: drag the GlucoBar icon onto the taskbar to keep it visible.
  • Taskbar mode on a second monitor: enable Settings → Personalization → Taskbar → Taskbar behaviors → Show my taskbar on all displays, then right-click the value → Move to the other monitor.
  • Desktop panel and small window: drag to move, drag the bottom-right corner to resize. On the panel, right-click for the chart period, to lock it in place, or to keep it Always on top of other windows (it hides while an app is full screen).
  • Value on the taskbar: keep the mouse on it for a second to see the full chart just above it. Right-click → Size to make it smaller or larger. Settings → Values → Show the change (delta) adds the change since the previous reading (e.g. "3 min +5").
  • Settings…: theme (light, dark or automatic, following Windows or macOS), every colour (the value in range, high, very high, low and old; backgrounds, text, chart and grid of the small window and the panel, for each theme; the background of the value on the taskbar) and thresholds. Changes show right away on every element.
  • Alerts (off by default): a message when glucose is low, very high, or when no new data has arrived for a while. They come from the sensor's online service, a few minutes late, and only while the computer is on: they do not replace your sensor's alarms.
  • Alert sounds (right-click → Alerts, or Settings → Alerts and sounds): a sound for low, one for very high and one for no data, from GlucoBar's own or from a sound pack, with a volume slider. Low and very high can repeat every 15 seconds up to 5 minutes, each at its own interval, until the value is back in range; Silence on the message (or in the menu) stops it until the next time. See Your own sounds.
  • Sensor: with LibreLinkUp, the day of use and the serial number (click to copy it), a reminder 24 hours and 2 hours before the end, and a message if the sensor seems to have stopped early or was replaced early. Request a sensor replacement… opens the manufacturer's page for your country and copies the serial number, ready to paste into the form.
  • Person: if your LibreLinkUp account follows more than one person, choose who to show.
  • When a new version is out, GlucoBar tells you and the first menu item installs it: on Windows it downloads the installer, checks its SHA-256 fingerprint and installs it in silence, then reopens with the same settings. Tick Install new versions automatically to skip the question. On the Mac it opens the download page.

Reminders

Right-click any GlucoBar element → Reminders… to add reminders: every day, on some days of the week, every few days, once, or a few days before the FreeStyle Libre sensor ends. At the time you choose a message appears in the bottom right corner with Done, In 15 min and In 60 min. If the PC was off at that time, it reminds you when it starts again (within 12 hours). GlucoBar only reminds you: it never suggests doses.

Two sensors at once

If you wear two sensors, for example a FreeStyle Libre and a Dexcom, Settings → General → Second sensor → Add… connects the second one too (it has to be a different kind from the first: Libre, Dexcom or Nightscout). Then:

  • the taskbar shows both values side by side, each with its arrow, minutes and name ("Libre", "Dexcom", or a nickname you choose in People);
  • the icon next to the clock shows both values, one above the other;
  • the desktop panel and the hover chart draw the second sensor as a blue line, with a legend;
  • alerts work for both and say which sensor they are about; the local bridge publishes both.

The big value, the statistics and the trend estimate are those of the first sensor.

More than one person

With LibreLinkUp you can follow several people with the same account (for example two children). Right-click → Person chooses the main one, shown on every element, and Also show … puts others next to it on the taskbar, each with their value, arrow and minutes. Alerts say whose they are. In Settings → General → People you can give everyone a nickname, which appears next to the value; it works with Dexcom and Nightscout too.

Your own sounds

Each alert can use any sound file: Settings → Alerts and sounds → Browse… next to it. WAV, MP3 and M4A work everywhere (on Windows, GlucoBar converts them once with Windows' own decoder).

A sound pack is a folder of sound files inside GlucoBar's sounds folder (Open folder in the same tab), or a .zip you bring in with Import…. Pick the pack from the list or from the right-click menu, and GlucoBar picks a sound for each alert from the file names (low, urgent, high, signal loss...). To choose them yourself, add a pack.json to the folder:

{"low": "my low.mp3", "high": "my high.mp3", "other": "no data.wav"}

Every sound in every pack also shows up in each alert's list, so you can mix them. What you pick in Settings is only tried out (▶ plays it) until you press Apply.

Trend estimate (experimental)

Settings → Values → Trend estimate draws, after the last reading on the desktop panel and the hover chart, where the value would go in the next 30 minutes if it kept the trend of the last 30, with a band that widens with time. It can also warn you when the estimate goes below your low threshold. It is off by default and asks you to read what it is before it turns on:

It is a straight line through the last readings, not a forecast and not a medical device. It knows nothing about meals, insulin, exercise, stress or illness, the data arrive from the sharing service a few minutes late, and it is often wrong. Never use it to decide doses, food or any other treatment.

Connect other devices

Settings → Connections (off by default) lets other programs and devices read the value, without knowing your sensor password.

A smart light that turns red only when glucose is below 70 or above 250, a Home Assistant card, an LED clock and an ESP32 display following the value from GlucoBar (simulated readings)

Local web address. GlucoBar answers on http://127.0.0.1:17580 (port configurable). Tick Also for other devices on my home network to use it from an ESP32, a phone or Home Assistant (Windows asks once to allow it through the firewall), and optionally set an access key, passed as ?token=… or in the api-secret header.

Address What you get
/api/v1/current The current value as JSON: value, unit, trend, arrow, delta, age, state, colour
/api/v1/people Everyone shown in GlucoBar (?person= picks one in the other addresses)
/api/v1/history?hours=12 The readings of the last hours
/api/v1/entries.json, /api/v1/status.json The same as a Nightscout site: displays and apps made for Nightscout (for example ESP32 or M5Stack monitors and LED clocks) work with GlucoBar as their "Nightscout URL"
/overlay A page for OBS (browser source) with the value on a transparent background

MQTT. GlucoBar publishes the value to a broker, for example Home Assistant's Mosquitto add-on: with Home Assistant: create the sensors automatically a Glucose sensor appears by itself (one per person), with trend, delta and state as attributes, ready for automations such as turning a light red below 70 or above 250. The MQTT password is kept in Windows Credential Manager (GlucoBar:MQTT).

Terminal

The installer adds the glucobar command to every new terminal:

glucobar setup                 interactive setup: ↑/↓ to choose, Space to tick, Enter to confirm
glucobar status                current reading, e.g. "133 ↘ mg/dL · 2 min ago"
glucobar set unit=mmol/L low=80
glucobar set elements=desktop,tray autostart=true
glucobar get                   all settings
glucobar login                 change sensor or account
glucobar start | stop          start GlucoBar | close it
glucobar forget                delete passwords, tokens and settings
glucobar report                diagnostic summary for bug reports, copied to the clipboard

If GlucoBar is running, it applies the new settings within two seconds.

Silent install with your choices (handy for scripts and winget):

GlucoBar-Setup-0.12.0.exe /VERYSILENT /ELEMENTS=taskbar,tray /SENSOR=libre /LANG=en

Settings

%APPDATA%\GlucoBar\config.json:

Key Default Meaning
source libre libre (LibreLinkUp), dexcom (Dexcom Share) or nightscout
dexcom_region ous Where the Dexcom account was created: ous (outside the US), us, jp
elements ["taskbar", "tray"] What to show, any combination of taskbar, tray (icon next to the clock), window, desktop
low / high / very_high 70 / 180 / 250 Thresholds in mg/dL
unit mg/dL or mmol/L
stale_minutes 15 After this, the value turns grey
hover_chart true Show the full chart when the mouse rests on the value on the taskbar
trend_style arrow Next to the value: arrow, delta (the change instead of the arrow) or both
show_delta false Show the change since the previous reading on the taskbar and the small window (every minute with LibreLinkUp, every 5 minutes with Dexcom)
refresh_seconds 60 How often to fetch, from 10 to 3600 seconds (also in Settings → General)
language auto en, it, es, fr, de, pt
taskbar_monitor 1 1 = main monitor, 2 = second, …
taskbar_offset 0 Extra pixels (negative = left)
taskbar_bg auto Your taskbar colour, e.g. #202020, if you see a halo around the digits
taskbar_transparent true false for a solid background
taskbar_scale 1.0 Size of the value on the taskbar, 0.85–1.25 (also from the right-click menu → Size)
window_scale 1.0 Size of the small window, 0.8–2.5 (also by dragging its bottom-right corner)
desktop_hours 12 Desktop panel chart period: 3, 6 or 12
desktop_alpha 0.92 Desktop panel opacity (1 = solid)
desktop_on_top false Keep the desktop panel above other windows (hidden while an app is full screen)
desktop_over_fullscreen false With desktop_on_top: stay visible over full-screen apps too
theme auto auto (follows Windows or macOS), dark or light
palette standard standard or colorblind
color_in_range / color_high / color_very_high / color_low / color_stale auto Your own colour for the value, e.g. #00c060; auto = the palette's
taskbar_text auto Colour of the minutes under the value on the taskbar
alert_low / alert_high / alert_stale false Alerts for low (below low), very high (above very_high) and no data (stale_minutes)
alert_sound / alert_volume true / 100 Play a sound with the alerts, and how loud (0–100)
sound_low / sound_high / sound_other GlucoBar's Sound for low, very high, and no data or estimate: builtin:falling, rising, beeps, chime, urgent, siren, soft, or Pack name/file.mp3
repeat_low / repeat_high 0 Repeat the low or very high sound every N seconds (10–600) until back in range; 0 = once
update_check true Check once a day whether a new version is out
auto_update false Windows: install new versions without asking
sensor_life_days 14 LibreLinkUp: how long your sensor lasts, for the end reminders (15 for Plus sensors)
predict / alert_soon false Trend estimate on the charts / alert when it goes below low (experimental)
people_shown / nicknames none Other LibreLinkUp people on the taskbar / nickname for each person (second for the second sensor)
second_source / second none Second sensor: libre, dexcom or nightscout (not the same as source), and its account (email, dexcom_region)
bridge_http / bridge_port / bridge_lan / bridge_token false / 17580 / false / none Local web address (see Connect other devices)
mqtt / mqtt_host / mqtt_port / mqtt_user / mqtt_topic / mqtt_discovery false / none / 1883 / none / glucobar / true MQTT publishing
reminders none The reminders (edit them in the Reminders window)

Log file: %APPDATA%\GlucoBar\glucobar.log.

Privacy

  • Your password is stored encrypted in Windows Credential Manager (entries GlucoBar:LibreLinkUp, GlucoBar:Dexcom, and GlucoBar:Nightscout for the token), never in the settings file.
  • GlucoBar talks only to the servers of your sensor's maker (Abbott's LibreView or Dexcom Share) or to your own Nightscout site. No analytics.
  • Once a day it asks GitHub which is the latest GlucoBar version (a public request that sends no data about you or your readings), and downloads the installer from GitHub only when you install an update. Turn it off from the menu or with glucobar set update_check=false.
  • The local address and MQTT (Settings → Connections) are off by default. When on, the local address answers only on this computer unless you open it to your home network.
  • Request a sensor replacement… only opens the manufacturer's page in your browser and copies the serial number to your clipboard: GlucoBar sends nothing itself.
  • Uninstalling asks whether to delete settings and the saved password too (also the first version's .glicemia_widget.json). You can do the same any time with GlucoBar.exe --forget.

Code signing policy

The installer is not code-signed yet. We plan to apply to the SignPath Foundation program for free code signing of open-source projects once GlucoBar is more widely used.

Only installers built by GitHub Actions from this repository are signed.

This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it. The only connections GlucoBar makes are to the servers of the user's sensor maker (Abbott LibreView or Dexcom Share) or to the user's own Nightscout site, with the account the user enters, and a daily check of the latest version on GitHub that the user can turn off.

Why "on" and not "inside" the taskbar?

On Windows 11 25H2 a window embedded in the taskbar (SetParent on Shell_TrayWnd, the technique used by TrafficMonitor) is drawn underneath the taskbar's acrylic background and is invisible. GlucoBar instead keeps a transparent, borderless, always-on-top window exactly over the taskbar and re-asserts it every 500 ms.

Build from source

pip install -r requirements.txt pyinstaller
python -m unittest discover -s tests
python run_glucobar.py --mode desktop          :: run without building
pyinstaller --noconfirm --clean glucobar.spec
python tools\previews_to_bmp.py
iscc /DAppVersion=0.12.0 installer\glucobar.iss    :: needs Inno Setup 6

Releases are built by GitHub Actions (.github/workflows/build.yml): in Actions → Build installer → Run workflow, tick release to publish the version written in glucobar/__init__.py (pushing a tag like v0.12.0 works too). The mode previews are made with tools/compose_previews.py.

Each build also installs the previous release, opens it and installs the new version over it in silence (as winget does), checking that settings, password and choices stay. Two more workflows run on their own:

  • Live check (daily): reads a value from the real LibreLinkUp, Dexcom Share and Nightscout with the accounts saved as repository secrets (LIBRE_EMAIL, LIBRE_PASSWORD, DEXCOM_USER, DEXCOM_PASSWORD, DEXCOM_REGION, NIGHTSCOUT_URL, NIGHTSCOUT_TOKEN; each service is skipped if its secrets are missing). The log only says "ok" or the error.
  • Soak test (weekly, or by hand with a duration): keeps GlucoBar open with a reading every 10 seconds and theme changes, and fails if memory, handles or graphics objects keep growing.

Credits and trademarks

GlucoBar is an independent open-source project, not affiliated with or endorsed by Abbott or Dexcom. FreeStyle, Libre, LibreLink and LibreLinkUp are trademarks of Abbott; Dexcom is a trademark of Dexcom, Inc. The LibreLinkUp and Dexcom Share API details come from the work of the open-source diabetes community (Nightscout, pydexcom and others). Nightscout is an open-source project by the Nightscout Foundation; GlucoBar uses its documented API.

GlucoBar is free and will stay free. If it is useful to you and you want to support it, you can donate via PayPal.

License: MIT.

About

Your CGM glucose (FreeStyle Libre, Dexcom, Nightscout) on the Windows taskbar, tray, a small window, a desktop panel or the Mac menu bar. Free and open source. Not a medical device.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages