Skip to content

Releases

Light Beam 1.34.0

Choose a tag to compare

@jamesccupps jamesccupps released this 15 Nov 01:47

Versions: server 1.34.0, Android app 1.20.0 (the Windows app and Beam for Linux are unchanged).

  • Notes: a conversation with yourself under All devices, for anything to keep for later: write, paste or drop
    text, links, pictures and files there. A note is a message to the device it was sent from, so every device shows
    every note and none of them buzzes or acts on one; the server keeps notes until they're deleted (the clean-ups
    skip them, as they skip pinned items) and never pushes them to ntfy. A note's menu has Done (it's struck
    through), Edit, Send to… and Delete; every other message has Save to Notes. On Android the share sheet and the
    clipboard tile can save to Notes; so can beam send --to notes "…" and the target name notes in the API.
    note and done on items, PATCH /api/items/{id} {"done"}, feature notes (docs/API.md, "Conversations").
  • Fixed: in the web app, the Alerts or Phone row going away from the sidebar could leave the next row with
    nowhere to go (an error, and a sidebar drawn only partly).

Source only: build the Windows and Android apps yourself (docs/BUILDING.md); each build carries its builder's own update and signing keys.

Light Beam 1.33.0

Choose a tag to compare

@jamesccupps jamesccupps released this 11 Nov 00:20

