Switch profiles for client work
Outcome: Two or more separate Gormes profile homes, each with its own config, secrets, sessions, and memory store, switchable in one command.
Prerequisites:
gormesinstalled.
-
List existing profiles
Terminal window gormes profile list*marks the active profile. -
Create a new profile
Terminal window gormes profile create client-acmeThis builds a fresh named profile under the active Gormes home. Creating a profile does not make it active. Add
--clone-allto copy profile data from the default Gormes home while excluding infrastructure and runtime process files. -
Switch to the profile
Terminal window gormes profile use client-acmeprofile setis an accepted alias forprofile use. -
Record profile workspaces and channels
Terminal window gormes setup profilesThe interactive flow can select the active profile and persist
agents.defaults.workspacesplusagents.defaults.channelsinto that profile’s ownconfig.toml. A non-empty workspace list is enforced as the model-facing project allow-list. -
Configure provider and model inside the profile
Terminal window gormes auth add openai --api-key sk-...gormes setup modelgormes config showGormes state commands run against the active profile home. Profile selection separates config, secrets, sessions, memory, skills, logs, cron, and gateway state. The Gormes workspace policy treats an empty
agents.defaults.workspaceslist as the operator home, and a non-empty list as the project read/write allow-list for file tools, project-modeexecute_code, and coding-agent delegation. Local terminal andexecute_codeshell subprocesses use the active profile’shome/directory asHOMEwhen that directory exists. Runtime internals still own the active profile root for state, but model-facing profile edits are limited to explicit profile-owned content: identity files such asSOUL.mdandIDENTITY.md, plus the active profile’sskills/directory. Secrets, sessions, memory databases, logs, and sibling profiles are not project workspaces. -
Open chat under a specific profile without switching
Terminal window gormes --profile client-acme chat
Verify
Section titled “Verify”gormes profile showExpected output:
active profile: client-acmeroot: .../client-acmeTroubleshooting
Section titled “Troubleshooting”profile not found→ Re-rungormes profile listto confirm the exact name, or create it withgormes profile create <name>.- Wrong profile picked up by a script → Set the profile per-invocation with
--profile <name>rather than relying on the persisted active profile. - Shell tools still see the operator home → Confirm the active profile has a
home/directory and the command is running undergormes --profile <name>or aftergormes profile use <name>. Legacy profile roots created before this parity slice may needmkdir -p <profile-root>/home, using the root printed bygormes profile show. - Terminal is blocked after adding workspaces → A non-empty
agents.defaults.workspaceslist makes the local terminal fail closed until a sandbox-capable terminal backend is configured. Use file tools or project-modeexecute_codeonly when the command can be represented through a confined surface. - Profile files are still broad state → Editing profile identity and skills is intended, but the allow-list does not make the whole profile root a model-facing workspace. Keep secrets and runtime state out of normal file tool workflows.
See also
Section titled “See also”- Connect a provider and open chat
- Migrate from Hermes or OpenClaw — migrate into a separate profile home.