Opentrons Labworks Inc
Opentrons Flex와 OT‑2용 프로토콜 작성 및 실행 소프트웨어
Research spikes: live FreeStyle Libre 3 glucose in the macOS menubar without the cloud (Juggluco over Wi-Fi, BLE companion app)
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Sukrara shows live glucose from a FreeStyle Libre 3 on your Android phone (read straight from the sensor) and on the Mac menu bar of the people who look after you (or your own). It alerts you when glucose goes low or high or stops arriving, lets you log insulin and carbs in seconds, and shares readings end-to-end encrypted over public Nostr relays or Bluetooth nearby. There's no cloud account to create and no server to host. The name is Catalan-ish: sucre (sugar) + ara (now).
Not a medical device (see the disclaimer). Releases are GitHub prereleases until they've been tested on a real sensor.
The full catalog, with every rule and number, is docs/FEATURES.md. In short:
Android (you wear the sensor)
Mac (you follow someone, from the menu bar)
Not included: the root status-bar icons and the LSPosed lock-screen widget, Dexcom / Aidex / SmartGuide (untested) sensors, Garmin via the local xDrip+ server, Nightscout / Tidepool / LibreView uploads, Health Connect and broadcasts, insulin pens, the full sensor reminders page and calendar event, the glucose report and CSV export, settings export / import, following on Android and Bluetooth sharing from the phone, and the Mac's Juggluco-over-Wi-Fi source.
Garmin watch: Sukrara has no watch server yet. A watch fed by Juggluco keeps working while Juggluco reads the sensor: pick Juggluco as Sukrara's source (Settings › Sensor › Juggluco).
Downloads are on GitHub releases.
Sukrara-<version>.apk on the phone and open it; allow installs from
your browser when asked. Updates install over the old version and keep your data. With
Obtainium, turn on Include prereleases.Sukrara-<version>.dmg and drag Sukrara onto Applications. The
app isn't notarized yet: the first open is stopped; click Done, then System Settings → Privacy & Security →
Open Anyway (Apple: open a Mac app from an unknown developer).
Sukrara lives in the menu bar (no Dock icon). Homebrew (mauriciabad/tap) installs stable releases only.tools/install.sh phone|mac builds the release, verifies it and installs
it in place. It refuses a dirty tree, unmerged work or failing checks. On the Mac it makes Sukrara the sukrara:
link handler.apps/
android/ Sukrara for Android (Kotlin, Compose; Gradle root) → apps/android/README.md
macos/ Sukrara for Mac (Swift 6, SwiftPM; menu bar app + widget) → apps/macos/README.md
contracts/ what every app agrees on: alert rules + scenarios, card fixtures, settings schema, protocol,
treatments, export, sensor traces (every app's tests read it) → contracts/README.md
assets/brand/ app icons and brand art
docs/ FEATURES.md (behaviour catalog), ARCHITECTURE.md, DEVELOPMENT.md, QA.md, the investigation
reports (NN-*.md); also the sukrara.mauri.app site
tools/ check/ (CLAUDE.md as checks), hooks/, install.sh, release/, settings/gen.py
poc/ the frozen research PoC: spikes/ and spec/ (Open Glucose Stream); reference only
third_party/ local only (gitignored): Juggluco, the Libre 3 native core's source
Each app is a folder in apps/ with its own build and README; every app tests itself against the same contracts/
and the same tools/check rules, so a new app is one more folder.
Setup (JDK 21, Android SDK, Xcode, the Juggluco checkout, signing) is in docs/DEVELOPMENT.md; the rules in CLAUDE.md; the design in docs/ARCHITECTURE.md.
| What | Command |
|---|---|
Repo rules (run before committing; the git hooks run it after tools/hooks/install.sh) | tools/check/run.sh |
| Android: one module's tests | cd apps/android && ./gradlew :core:alerts:test |
| Android: debug APK | cd apps/android && ./gradlew :app:assembleDebug |
| Android: everything CI runs | cd apps/android && ./gradlew check |
| Mac: build + tests | cd apps/macos && swift build && swift test |
| Mac: app bundle with the widget | cd apps/macos && Bundle/bundle.sh (--unsigned without the signing identity) |
| Settings code after a schema change | python3 tools/settings/gen.py |
| Release builds | tools/release/android-release.sh, tools/release/mac-release.sh |
Manual checks per surface: docs/QA.md. Release history: CHANGELOG.md. The investigations, one
report each: docs/NN-*.md.
GPL-3.0-or-later. Use it, change it, share it — but anything you build on it has to stay open source under the same terms, and if you distribute a binary you have to offer its source too.
Copyright (C) 2026 Maurici Abad
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version. It is distributed WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.