Versions: server 1.33.0, Windows app 1.26.0, Android app 1.19.0.

  • The alerts inbox: your other programs send their alerts to Beam the way they'd send them to ntfy (JSON to <Beam>/notify/, text and headers to <Beam>/notify/<key>, …/trigger by GET, an access token), or as any webhook's JSON; each program gets its own key in Settings → Alerts (shown once, kept hashed, it sends alerts and nothing else). They show up under Alerts (a row in the sidebar, in place of a conversation; the Android app's menu) with Beam's own alerts: newest first, a chip per program, title (with its tags' emojis), text, Open and its link buttons, High and Urgent marked. Priority 3 and up pops up on every device (Windows' notifications, Android's, the browser's), 1-2 are only listed, and a program can be muted or snoozed. Approved devices only; never an alert's words in a log. /notify, /api/inbox, /api/inbox/senders, /api/inbox/alerts, the inbox events (docs/API.md "The alerts inbox"). The emoji names are gemoji's (MIT, Copyright (c) 2019 GitHub, Inc.: lib/emoji.js).

Every part's recent changes: CHANGELOG.md.

Source only. There's no Beam.exe or beam.apk here on purpose: a Windows build carries its builder's own update key and an Android build its builder's own signing key, so a build made by someone else would only accept that person's updates. Build them yourself: Building the apps. The browser needs nothing built.

Light Beam 1.32.0

Choose a tag to compare

@jamesccupps jamesccupps released this 08 Nov 17:36

Versions: server 1.32.0, Windows app 1.25.0, Android app 1.18.0.

  • Commands on a PC: Device info → Run a command (the web app, the Windows app's window, the Android app): a PowerShell or Command Prompt command on one of your PCs, its output (errors in their own colour) while it runs, Stop (the whole process tree), the exit code, Copy, recent commands kept in that browser. Only the devices that may control that PC can, and only once "Allow commands too" is on at that PC (its tray menu or Settings → Security); turning remote control off turns it off too. It runs as the PC's signed-in user in a hidden window, never as administrator; PowerShell gets the command on its input (never on its command line). The logs say who ran one and how it ended, never the command or its output. POST /api/devices/{id}/commands (answered with an event stream), GET /api/commands/{run}, POST /api/commands/{run}/stop, status commands (docs/API.md "Commands on a PC").

Every part's recent changes: CHANGELOG.md.

Source only. There's no Beam.exe or beam.apk here on purpose: a Windows build carries its builder's own update key and an Android build its builder's own signing key, so a build made by someone else would only accept that person's updates. Build them yourself: Building the apps. The browser needs nothing built.

Light Beam 1.31.0

Choose a tag to compare

@jamesccupps jamesccupps released this 07 Nov 01:23

Versions: server 1.31.0, Windows app 1.24.0, Android app 1.17.0.

  • Sites: the web pages your machines serve over Tailscale, in one list on every device: the globe at the top of the web app (and the Windows app's window), Sites in the Android app's menu. Each PC's Beam app finds the pages that PC serves to the tailnet (programs listening on every address or the Tailscale one, on the ports web pages use, whose front page is a web page), listed at its Tailscale name. Pages on machines without the Windows app are added by address. When the list opens, the server checks each one: whether it answers (with the reason when it doesn't), its title and its icon. A site can be renamed; a found one hidden, an added one removed. Approved devices only. GET/POST /api/sites, PATCH/DELETE /api/sites/{id}, POST /api/sites/check, the sites event, status sites (docs/API.md "Sites").

Every part's recent changes: CHANGELOG.md.

Source only. There's no Beam.exe or beam.apk here on purpose: a Windows build carries its builder's own update key and an Android build its builder's own signing key, so a build made by someone else would only accept that person's updates. Build them yourself: Building the apps. The browser needs nothing built.

Light Beam 1.30.2

Choose a tag to compare

@jamesccupps jamesccupps released this 06 Nov 20:24

Versions: server 1.30.2 (Beam Family with it), Windows app 1.23.1, Android app 1.16.1, Beam for Linux 1.6.0.

  • Beam for Linux: a big file being saved no longer holds the agent up (it went offline for minutes, and what came meanwhile was lost); a file too big for the disk waits instead of filling it; an update must run on that computer's Node.js before it takes over, and one that keeps stopping goes back to the version before (and is never taken again); Wake-on-LAN is relayed once per device in 30 seconds; notifications show <, & and backslashes and work in any locale; remote control's screen sharing starts once however many ask, and stops when a session ends while starting; the log is readable by its own account only; an ARMv6 Pi gets a clear message from the installer.
  • Speed: finding an item by id no longer scans the list (acks and deletes of many at once were slow on a big Beam); an ack of many writes one log line; in the web app many removals draw once, and Select all in a big gallery is quick; a very long text shows its start in the conversation and the whole in a window of its own; the Windows app's folder scans, settings saves and helper checks no longer run on its window's thread; the Android conversation reuses the rows that didn't change during a transfer.
  • Sent once: a text whose answer was lost on the way and was sent again is the same message (web, Android, Beam Family).
  • Storage: a forwarded file counts once; uploads still arriving are counted against the disk; an upload of unknown length stops at the room there is; a full storage limit says what holds it ("800 KB waits for Shelf PC"); an upload finished just before Beam stopped is kept; a log that can't be rotated (a viewer holds it) no longer grows without end.
  • Windows: notifications wait 2 seconds at most; a file that can't be moved into place at once (an antivirus holding it, a name taken) tries again; "Save as" replaces in one step; leftovers of files to send are cleared after a day; a sent screenshot gets its thumbnail; text boxes, the send picker and the keyboard-and-mouse arrangement work with a screen reader and the keyboard.
  • Apps: a GitHub app's chosen file is found again in a release whose file names carry the new version.
  • Beam Family: search for short words is quick; the downloads panel no longer loses a click on Stop; text sizes follow the browser's setting, with a Text size choice in Appearance.
  • CI: actions pinned to commits (kept current by Dependabot), read-only permissions, npm audit of what ships, the Linux installer test required, and Beam for Linux tested on Node.js 20 and 22; the Gradle wrapper's download checked against its published checksum.

Every part's recent changes: CHANGELOG.md.

Source only. There's no Beam.exe or beam.apk here on purpose: a Windows build carries its builder's own update key and an Android build its builder's own signing key, so a build made by someone else would only accept that person's updates. Build them yourself: Building the apps. The browser needs nothing built.

Light Beam 1.30.1

Choose a tag to compare

@jamesccupps jamesccupps released this 06 Nov 13:21

Versions: server 1.30.1, Windows app 1.23.0, Android app 1.15.0, Beam for Linux 1.5.1 (unchanged).

  • Only approved devices make a PC act by itself: copying a text, opening a link and saving a file automatically happen only for this PC's own items or an approved device's (the others still show their notification, with Copy and Save). Restore settings lists only approved PCs and never takes another PC's folders. On the server, a sign-in that isn't approved can change only its own messages and can't delete everything.
  • Receiving: a long text whose full copy can't be fetched is never copied as its cut-off preview; an automatic save needs room on the drive; a save that fails on the PC isn't reported to the sender as delivered; a saved file is on the disk before it's renamed.
  • Outbox: an entry whose upload a restart interrupted is sent once (it went twice) and then moved to Sent.
  • Apps: an app never takes over another program's folder of the same name ("Python" goes to "Python (Beam)"), and an uninstall removes only the files Beam put there.
  • Remote control and KVM: "Answer Windows' prompts (UAC)" says what it costs (any program on the PC could answer them) and Device info shows the PCs where it's on; the keyboard and mouse link no longer reads a big clipboard at every crossing; "Allow remote control" lists only devices that can control a PC and ticks only approved ones.
  • Smaller: previews only from pictures up to 100 megapixels; names Windows treats as devices are renamed and long names keep their extension; shared folders are judged by where they really are (links, subst and network drives); the delay probe can't take Beam down; Device info → Beam log → Save works in the app's window; the elevated input-helper setup writes only its own result file.

Every part's recent changes: CHANGELOG.md.

Source only. There's no Beam.exe or beam.apk here on purpose: a Windows build carries its builder's own update key and an Android build its builder's own signing key, so a build made by someone else would only accept that person's updates. Build them yourself: Building the apps. The browser needs nothing built.

Light Beam: Android app 1.16.0

Choose a tag to compare

@jamesccupps jamesccupps released this 06 Nov 18:43

Versions: Android app 1.16.0; server 1.30.1, Windows app 1.23.0, Beam for Linux 1.5.1 (all unchanged).

  • Only approved devices make the phone act by itself: texts are copied and files downloaded automatically only from approved devices (the others still notify, with Copy and Download). Restore settings lists only approved phones' backups, and never points the Quick Settings tile or automatic copying at a device that isn't approved.
  • Sending files: Cancel and pause work while a file is still being prepared (it went anyway). A file is measured itself, not by the size its app lists (an edited photo went cut short), and one that turns out longer than it said goes again, whole. A shared file that has to wait for a connection is kept by Beam when there's room, so the retry no longer fails with "Beam no longer has access to that file".
  • "Wi-Fi only" follows the network: an automatic download pauses on mobile data and carries on on Wi-Fi (also behind Tailscale, where the network doesn't seem to change); one restarted after Beam was stopped waits too.
  • Smaller: a picture preview from the server can't crash the app however large it says it is; dropped or pasted file:// links are refused, like shared ones; the update screen never starts a second install when it's turned or made again; the alarm volume comes back if Beam stopped while ringing; another device's accent change no longer ends a remote control session or reloads Shared folders, which isn't kept as a recent-apps snapshot; the viewer pages' sign-ins are kept sealed; a full phone is reported as such, not as a connection problem.

Every part's recent changes: CHANGELOG.md.

Source only. There's no beam.apk here on purpose: an Android build carries its builder's own signing key, so a build made by someone else would only accept that person's updates. Build it yourself: Building the apps.

Light Beam 1.30.0

Choose a tag to compare

@jamesccupps jamesccupps released this 05 Nov 23:19

Versions: server 1.30.0 (Beam Family with it; its database moves to version 7), Windows app 1.22.1, Android app 1.15.0, Beam for Linux 1.5.1 (unchanged).

  • Sign-in and trust: a sign-in that isn't approved can no longer take the id of a device that already has a sign-in (approving that device used to approve both); the approval switch says when a device has more than one sign-in. Automatic (Tailscale) sign-ins are limited per machine and check the request's own Host header too; a removed or unapproved device's pairing links stop working; Wake-on-LAN only for PCs whose Beam app proves itself, a few a minute; the setup check and turning down a sign-in need an approved, lasting sign-in.
  • No more stalls from long names or messages: trimming is linear (a name or message with a very long run of dots, spaces or blank lines held the server for seconds).
  • Data: a move stays paused for as long as its copy runs; a failed import leaves a marker so the server doesn't start on half a data folder; static files only by their names on disk; an edited long text isn't served from an old copy; thumbnails bigger than 2048 px a side are refused.
  • Web app: a link that asks to paste shows the paste preview first; a share shows what it holds before you choose where it goes; a file queued offline is kept until its upload finishes; messages show above open dialogs; dangerous confirmations start on Cancel.
  • Beam Family: sign-in limits apply before a request's body is read; browser notifications stop when the sign-in that turned them on ends (each browser registers again when Family is next opened there); an invite stops working when the admin who made it is turned off or made a member.
  • Packaging: .dockerignore keeps backups and Family's data out of images.

Every part's recent changes: CHANGELOG.md.

Source only. There's no Beam.exe or beam.apk here on purpose: a Windows build carries its builder's own update key and an Android build its builder's own signing key, so a build made by someone else would only accept that person's updates. Build them yourself: Building the apps. The browser needs nothing built.

Light Beam 1.29.5

Choose a tag to compare

@jamesccupps jamesccupps released this 05 Nov 21:29

The first tagged release: where Beam stands on 2026-11-05.

Part Version
Server (and Beam Family) 1.29.5
Windows tray app 1.22.1
Android app 1.15.0
Beam for Linux / the beam command 1.5.1

What each part does and the recent changes: CHANGELOG.md.

Source only. There's no Beam.exe or beam.apk here on purpose: a Windows build carries its builder's own update key and an Android build its builder's own signing key, so a build made by someone else would only accept that person's updates. Build them yourself: Building the apps. The browser needs nothing built.