Skip to content
Beam Docs

Beam CLI

Install the Beam CLI, sign in, pick an environment, and move data from a terminal.

The Beam CLI moves data from a terminal without writing code. It is deliberately a thin client: the binary contains no transfer engine, Registry server, or daemon of its own. Every command calls the same public APIs the SDK uses, so anything you do here is visible in the Console alongside your other transfers.


Install

The CLI ships as a compiled bundle from the release CDN, on macOS (arm64, amd64), Linux (arm64, amd64), and Windows (amd64). Each archive carries matching CLI and tunnel-agent binaries plus SHA-256 verification.

ChannelInstallCommand name
Productioncurl -fsSL https://cdn.b1m.ai/cli/install.sh | shbeam
Developmentcurl -fsSL https://cdn.dev.b1m.ai/cli/install.sh | shbeam-dev

The two channels install different command names and talk to different services, so you can keep both on one machine without them colliding. Use beam against production and beam-dev against development.

On Windows, use the bundled install.ps1 instead of the shell one-liner.

A first interactive install launches beam setup, which can connect your Beam account, select an organization, name the machine, join a Room from an invitation, and install shell completion. For unattended installs, set BEAM_SKIP_ONBOARDING=1 and run setup later.

Keep the CLI current with beam update, or check without installing:

beam update --check

Sign in

beam login
beam whoami

beam setup is the guided path and is resumable. For automation it needs an explicit mode:

beam setup --mode account --no-interactive

Modes are account, room, or skip. The mode is mandatory when non-interactive — setup will not guess.


Environments and contexts

Each build is bound to its own channel: beam uses the production authentication, API, and Registry services, and beam-dev uses their development counterparts. Within a build, contexts let you hold several organizations or machines:

beam context list
beam context current
beam context use <name>

BEAM_*_URL environment variables override the embedded channel defaults when you need to point at a private environment.


Moving data

The quickest path is sharing and receiving, which needs no configuration beyond being signed in:

beam share file ./dataset.tar
beam receive ./incoming
beam unshare --last

For the full transfer lifecycle — creating a transfer, distributing it, and reading status — use the transfer commands:

beam transfer --help

Checking your setup

beam status
beam doctor --fix

beam status reports what the CLI is connected to. beam doctor diagnoses a broken install and, with --fix, repairs what it can.


The rest of the surface

The CLI reaches beyond client transfers. These are available but belong to other parts of Beam:

Command groupWhat it covers
beam studioDrive a Beam Studio installation.
beam roomCreate and join Rooms, manage members, roles, and channels.
beam tunnelExpose files, HTTP, streams, or TCP through the tunnel agent.
beam registryInspect, pack, publish, and resolve Registry packages.
beam actionRun an action bundle locally.
beam agentEnrol, rename, and revoke this machine.

Run beam help, or beam <group> --help, for the complete command tree on the version you have installed.


Next steps

Decentralized distributed bandwidth infrastructure.

On this page