Agent accounts
Run multiple Claude Code, Codex, or OpenCode accounts — fully isolated backend profiles, or accounts that share one conversation history.
hob doesn't own your model account. It launches the agent CLI on your machine, using whatever account and config directory that CLI sees. Everything is configured in one place — Settings → Agent → Backend Profiles — around three concepts:
- Isolated profile — a backend profile with its own config directory: its own login, CLI settings, and conversation history. Best when things must stay apart, like work and personal.
- Variant profile — a backend profile that shares another profile's data (same login, history, and accounts) and differs in CLI flags or environment variables. Great for things like a flags-only twist on your main backend.
- Accounts — extra subscriptions on one profile that share its conversation history. Switch a pane between them and the conversation continues on the other subscription. Best when the identities are interchangeable, like hopping to a second subscription after hitting a usage limit.
Accounts: multiple subscriptions, shared conversations
On a profile's card in Settings → Agent → Backend Profiles, click + Add account
(Claude Code and Codex are supported). hob shows exactly what it will create before touching anything: a new
config directory for that account's login and CLI settings (for example ~/.claude-work),
with its sessions subdirectory linked back to the backend's own — so every account reads and
writes the same conversation corpus. hob never overwrites existing data, and the option is
unavailable if directory links can't be created on your filesystem.
Sign the new account in by copying its login command from the Accounts settings (or click log in in the pane's account menu to open a login terminal).
Already logged in somewhere else? Point the existing login field at that config dir (for
example ~/.claude-personal, set up manually or as an isolated backend profile) and the new
account starts signed in with it — no fresh login needed. hob copies the credential file in
and keeps the two in sync automatically from then on, so token refreshes on either side never
drift apart. The source directory itself is never modified and keeps working on its own.
Once a profile has more than one account, agent panes show an account selector between the backend and model pickers. Switch that pane's account there — the switch applies from your next message, and because the conversation history is shared, the session resumes right where it was on the other subscription. Different panes can use different accounts at the same time. The star in the selector sets that profile's default account for new panes, at the global or project scope — variant profiles inherit their base profile's default until you star something on them directly.
Primary is the profile's own login (rename it inline in settings if you like); removing an account from hob never deletes its config directory or login from disk.
Variant profiles: same data, different behavior
Choose "Shares … data" in the profile editor's Data control to make a variant: it runs against the base profile's config directory, so it has the same login, history, and account pool — only the launch configuration differs. Because the data is shared, a pane can switch between a base profile and its variants mid-conversation (the transcript resumes under the new flags), and the pane's selected account survives the switch.
The config-dir environment variables (CLAUDE_CONFIG_DIR, CODEX_HOME,
OPENCODE_CONFIG_DIR) are managed exclusively by the Data control — hob rejects them in
Environment variables so a profile's isolation is always what its Data setting says it is.
When to use isolated profiles
Use an isolated profile when data must stay apart:
- Claude Code personal and work accounts whose histories should never mix
- Different API keys or proxies for the same CLI
- OpenCode profiles backed by different config directories
New profiles are isolated by default. If every pane in a repo should use one profile, make it the repo's project default.
Set up an isolated profile
The profile editor's Data control provisions the config dir for the supported CLIs. hob writes the right environment variable for the protocol, so you do not have to remember it:
| Protocol | Default config dir | Profile override |
|---|---|---|
| Claude Code | ~/.claude | CLAUDE_CONFIG_DIR |
| Codex | ~/.codex | CODEX_HOME |
| OpenCode | ~/.config/opencode | OPENCODE_CONFIG_DIR |
Sign in to each account
Use the CLI's normal login flow once for each config directory.
For Claude Code:
CLAUDE_CONFIG_DIR=~/.claude-work claude
CLAUDE_CONFIG_DIR=~/.claude-personal claudeFor Codex:
CODEX_HOME=~/.codex-work codex
CODEX_HOME=~/.codex-personal codexFor OpenCode:
OPENCODE_CONFIG_DIR=~/.config/opencode-work opencode
OPENCODE_CONFIG_DIR=~/.config/opencode-personal opencodeAdd a backend profile
In Settings → Agent → Backend Profiles, click + Add backend. In the New backend modal:
- Set Name to something explicit, like
Claude Code - work,Codex - personal, orOpenCode - client A. - Set Protocol to
Claude,Codex, orOpenCode. - In the Data control, keep Isolated (the default) and confirm the suggested config
directory, such as
~/.claude-work,~/.codex-personal, or~/.config/opencode-client-a. - Set Command only if the CLI is not on your
PATHor you want a specific binary.
Click Save, then expand Launch configuration on the new profile card to add CLI flags or environment variables. Repeat for each profile.
New agent panes can now choose any profile from the backend picker. In an existing agent pane,
the picker is the first control at the lower-left, in the status row directly below the
message box. It shows the active backend/profile name. Click it, or press Alt+B while that
pane is active, to switch; the new selection applies to the next turn. Once a conversation has
started, hob only offers profiles that can safely resume that conversation's data. Open a new
agent pane to use an unrelated isolated profile. The built-in backends keep using the default
CLI config directories.
Examples
| Name | Protocol | Separate config dir |
|---|---|---|
Claude Code - work | Claude | ~/.claude-work |
Claude Code - personal | Claude | ~/.claude-personal |
Codex - work | Codex | ~/.codex-work |
Codex - personal | Codex | ~/.codex-personal |
OpenCode - work | OpenCode | ~/.config/opencode-work |
A backend profile can't be named so its ID collides with a built-in (claude, codex,
opencode) — the save is blocked. Use a descriptive profile name instead, such as
Claude Code - work or Codex - personal.
Models
The Models section (below Backend Profiles in Agent settings) curates each backend's model list. Curation is per backend — profiles and variants built on the same backend all see the same list.
Register a model hob doesn't ship yet — a brand-new release, or a provider-specific id —
and it joins the model picker everywhere: the pane picker, roam, and the hob CLI
(hob open pane agent --model <id>), which rejects model ids it doesn't know. Typing an
unknown id straight into a profile's Model default registers it too. If a later hob
update ships an id you registered, the built-in entry wins so naming stays consistent —
your copy is marked built in now and is safe to remove.
Hide a model you never use to keep pickers short. Hiding is cosmetic and safe: panes already using the model keep working, you can unhide it anytime, and if a hob update later drops a hidden model from the registry the stale entry is simply ignored.
Per-project defaults
Backend profiles are global, but you can make a repo default to one. At the top of the
Agent settings page, switch the Global / project scope toggle to the project, then set
its default backend, model, and effort. For example, a company repo defaults to
Claude Code - work while personal repos default to Claude Code - personal.
Notes
- The Data control stores the matching config-dir environment variable in the profile for you; it's the only place that variable can be set.
- Environment variables under Launch configuration is only for additional variables;
enter one
KEY=VALUEper line. Blank lines and#comments are ignored. - A leading
~expands to your home directory in config dirs, env vars, and the Command path. - Existing panes keep the backend they were created with — open a new pane or press
Alt+Bto switch. - hob keeps Claude Code and Codex session history per profile when the profile uses a distinct config directory, so account-specific conversations stay separated in Activity.