Add macOS host support#6
Conversation
Cherry-picks the macOS-specific pieces from PR #5: Python daemon using bleak (CoreBluetooth backend), LaunchAgent template, flash-mac.sh, and install-mac.sh. Token is read from the macOS Keychain ("Claude Code-credentials" service); Linux behavior is unchanged. README split into "macOS installation" and "Linux installation" sections with parallel Flash / Pair / Install subsections. Co-Authored-By: Chris Davidson <36679917+lorddavidson@users.noreply.github.com> Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add macOS host support
|
Thanks for adding macOS host support, I just received my ESP32-S3-Touch-AMOLED-2.16 device today and can provide some real-world feedback with: during compiling I got a bunch of warnings like: but in the end it flashed successfully: After that I tried to find the "Clawdmeter" device via System Settings → Bluetooth, but it wouldn't show up. Turns out it wasn't necessary. I then proceeded with (I hadn't used claude at all yet today - as soon as I launched Glad to provide more information if needed. |
|
Thanks for the real world example! Glad to hear you managed to get it working! |
Summary
Cherry-picks the macOS-specific pieces from #5 so they can land independently while the 1.8" board port iterates separately.
Credits Chris Davidson (@lorddavidson) as the original author of all the macOS code — thanks!
What's included
daemon/claude_usage_daemon.py— Python rewrite of the bash daemon usingbleak(CoreBluetooth on macOS). Mirrors the bash daemon's behavior: 60 s poll, refresh-on-notify, exponential reconnect backoff, MAC/UUID caching.daemon/com.user.claude-usage-daemon.plist— LaunchAgent template (Mac equivalent of the systemd unit).install-mac.sh— installs to~/Library/LaunchAgents/, sets up a Python venv withbleak+httpx, primes Bluetooth permission interactively.flash-mac.sh— wrapspio run -t uploadwith/dev/cu.usbmodem*autodetect.README.md— split into "macOS installation" and "Linux installation" sections with parallel Flash / Pair / Install subsections.What's not included
The 1.8" board firmware port from #5 is intentionally left out — those button-wiring questions are still being discussed on the original PR and don't block macOS support.
What changed vs #5
flash-mac.shsimplified: dropped the-e <env>flag and thewaveshare_amoled_18default (no second env exists on this branch)..gitignoreadditions trimmed to the macOS-relevant entries (daemon/.venv/,__pycache__/,*.pyc).Test plan
install.sh/flash.sh/ bash daemon / systemd unit unchanged