A profile is an account: the program to run, the arguments to add and the
environment to run it with. It is the shape a lot of people already had as a
shell function — a claude with seven variables in front of it — with
somewhere to keep it.
Making one
In Settings → Providers, press New profile in the Installed list. For most accounts the form is two fields:
| Field | What it is |
|---|---|
| Name | what you call this account, e.g. GLM |
| Command | what you type in a terminal to start it — an agent such as claude, or a function of your own such as claude-work |
A function or alias of your own is run once in your interactive shell, with a
stand-in for every agent program, and read back: the agent it starts, the
arguments it adds and the variables it sets. Only a function or an alias is
run this way; a program or script on your PATH is kept as a program and runs
when the profile does.
Details holds the rest, filled in by that reading or by hand:
| Field | What it is |
|---|---|
| Agent | the CLI it is based on |
| Program | optional. Left empty, the base CLI's own launch line is used |
| Arguments | one line, added to that launch, e.g. --permission-mode bypassPermissions |
| Config directory, Endpoint, Token, Models | Claude Code only: CLAUDE_CONFIG_DIR, ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN, and the models the chat offers instead of Opus, Sonnet and Haiku |
| Environment | name and value pairs, with Add variable and Remove. Called Other variables for Claude Code |
Save and it becomes a row of its own in the list. The program runs with these variables set and these arguments added.
Secrets
A variable whose name looks like a secret — anything with TOKEN, KEY,
SECRET, PASSWORD or AUTH in it — is drawn as dots, with Show <name>
to reveal it. The reveal follows the variable's name and not its row, so
removing a row above it cannot slide the reveal onto a different secret.
What devpit handed out this way is taken back out of a run's output before it is stored.
Where a profile is used
- Default agent, so a new terminal opens that account.
- The Account field of an agent or session step. A step naming a profile that has gone fails rather than quietly falling back to the default: the difference between two accounts is somebody's bill.
- The account and model picker in chat. Once a conversation has spoken, its account is fixed.
- Runs as, the account an orchestrator speaks as. Only a profile based on Claude Code can be one.
A profile can do what its CLI can. One based on Claude Code is driven; one based on any other CLI opens in a terminal and nothing more.
A profile that sets CLAUDE_CONFIG_DIR is a separate installation of the CLI,
with its own skills and its own MCP servers — which is why those panes ask
which installation you mean. See Skills and MCP.
Removing one
Remove in the editor. It is refused while a board step still names it, and the refusal names the steps and their projects, because "a step uses it" on a machine with six projects says there is a problem without saying where.