boxd exec commands and coding agents run in, and into services your machine starts at boot. No per-VM setup, no .env files to copy around.
There are two kinds:
boxd env | boxd secret | |
|---|---|---|
| For | non-sensitive config | tokens, API keys, passwords |
| At rest | cleartext | sealed |
| Readable back | yes — list shows values | never — list shows names + scope only |
list; secret values are sealed and never returned by the API — not even to you. To change a secret you re-set it.
Manage them from any boxd CLI — the laptop CLI, the SSH CLI, or the in-VM CLI — or from the console.
Environment variables
Secrets
get, and list never returns a value. Rotate one by running set again with the new value.
Naming
Names must be valid environment identifiers (letters, digits, underscores; not starting with a digit). TheBOXD_* prefix is reserved for boxd’s own variables.
Scope (in an org context)
When you’re working in an org context,--scope decides which of the org’s machines receive the variable:
| Scope | Applies to |
|---|---|
shared | shared org machines only (default) |
private | your private, org-billed machines only |
all | both |
all (your personal machines) — the --scope flag is ignored. boxd secret scope <name> <scope> moves an existing secret between scopes without re-entering its value.
How they reach a machine
On boot — and on every login shell — boxd resolves the env vars and secrets in scope for that machine and exports them. So they’re present for:- interactive shells (
ssh <vm>.boxd), boxd execcommands,- the pre-installed coding agents, and
- services your machine starts at boot.