Skip to main content
The CLI authenticates you once through the browser and stores the credentials locally. CI pipelines, scripts, and agents skip the browser with a token or a long-lived API key.

Log in

Any command that needs auth auto-starts the login flow if no credentials are found, so on a fresh install you can run any command and log in on the way.

Tokens

Authenticate a single invocation with a token, overriding stored credentials:

API keys

For CI pipelines, scripts, or agent integrations where the browser login flow is not an option, mint long-lived API keys under boxd auth keys. The raw value is shown only once, at creation time.
Every key is fenced to one org and never grants account-wide access. Without --org, the key is fenced to your active org context. --kind member (the default) acts as you within that org. --kind org is a userless service credential limited to the org’s shared machines, and creating one requires org admin. keys create writes the raw bxd_… value to stdout, while the warning, id, and expiry go to stderr. To put it straight into a GitHub secret without copy and paste:
The key never lands in shell history or scrollback. --json mode is also available for scripting:

Org context

Every account works in an org context, and your personal account counts as an organization of its own. Your active context decides which org a new machine is billed to and which machines list and connect see.
The active org context is a per-device selection. boxd auth switch writes it locally, and each surface (this CLI, the web console, other devices) keeps its own. Your own org is a normal org in the list, so you switch back to it by name like any other, and an unset context shows as (default). To run one invocation in a specific org without switching, pass --org. Sharing machines with the org happens on the machine side. See Organizations in the command reference.

Next step

You are logged in. Head to the full command reference.