Environment and profiles
Strado resolves a profile at startup, and the profile decides where state lives and which ports it takes. Individual environment variables override individual parts of it.
The two profiles
| stable | dev | |
|---|---|---|
| How it runs | the installed app | npm start or npm run desktop |
| State | ~/.strado | ~/.strado-dev |
| HTTP port | 7777 | 7877 |
| CDP port | 9222 | 9322 |
| Window title | Strado | Strado Dev |
The point is that an installed Strado and a build from source run side by side without touching each other's state, ports, or sessions.
Heads up
The profile comes from the npm scripts, not from detection. Running
electron . inside packages/desktop bypasses them, leaves STRADO_PROFILE
unset, and lands you on stable — ~/.strado, port 7777 — which collides
with an installed Strado if both are running. Use npm run desktop.
Stable is the default on purpose: the same server runs headless on a runner,
and a runner must keep using ~/.strado.
Variables
Each of these overrides one part of the profile, and each is read at startup.
| Variable | Effect |
|---|---|
STRADO_PROFILE | stable or dev. Unset or empty means stable; any other value refuses to start, naming what it got. |
STRADO_HOME | The state directory, replacing ~/.strado or ~/.strado-dev. |
STRADO_CONFIG_DIR | Where config/ lives, replacing the profile's default. |
STRADO_LOG_DIR | Where strado.log is written, replacing <state>/logs. |
PORT | The HTTP port the server listens on. |
STRADO_CDP_PORT | The debugging port the preview browser exposes. |
STRADO_TELEMETRY | 0 disables anonymous usage counts. |
STRADO_INPROC_PTY | 1 forces in-process terminals instead of the daemon. |
STRADO_HOME is the useful one for isolation: point it somewhere else and you
get a completely separate instance — its own credentials, its own tracked time,
its own sessions — which is how you test something without touching your real
setup.
Note
STRADO_INPROC_PTY=1 exists for the test suite and as break-glass. Sessions
started that way die with the server, which is exactly the property the
daemon exists to avoid. Do not leave it set.
On a runner
A runner reads ~/.strado/runner.env at start, as plain KEY=VALUE lines, and
anything already in the environment wins over it.
| Variable | Effect |
|---|---|
STRADO_RUNNER_AUTOUPDATE | 0 turns off automatic updates. strado-runner update still works. |
STRADO_FORWARD_PORTS | Extra ports this runner will forward, as numbers or from-to ranges. |
Everything else
Strado sets a good number of other STRADO_* variables internally — pointing
at the bundled web assets, the daemon script, the sandbox assets, session
identity, and so on. They are implementation detail, they change without
notice, and setting them yourself is a good way to get a confusing failure.
If you find yourself reaching for one, the answer is probably STRADO_HOME.