SnapBeam A receiver that stays open, for getting things off your phone Techlosoft - Device Bridge Center WHAT IT IS ========== You are on your phone. You screenshot something, or copy a URL, and you want it on your PC right now. No cable, no cloud account, no emailing yourself. SnapBeam runs on the computer and waits. Anything the phone sends lands in a folder, is announced on the terminal, and - if it is text - is put straight on the computer's clipboard so you can paste it. There are two ways in, and both land in the same folder and print the same line. 1. WITH THE LOCALSEND APP SnapBeam implements the LocalSend protocol v2.2, so the official LocalSend app finds this computer on its own. Screenshot, Share, LocalSend, tap the PC, done. Nothing to type but the pairing code, once. LocalSend is a separate project by its own authors, licensed Apache-2.0: https://localsend.org and https://github.com/localsend. SnapBeam is not LocalSend, is not affiliated with it, and contains none of its code - it implements the protocol they publish. See NOTICES. 2. WITH NOTHING INSTALLED SnapBeam draws a QR code in the terminal. Point the phone camera at it and the phone opens a page served by YOUR OWN computer over the local network. Type the six-digit pairing code once and that phone can send text, photos and pasted screenshots from then on. "Add to Home Screen" gives it a real icon and a full-screen launch. The sibling tool PhoneBridge does the opposite job: a one-shot "put this file on my phone" hand-off that shuts down when it is done. SnapBeam stays open and faces the other way. INSTALL ======= Pre-built binaries are in dist/. There is nothing to install - copy the one for your platform anywhere on your PATH and run it. dist/snapbeam-linux-amd64 Linux, x86-64 dist/snapbeam-darwin-arm64 macOS, Apple Silicon dist/snapbeam-darwin-amd64 macOS, Intel dist/snapbeam-windows-amd64.exe Windows, x86-64 On macOS and Linux you may need to mark it executable: chmod +x snapbeam-linux-amd64 To build from source you need Go 1.24 or newer. There are no dependencies of any kind, so no network access is required: go build -o snapbeam . Double-clicking the program in Explorer or Finder works: with no arguments and a real console on both ends it asks one question - where to save things - and then opens the receiver and stays on screen. COMMANDS ======== snapbeam start [--port 53317] [--dir ] [--name "Study PC"] [--max-size 256MB] [--host ] [--allow-public] [--no-localsend] [--no-code] [--qr blocks|ascii|invert] [--discovery-port 53317] snapbeam list [--dir ] [--json] snapbeam peers [--seconds 5] [--port 53317] [--allow-public] snapbeam send [ ...] --to [--code 123456] snapbeam help | -h | --help start Opens the receiver and stays open until Ctrl+C. Prints the LAN address, a fresh six-digit pairing code, a QR code, and then a line for every item that arrives. list What has arrived so far, newest first, with size and type. Half-finished ".part" transfers are shown too, marked as incomplete, rather than hidden. peers Listens for LocalSend devices and lists them. This is a real discovery run, not just a UDP listener: it opens a throwaway HTTP server on an ephemeral port and announces it, because the protocol's handshake is two-way and a device that was already running answers an announcement by calling back. That throwaway server serves /register and /info only - it has no save folder and no upload routes, so nothing can be sent to it. Use it to check whether multicast works on a network before blaming SnapBeam. send Sends files TO a LocalSend device, using the same protocol. Receiving is SnapBeam's job and where the care has gone; send exists because a protocol you can only half-speak is a protocol you cannot test. FLAGS --port TCP port of the HTTP server. Default 53317, the LocalSend default. The announcement tells other devices which port to use, so this can be changed on its own. --discovery-port UDP port of the multicast group. Default 53317. Change it only to keep two receivers on one machine apart; every device that should see the other must use the same one. --dir Where incoming items are saved. Default: a SnapBeam folder in your home directory. Created if missing. --name The name your phone sees. Default: this machine's hostname. --max-size Largest single item accepted. Default 256MB. Accepts 256MB, 1.5G, 2TiB or a raw byte count; suffixes are BINARY, so 1KB means 1024 bytes. --host Bind to this address instead of the auto-detected one. --allow-public Required before SnapBeam will listen on an address that is not in a private range. Read SECURITY below first. --no-localsend Browser page only: do not join the multicast group and do not serve the LocalSend API. --no-code Run with NO pairing code. Anyone on the network can then send to you. --qr