Reference

Configuration

Brigade keeps every byte of state under ~/.brigade/. The main config is brigade.json (JSON5). You can edit it through the CLI without opening the TUI.

Reading & writing config#

terminal
$ brigade config list$ brigade config get agents.defaults.provider$ brigade config set agents.defaults.provider openrouter$ brigade config unset agents.defaults.thinking$ brigade config file              # print the resolved config path$ brigade config validate          # schema-check the current config

Each write preserves rotating forensic backups (.bak through .bak.4) at mode 0600. Secrets written as ${VAR} references are restored as references on write, never persisted resolved — see Security & privacy.

Environment overrides#

VariablePurpose
BRIGADE_STATE_DIRAlternate state directory (default ~/.brigade)
BRIGADE_CONFIG_PATHAlternate config file path
BRIGADE_PORTGateway port (default 7777)
BRIGADE_PROFILENamed profile (workspace-<profile>/)
BRIGADE_MODEfilesystem or convex
BRIGADE_CONVEX_URLConvex deployment URL (implies convex mode)
BRIGADE_ENCRYPTION_KEYAt-rest encryption master key (hex)
BRIGADE_SUBAGENT_MAX_DEPTHOverride the sub-agent spawn depth cap
BRIGADE_HOST_ENVOverride the host-environment tag in the system prompt

Storage layout#

~/.brigade/
~/.brigade/├── brigade.json              # main config (JSON5; ${VAR} secret refs preserved on write)├── brigade.json.bak{,.1..4}  # rotating forensic backups (mode 0600)├── models.json               # custom provider catalog (Ollama / custom endpoints)├── workspace/                # default agent (main): SOUL / IDENTITY / AGENTS / USER /│   │                         #   TOOLS / BOOTSTRAP / HEARTBEAT.md persona files│   ├── memory/facts.jsonl    # write_memory / recall_memory│   └── skills/               # drop-a-folder skills├── agents/<id>/              # per-agent isolation│   ├── workspace/            # same shape, per agent│   ├── sessions/<id>.jsonl   # transcripts (one file per session)│   └── agent/                # auth-profiles.json, models.json (mode 0600)├── channels/<id>/<account>/  # channel state (auth, allow-from, pairings)├── cron/runs/<jobId>.jsonl   # cron state + per-run logs├── logs/                     # daily rolling logs + config audit└── gateway.{pid,lock,heartbeat}

Per-agent everything

Note how much is per-agent: each agent under agents/<id>/ has its own workspace, sessions, auth profiles, and model catalog. That is what makes the isolation in Agents & isolation real on disk.