Braide manages the full lifecycle of AI agents on your machine. All agent management happens through the Settings panel.
Braide does not manage authentication for the agents it runs. Signing in, API keys, and OAuth flows are handled by each agent's own client — exactly as they are when you run that agent outside Braide. Braide launches the agent and speaks the ACP protocol to it; it never sees or stores your agent credentials.
Authenticate your preferred agent with its own client before enabling it here. Consult the agent's own documentation for how — its Website and Repository are linked from its entry in the active registry, and the steps are usually a one-time command-line sign-in or an API key set in your environment.
If you create a session or send a prompt before the agent is authenticated, the agent returns an authentication error and Braide surfaces it in the session — there is no sign-in prompt to complete inside Braide, because authentication lives with the agent's client. The message tells you to consult the agent's documentation and authenticate with its client outside Braide, then try again, and includes the agent's Website and Repository links when its registry entry provides them.
When an agent reads its credentials from an environment variable (for example JUNIE_API_KEY), export it from your shell profile (~/.profile, ~/.zprofile, PowerShell $PROFILE, …). Braide captures your login-shell environment at startup and passes it to every agent it spawns, so the variable reaches the agent even when you launch Braide from the Dock or a desktop launcher rather than a terminal. See Login-shell environment for details and caveats.
Toggle an agent on to enable it. When enabled:
You'll see progress indicators during download and extraction.
Toggle an agent off to disable it. This stops the agent process and prevents it from starting automatically.
When the active registry advertises a newer version of an enabled agent, an Upgrade button appears beside the version label, with the registry version shown next to the installed one (for example v1.2.0 → v1.3.0).
Clicking Upgrade does the following:
npx/uvx agents are resolved from their package cache. The status indicator reflects the current phase.Existing sessions are recovered transparently after the restart — see Session Recovery for details.
Binary-distributed agents that have more than one version on disk show a version selector beside the version label (v1.3.0 ▾). Click it to pick another downloaded version; Braide stops the running agent and starts the selected version with the same settings. If the start fails, the previous version is restored. The selector is hidden when only one version is on disk.
Agents distributed as binary archives expose an Uninstall button beside the version label once the version has been downloaded. Uninstall stops the agent (if running) and removes the installed files from disk.
Use it when:
After uninstall, toggling the agent back on re-downloads it. Agents distributed via npx or uvx do not have this button — those runtimes manage their own package cache.
Each agent shows a color-coded status:
An agent with no compatible build for your operating system and architecture stays in the list but cannot be enabled: it shows an Unsupported on this platform pill and its enable toggle and cog (Additional Settings) button are disabled. This is distinct from Error — the agent never starts because there is no npx/uvx launcher and no binary keyed for your platform, rather than failing at launch. See Agent binary distribution keys for how compatibility is determined.
If the error mentions a missing command-line tool (for example, npx is not installed or not on PATH for an npm-distributed agent), open Settings > System Dependencies for the current install status of git, node, npx, and gh, along with download links. See Settings > System Dependencies for the minimum versions Braide expects.

Each enabled agent card in Settings > Agents has a cog icon beside the on/off toggle that opens the Additional Settings dialog. This dialog lets you attach arbitrary JSON settings to each session the agent runs.
Agents are free to read these values to enable tenant tagging, debug flags, feature toggles, routing hints, tracing IDs, or any other agent-specific context. Agents that don't recognise a key simply ignore it, so setting these values is safe even for agents that make no use of them.
Check your agent's ACP support for details of any supported metadata.
The dialog shows a single textarea containing a JSON object. Keys and values are entirely agent-specific — consult the agent's documentation for what it expects. The editor has a few ergonomics to make hand-editing easier:
Invalid JSON is rejected on save with an inline error. An empty object ({}) is treated as "no settings" and the agent runs with nothing extra attached.
Unlike most settings, changing the JSON does not automatically restart the agent. Active sessions would be interrupted by a surprise restart, so the app surfaces the change instead of enacting it.
When the saved JSON differs from the settings the running agent was started with, an Apply button appears on the agent card. Clicking it gracefully stops the agent and starts it again with the new settings. The button hides itself once the restart settles. If no agent is running yet, simply enabling the agent is enough — the saved settings are used on first start.
The stored settings are per-agent and global: they apply to every session and project that uses that agent. They are applied once per session at creation time, so the agent can associate them with that session's state. See the Configuration reference for the file layout.
Most agents run as a single shared process: enabling the agent starts one process, and every session attached to that agent talks to it. This is efficient and matches how all agents have historically run.
Some agents work better — or only work — when each session has its own dedicated process. The Per-session process isolation toggle in the agent's Additional Settings dialog opts that agent into this mode.
| Mode | When you enable the agent | When you create a session | When you delete a session |
|---|---|---|---|
| Shared (default) | One process starts, ready for any session | Session attaches to the shared process | Session detaches; process keeps running |
| Per-session | Nothing starts (no shared process) | A dedicated process is spawned with cwd set to the session's worktree, then ACP initialize runs | The dedicated process is stopped when the session is deleted |
Per-session is the right choice when:
The status pill on the agent card reads "Enabled" instead of "Running" when the agent is configured per-session — there is no long-lived shared process to call "running".
Some agents declare per-session as their preferred mode. When you open the Additional Settings dialog for one of these agents, an inline (recommended) label appears next to the toggle. Currently the only agent in this list is Junie.
You can override the recommendation with the toggle.
Toggling the isolation setting in the Additional Settings dialog and clicking Save persists the change immediately. A confirmation dialog explains what happens to any processes that are currently running:
Changing the agent's Additional Settings JSON behaves differently for per-session agents:
When per-session agents are running, the Process Manager lists one row per dedicated process. Rows are labelled <Agent name> · session <short-session-id> and grouped together with any shared instance of the same agent. Clicking Stop on a per-session row releases just that session's dedicated process — it does not disable the agent.
When you restart Braide, per-session processes are not respawned automatically. The next time you send a prompt to a per-session session, Braide spawns a fresh dedicated process and asks the agent to session/load so it picks up where the original session left off.
If the agent does not advertise session/load capability, the prompt fails with "Per-session agent does not support session/load — this session cannot be resumed after the agent process restarted." This protects you from silently losing context: a per-session agent without session/load cannot recover its in-memory session state, and creating a fresh ACP session under the same id would discard it.
Agents are discovered through registries. To manage registries:
Only one registry is active at a time. Changing the active registry updates the available agent list.
The Process Manager section in Settings provides a fallback for when something gets stuck — for example, an agent that has become unresponsive or a terminal session that hasn't cleaned up.
It lists all active processes with color-coded badges:
Each entry shows the process label, version (for agents), and the underlying command. You can stop any process directly from this view. The list refreshes automatically.