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.
| Channel | Install | Command name |
|---|---|---|
| Production | curl -fsSL https://cdn.b1m.ai/cli/install.sh | sh | beam |
| Development | curl -fsSL https://cdn.dev.b1m.ai/cli/install.sh | sh | beam-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 --checkSign in
beam login
beam whoamibeam setup is the guided path and is resumable. For automation it needs an
explicit mode:
beam setup --mode account --no-interactiveModes 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 --lastFor the full transfer lifecycle — creating a transfer, distributing it, and reading status — use the transfer commands:
beam transfer --helpChecking your setup
beam status
beam doctor --fixbeam 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 group | What it covers |
|---|---|
beam studio | Drive a Beam Studio installation. |
beam room | Create and join Rooms, manage members, roles, and channels. |
beam tunnel | Expose files, HTTP, streams, or TCP through the tunnel agent. |
beam registry | Inspect, pack, publish, and resolve Registry packages. |
beam action | Run an action bundle locally. |
beam agent | Enrol, 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
- Developer Quickstart — The same first transfer with the SDK.
- Connectors — Configure the storage you move data between.
- Beam Studio — Build pipelines rather than single commands.
- API Reference — The HTTP API underneath every command.