finds.dev← search

// the find

hybridgroup/go-haystack

★ 1,500 · Go · MIT · updated Aug 2025

Track personal Bluetooth devices via Apple's "Find My" network using OpenHaystack and Macless-Haystack with tools written in Go/TinyGo. No Apple hardware required!

Go implementation of OpenHaystack that lets you build custom Bluetooth tracking beacons compatible with Apple's Find My network, without needing any Apple hardware. Targets TinyGo-compatible microcontrollers (nRF52840, RP2040, etc.) plus Linux. Useful for makers who want cheap DIY AirTag equivalents.

- Clean separation of concerns: firmware, CLI tool, and scanner are in separate Go modules, which keeps the TinyGo build constraints from polluting the host toolchain build

- The haystack CLI wraps key generation, firmware compilation, and flashing into single commands, making the otherwise fiddly OpenHaystack setup approachable

- TinyScan hardware scanner is a practical bonus - being able to verify your beacons are advertising correctly without a phone is genuinely useful during development

- Broad hardware support through TinyGo's Bluetooth package means you can use cheap nRF52840 dongles instead of buying AirTags

- Hard dependency on Apple ID with SMS-only 2FA is a real fragility - Apple can break the anisette auth flow at any time and has done so repeatedly with OpenHaystack-based projects

- The crypto key rotation behavior isn't documented - real AirTags rotate their public key every 15 minutes for anti-tracking; it's unclear if this firmware does the same or broadcasts a static key forever (privacy concern)

- darwin-only BLE scanning for the host CLI (scan_darwin.go / scan_others.go stub) means Linux users can't use the scan subcommand on the same machine they'd naturally run the server stack on

- No tests beyond a single data_test.go for the findmy lib; the key generation and flash orchestration code has zero test coverage, which matters for a security-adjacent project handling Apple credentials

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →