VERSION 0.2.0 // STABLE

BEAM

Ephemeral, terminal-first file sharing. Send assets directly from your command line to any browser without dashboard bloat.

INSTALL_COMMAND
$ brew tap lopezlean/beam && brew install beam_

beam session - 80x24

Beam ⚡️

Global default

Payload
Vector.png (file)
Download
Vector.png
Size
26.84 KiB
Transport
HTTPS tunnel via Pinggy SSH
Security
token URL
Public HTTPS
https://beam.link/s/token
        
image/svg+xml
01 // SENDER

Terminal Native

Share from your shell with one command. Beam stays out of the way and fits naturally into development workflows.

terminal Local CLI
$ beam send ./dist.zip --ttl 5m
02 // RECEIVER

Universal Browser

The receiver only needs a browser. No Beam install, no dashboard, and no account creation on the other end.

language Browser Interface
folder_zip dist.zip (4.2 MB) READY
AUTO-DESTRUCT IN: 04:59

Core_Specs

timer

Configurable TTL

Every session expires automatically. Keep links alive for minutes or hours, then let them disappear without cleanup.

local_fire_department

Burn-after-reading

Use --once to destroy the session immediately after the first successful download.

folder_zip

Directory ZIP Streaming

Send whole folders as ZIP streams on the fly without writing temporary archives back to disk.

sync_saved_locally

Resumable file downloads

Regular files support HTTP Range so interrupted transfers can resume cleanly.

public

Auto provider routing

Global mode defaults to provider auto, trying cloudflared first, then Pinggy over SSH, and finally the native relay when it is configured or already reachable.

lan

Dual local transport

Local mode shares a single session over HTTP and HTTPS, keeping HTTP as the primary friction-free LAN path.

Installation

Beam is written in Rust for speed and safety. Install it with Homebrew or build it directly from source.

macOS / Linux (Homebrew)

brew tap lopezlean/beam
brew install beam

The Homebrew formula also installs cloudflared, while provider auto can still fall back to Pinggy over your system ssh with no account setup.

terminal

Rust source build

cargo build --release
./target/release/beam version

Use this path when hacking on Beam itself or when you want full control over the runtime.

terminal

Examples

Basic send

beam send video.mp4

Share a file through the default public HTTPS path.

Timeboxed link

beam send design.fig -t 15m

Keep the session alive for exactly fifteen minutes.

Burn after reading

beam send secrets.env --once --pin

One download, then the session is gone.

Folder transfer

beam send ./project-assets

Stream a directory as a ZIP archive without temp clutter.

Usage_Manual

beam --help

/ Send

The primary command. Share local files or folders over a short-lived public link or over your LAN.

FLAGS

  • --ttl 10m
  • --once
  • --pin
  • --local
  • --provider pinggy
example.sh
beam send report.pdf --ttl 30m --once

Sends report.pdf, expires in 30 minutes, and destroys the session after the first successful download.

/ Local mode

Use local mode when you want LAN-only sharing. Beam keeps HTTP primary for the smoothest browser flow and also exposes HTTPS as a secondary link.

FLAGS

  • --local
  • --port 8080
  • --ttl 5m
example.sh
beam send photo.jpg --local --port 8080

Serves HTTP on 8080 and searches for the nearest available HTTPS port starting at 8081.

/ Provider override

Override the global provider when you want to force Pinggy, Serveo, or a self-hosted native relay.

FLAGS

  • --provider pinggy
  • --provider serveo
  • --provider native
example.sh
beam send build.zip --provider pinggy

Useful when Cloudflare is unavailable and you want the SSH-based fallback explicitly.

Technical_FAQ

Global vs local mode?

Global mode is the default and is the best path for phones and remote devices. Local mode keeps sharing on your LAN and serves the same session over HTTP and HTTPS.

Does Beam store my file permanently?

Beam keeps the session in the sender process and does not create permanent hosted uploads as part of the Beam app. The reference native relay forwards traffic and does not persist payloads to disk.

Does Beam support resumed downloads?

Yes for regular files through HTTP Range. Folder ZIP streams are chunked and do not currently support resume.

Is the native relay public by default?

No. Beam embeds the native relay client, but a hosted public relay is not bundled in this release. This repo ships beam-relay for local relay development and self-hosting.

What happens if Cloudflare is rate-limited?

Beam can fall back to Pinggy over SSH without an account. On the free path, Pinggy gives you random public HTTPS domains and may cap the tunnel lifetime at 60 minutes.

Can I use another SSH tunnel provider?

Yes. Beam also supports Serveo through --provider serveo. It is an explicit provider, not part of auto, and anonymous browser visits may see an interstitial warning page before download.

Ready to Beam?

Beam is open source and release-driven. Start with Homebrew, inspect the changelog, and ship short-lived links without cloud clutter.