Skip to main content
Configure the Bridge with environment variables or ~/.ctrlnode/.env. The runtime reads config at startup; installers (install.ps1 / install.sh) create the initial file.
Interactive setup belongs in install scripts, not in the Bridge binary. After install, edit ~/.ctrlnode/.env or your shell profile.

Where settings live

.env search order (first existing file wins; keys already in the process environment are not overwritten from file, except installer overrides — see below):
  1. {BASE_PATH}/.ctrlnode/.env (recommended — written by installers)
  2. ./.env (current working directory)
  3. ~/.env (home directory)
For keys PAIRING_TOKEN, SAAS_URL, and BASE_PATH, values in ~/.ctrlnode/.env from the installer override stale shell exports so a random PAIRING_TOKEN=test in your profile does not break production pairing. Example:
On disk, Bridge data lives under:

Core connection

Workspace: BASE_PATH (replaces AGENTS_FOLDER)

Installers set BASE_PATH (not AGENTS_FOLDER). This is the “workspace parent” you choose at install time — where task folders and Bridge metadata are stored.
AGENTS_FOLDER is legacy. Do not document or set it for new installs. Use BASE_PATH only.
Project work directory is separate: it is configured per project in the web app (repositoryPaths), not via a Bridge env var. See Tasks — work modes.

Providers: no PROVIDERS env var

The Bridge always loads all built-in providers:
Routing is driven by CtrlNode: on connect the server sends sync_{provider}_agents for each CLI type. The Bridge maps each agent id → provider. Install only the CLIs you use; missing tools fail tasks with clear errors instead of silent mis-routing.
If openclaw.json is missing, OpenClaw is skipped at runtime with a warning — other providers still work.
Per-provider setup: Providers.

OpenClaw paths

Provider credentials (summary)

Hermes-specific

See Hermes provider.

Timers and watcher

Per-provider *_TIMEOUT_MINUTES default to 10 (Hermes 15).

Debugging

Run ctrlnode in a terminal and watch stderr for handshake_sent, sync_*_agents, and provider warnings.

Troubleshooting

Confirm ctrlnode is running, PAIRING_TOKEN in ~/.ctrlnode/.env is current, and shell PAIRING_TOKEN is unset.
Match the agent’s agent type in Team to the installed CLI. Do not set PROVIDERS — it has no effect. Reconnect Bridge after creating agents.
Ensure the project has a Project work directory configured and the task mode is WORK DIRECTORY. See Task work modes.