Muggle is a macOS menu bar app for Bluetooth smart mugs. Unlike OEM apps, your identity and activities are not collected.
Test Flight | Supported Mugs | Repo Overview | To-Dos
At Target Temp | Heating/Cooling |
---|---|
- Ember Cup 6 oz (tested: CM21S)
- Ember Mug 2 14 oz (tested: CM19P)
- Ember Tumbler 16 oz (tested: CM21XL)
Caution
Check the max target temperature of your mug in Ember's app. Muggle's max is 63โ (145โ). If that doesn't match Ember's app, I'd appreciate an email about it. Don't set a higher temp (as I lack your device and have not tested whether Ember wrote a safeguard into its firmware).
Various brands of BLE mugs are abstracted behind a BluetoothMug
and BluetoothPeripheral
protocol to keep the view layer agnostic to specific models. Nordic's CoreBluetoothMock library enables stable unit testing on CI.
Package\Target | Purpose |
---|---|
MuggleMac |
SwiftUI MenuBarExtra |
MuggleCore\MuggleBluetooth |
CBCentralManager |
MuggleCore\EmberBluetooth |
Ember CBPeripheral(s) + Nordic mocks |
MuggleCore\VFZOBluetooth |
VFZO M1 CBPeripheral + Nordic mocks |
MuggleCore\Common |
BluetoothMug/Peripheral protocol + Nordic CoreBluetoothMock shim |
MuggleCore\CommonUI |
Cross-platform SwiftUI |
- Icon: brighten/de-cheese
- Verify behavior: Travel mug (HasContentsCharacteristic, Service)
- Verify behavior: Tumbler
- Verify behavior: Cup
- fix: When keyboard navigation enabled, the Settings button appears with a focus ring
- Experiment: predict cooldown time, battery life, charge time
- VFZO M1 mug support
- Experiment: eliminate Ember's low volume overheating
- Experiment: reduce Ember's' battery consumption during cooldown phase
- More non-Ember products
- visionOS: as central
- macOS/visionOS: "remote" central
- iPhone/iPad + Live Activity / Widget
- Improve onboarding
- Scanner efficiency: Reduce eagerness to save a little laptop battery / turn on manually after initial session
- Forget a mug: cache forgotten IDs to prevent mugs in discovery mode from automatically reconnecting if scanning
- Multi-muggers: select mug for MenuBar or allow multiple in MenuBar
- Expand mock and live test suite