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