Existing computers
In Settings → Credentials, save the value in the Secrets section, then choose Apply and select a running Linux computer. The Apply secrets endpoint provides the same action for API clients. Workspace values override account values with the same name. Open a new terminal or restart the agent afterward; running programs keep their previous environment. Updating the vault alone does not modify an existing computer, and deleting a vault entry does not remove copies already installed there.The model
1
Declare
The template lists the secrets it needs under
secrets. Names only, no values.2
Supply
The launching user stores the value in their vault (once, per account).
3
Inject
At create, Orgo writes the user’s matching secrets into the computer at
/root/.env (mode 0600). They are never baked into the shared snapshot.Declare
Reference
At launch, Orgo writes each declared secret you have set to/root/.env under its UPPER_SNAKE_CASE name, so anthropic_api_key becomes ANTHROPIC_API_KEY. New interactive shells source /root/.env, so terminals see the variable.
You can also name a declared secret in env with {secret: <name>}:
optional: the variable is simply absent.
Secrets and golden snapshots
A template computer starts from the golden snapshot, which was built before any particular user launched it. The user’s secret is injected per computer at create, after the snapshot was baked. So a launch that injects secrets does not restore the snapshot’s memory. It cold-boots from the snapshot’s disk with/root/.env already written, and /root/.env is sourced before app services, terminal sessions, and the on_every_boot hook start, so all of them see the secret. A launch with no secrets to inject restores the snapshot’s memory when its host can, with every process as the build left it.
On a launch that injects secrets, /root/.env holds only the secrets: literal env values the template wrote there are not set. Put a value a service needs in that service’s own env.
To start a program with the launcher’s key, give a terminal session a run command, or run the program as an app service:
system/coding template uses: its claude-code and codex sessions run claude and codex. Do not rely on the on_resume hook for this, because launched computers do not run it.
Managing your vault
Add and update secret values in the Secrets section of Settings → Credentials, at orgo.ai/settings/credentials. A secret is either account-wide or scoped to one workspace. Store an account-wide key once and every template you launch can request it by name. A workspace value takes precedence over an account value with the same name. From the CLI,orgo secrets set ANTHROPIC_API_KEY stores a value (it prompts for the value when you omit it) and orgo secrets list shows the names you have set.
Security
- Values are encrypted at rest and never returned to a client in plaintext.
- A secret is never part of the template document, its
digest, or the golden snapshot. - Build logs never print secret values.
- Only secrets a template explicitly declares are injected, and only if you have them set.
Next steps
Schema reference
env, files, and secrets in full.Examples
See a launch-time secret in a real template.