Releases: yazon/oh-my-wrist
Release v0.1.3
v0.1.3 - PyPI Release Pipeline
First version published to PyPI. pip install oh-my-wrist now works.
What's New
- PyPI publishing. Releases now automatically build and publish the Python package to PyPI via GitHub Actions with OIDC trusted publishing.
- TestPyPI verification. Each release is uploaded to TestPyPI first, verified with a test install, then promoted to production PyPI.
Upgrade
pip install --upgrade oh-my-wristNo configuration changes or watch-app update required.
What's Changed
Full Changelog: v0.1.2...v0.1.3
Release v0.1.2
v0.1.2 - macOS BLE Startup Fix
Patch release fixing a daemon startup crash on macOS. Linux and Windows are unaffected.
Bug Fixes
- BLE: Fixed daemon crash at startup on macOS. Notify characteristics are no longer registered with a cached value, which macOS CoreBluetooth rejects.
- BLE: Notifications now reach the watch on macOS. The daemon now detects the watch's subscription on macOS, so history and stats updates flow after connecting.
Upgrade
pip install --upgrade oh-my-wristNo configuration changes or watch-app update required.
What's Changed
Full Changelog: v0.1.1...v0.1.2
Release v0.1.1
v0.1.1 - BLE Discoverable Fix for Linux
Patch release fixing BLE connectivity on Garmin watches that require the GeneralDiscoverable flag in BLE advertisements (e.g. Garmin Venu 3 / Venu 3s).
Bug Fixes
- BLE: Set GeneralDiscoverable flag on Linux advertisements. Some Garmin models (notably the Venu 3 series) only show the BLE open-connection popup when the peripheral advertises with the
LE General Discoverableflag (0x06). Theblesslibrary does not expose aDiscoverableD-Bus property by default, so the daemon now monkey-patchesBlueZLEAdvertisementat startup to add one. This fix is Linux-only; macOS and Windows BLE stacks set the flag automatically.
Upgrade
pip install --upgrade oh-my-wristNo configuration changes or watch-app update required.
What's Changed
Full Changelog: v0.1.0...v0.1.1
v0.1.0 - Initial Release
v0.1.0 - Initial Release
First public release of oh-my-wrist: a desktop daemon and Garmin watch app for showing real-time Claude Code and OpenCode activity over Bluetooth Low Energy.
Highlights
- Real-time Claude Code and OpenCode activity streamed to Garmin watches
- BLE GATT daemon for desktop-to-watch communication
- Garmin watch UI with history, provider stats, and Claude usage views
- Haptic alerts for idle waiting, session completion, destructive commands, and agent completion
- Cross-platform daemon support for Linux, macOS, and Windows
- CLI installer for hooks, OpenCode plugin setup, and background service registration
- Optional connection ID filtering to avoid pairing with nearby users' watches
- Quiet-hours support for suppressing haptic alerts
Installation
Install the Python daemon:
pip install oh-my-wristConfigure providers and the background service:
oh-my-wrist installStart the daemon:
oh-my-wrist startInstall the Garmin watch app by downloading oh-my-wrist-prg-0.1.0.zip from this release's assets, unzipping it, connecting your Garmin device over USB, and copying the matching .prg file to /GARMIN/Apps/.
Compatibility
- Python 3.12+
- Linux, macOS, and Windows daemon support
- Claude Code and OpenCode provider support
Known Limitations
- BLE behavior may vary by Garmin model and desktop Bluetooth stack (Windows users mostly)
Documentation
See the README for setup, platform guides, troubleshooting, and source-build instructions.
What's Changed
- OHW-1: Claude usage bar by @yazon in #1
- OHW-2: UUIDs fix + formatters by @yazon in #2
- Github actions + minor fixes and improvements. by @yazon in #3
- Added logo, icon, improvements, build script. by @yazon in #4
- Added connection ID setting by @yazon in #5
- Release pipeline by @yazon in #6
New Contributors
Full Changelog: https://github.com/yazon/oh-my-wrist/commits/v0.1.0