{"name":"go-haystack: Track Devices with Apple's Find My Network, No Apple Hardware Needed","description":"go-haystack enables users to track personal Bluetooth devices by leveraging Apple's extensive \"Find My\" network. This innovative project utilizes OpenHaystack and Macless-Haystack, providing robust tools developed in Go and TinyGo. A key advantage is its ability to establish a custom Find My network without requiring any proprietary Apple hardware.","github":"https://github.com/hybridgroup/go-haystack","url":"https://osrepos.com/repo/hybridgroup-go-haystack","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/hybridgroup-go-haystack","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/hybridgroup-go-haystack.md","json":"https://osrepos.com/repo/hybridgroup-go-haystack.json","topics":["go","tinygo","bluetooth","find-my","openhaystack","airtag","device-tracking","iot"],"keywords":["go","tinygo","bluetooth","find-my","openhaystack","airtag","device-tracking","iot"],"stars":null,"summary":"go-haystack enables users to track personal Bluetooth devices by leveraging Apple's extensive \"Find My\" network. This innovative project utilizes OpenHaystack and Macless-Haystack, providing robust tools developed in Go and TinyGo. A key advantage is its ability to establish a custom Find My network without requiring any proprietary Apple hardware.","content":"## Introduction\n`go-haystack` is an exciting open-source project that empowers you to track your personal Bluetooth devices using Apple's vast \"Find My\" network. It achieves this by integrating with [OpenHaystack](https://github.com/seemoo-lab/openhaystack){:target=\"_blank\"} and [Macless-Haystack](https://github.com/dchristl/macless-haystack){:target=\"_blank\"}, offering a suite of tools written in Go and TinyGo. The most compelling feature is its ability to set up a custom Find My network entirely without the need for any Apple hardware.\n\nThe project allows you to build your own beacons using TinyGo firmware, compatible with various nRF-based boards and even Linux systems like Raspberry Pi. Additionally, `go-haystack` includes TinyScan, a hardware scanner for local devices, providing a complete solution for personal device tracking.\n\n## Installation\nTo get `go-haystack` up and running, you'll need to follow a few steps, including setting up supporting services.\n\n### Apple ID\nYou must have an Apple ID with 2FA enabled. Note that only SMS/text message as a second factor is currently supported.\n\n### anisette-v3-server\nStart the `anisette-v3-server` using Docker:\nbash\ndocker network create mh-network\ndocker run -d --restart always --name anisette -p 6969:6969 --volume anisette-v3_data:/home/Alcoholic/.config/anisette-v3 --network mh-network dadoum/anisette-v3-server\n\n\n### macless-haystack\n1. Start and set up your Macless Haystack endpoint in interactive mode:\nbash\ndocker run -it --restart unless-stopped --name macless-haystack -p 6176:6176 --volume mh_data:/app/endpoint/data --network mh-network christld/macless-haystack\n\nYou will be prompted for your Apple ID, password, and 2FA. Once you see `serving at port 6176 over HTTP`, the setup is complete. Hit `ctrl-C` to exit the process.\n\n2. Restart the `macless-haystack` server:\nbash\ndocker restart macless-haystack\n\nFor more details, refer to the [original Macless-Haystack instructions](https://github.com/dchristl/macless-haystack/blob/main/README.md#server-setup){:target=\"_blank\"}.\n\n### go-haystack\nInstall the `go-haystack` command-line tool:\nshell\ngo install github.com/hybridgroup/go-haystack/cmd/haystack@latest\n\n\n## Examples\nOnce installed, `go-haystack` provides simple commands for scanning and managing your devices.\n\n### Scanning for local devices\nTo scan for any local devices within range, use the `scan` command:\nshell\nhaystack scan\n\nThis will return a list of nearby devices, including their MAC addresses, RSSI values, and battery status.\n\n### Adding a new device\n1. Generate keys for your new device:\nshell\nhaystack keys DEVICENAME\n\nReplace `DEVICENAME` with your desired name for the device. This command will create `DEVICENAME.keys` and `DEVICENAME.json` files.\n\n2. Flash the hardware with the TinyGo target and your device's name:\nshell\nhaystack flash DEVICENAME nano-rp2040\n\nThis command compiles the TinyGo firmware with your generated keys and flashes it to the specified device. For more information on TinyGo, visit [https://tinygo.org/getting-started/overview/](https://tinygo.org/getting-started/overview/){:target=\"_blank\"}.\n\n3. Upload the device's JSON configuration to `macless-haystack`:\nNavigate your web browser to [`https://dchristl.github.io/macless-haystack/`](https://dchristl.github.io/macless-haystack/){:target=\"_blank\"}. This is a single-page web application that interacts with your local `macless-haystack` instance. Click on \"Accessories,\" then the \"+\" button, and select the `DEVICENAME.json` file you generated earlier.\n\nYour device is now set up! It might take some time for the first data to appear in the Macless-Haystack web UI as your device needs to be in range of an iPhone to be picked up by the Find My network.\n\n## Why Use go-haystack?\n`go-haystack` offers a unique and powerful solution for personal device tracking. Its primary advantage is the ability to leverage Apple's robust \"Find My\" network without needing any Apple hardware, making it accessible to a broader audience. The use of Go and TinyGo ensures efficient, performant, and resource-friendly applications, ideal for embedded systems and microcontrollers. This project provides a customizable and open-source alternative for those interested in building their own tracking beacons, offering greater control and privacy over their personal devices.\n\n## Links\n*   **GitHub Repository**: [https://github.com/hybridgroup/go-haystack](https://github.com/hybridgroup/go-haystack){:target=\"_blank\"}\n*   **OpenHaystack**: [https://github.com/seemoo-lab/openhaystack](https://github.com/seemoo-lab/openhaystack){:target=\"_blank\"}\n*   **Macless-Haystack**: [https://github.com/dchristl/macless-haystack](https://github.com/dchristl/macless-haystack){:target=\"_blank\"}\n*   **TinyGo**: [https://tinygo.org/](https://tinygo.org/){:target=\"_blank\"}\n*   **Macless-Haystack Web UI**: [https://dchristl.github.io/macless-haystack/](https://dchristl.github.io/macless-haystack/){:target=\"_blank\"}","metrics":{"detailViews":4,"githubClicks":10},"dates":{"published":null,"modified":"2025-10-16T19:17:09.000Z"}}