More than one account
Claude can be signed in more than once on the same Mac: a work login and a personal one, or one per client. Each account keeps its own sign-in, its own sessions, its own model list and its own quota, and they never sign each other out.
The other agents use one login each. Tori only offers Add account for an agent that has been shown to hold two logins at once without one replacing the other, which today is Claude.
Until you add a second account, Tori says nothing about accounts: no account names appear on pills, tabs or menus.
Your existing login
The login you already had before Tori, in ~/.claude, is always there as the
first account, labelled Your existing login on its card. Tori never copies
or stores its credentials; Claude keeps them in your macOS login Keychain as
usual.
If you keep Claude somewhere other than ~/.claude, Tori does not create that
folder for you. Settings says it is missing, and the first account you add
becomes the default.
Add an account
- Open Settings (the gear in the title bar) > Agents and click Claude.
- Under Accounts, click +, Add account.
- In New Claude account, fill in Name. This is Tori’s own label for
it, such as
workorHooli; the agent never sees it. - Fill in Folder, or leave it empty:
- Empty: Tori makes a folder for the account and manages it. The button reads Create and sign in.
- A folder you already use, such as
~/.claude-work: type it, or click Browse to pick it (the picker shows hidden folders). Claude keys its login by the folder’s exact spelling, so write it the way your shell exports it. The button reads Add account.
- Click the button.
- A terminal tab opens with Claude’s own sign-in. Finish it in the browser it opens. If the folder you picked is already signed in, no sign-in is needed and Tori says Added work. It is already signed in.
A folder is accepted if it already holds Claude’s files, or is empty (a lone
.DS_Store counts as empty). A folder holding other files and none of
Claude’s is refused, so a sign-in never writes into something unrelated. The
default ~/.claude and a folder that is already an account are refused too.
Use an account in a terminal
Every account you add gets its own command, so you can run Claude as that
account from any terminal, not only inside Tori. The command is claude-
followed by the account’s name in lowercase, with spaces and punctuation turned
into dashes: an account named Work is claude-work, and Tori Dev is
claude-tori-dev.
Plain claude stays your existing login, whatever you name it and whichever
account is the default for new chats.
Each command is a small script in ~/.local/bin, the folder Claude’s own
installer uses, and it works from any shell or script. Tori never edits your
.zshrc or any other shell file. If ~/.local/bin is not on your shell’s
PATH, the account’s card says so, and you add it in your shell’s startup
file.
- Two accounts with the same name: the second gets
-2, as inclaude-work-2. - A file of yours already has the name: Tori leaves it alone and the account gets the next free name. Tori only ever writes or deletes the scripts it made.
- Removing an account deletes its command.
The account’s card shows its command under In a terminal.
Manage accounts
Each account is a card under Accounts. Its header shows a green dot when the agent confirms it is signed in, the account’s name, the email or sign-in state, and the plan and number of models it offers. Click the chevron to open the card.
- Rename: click the account’s name to open Rename, type the new name,
and click Rename (or press
Enter). For an account you added, when the new name gives a different command, Also rename command to claude-… is ticked. Untick it to keep the old command, so scripts that call it keep working. If the new command is taken, Tori refuses the rename and says why. Cancel orEscapekeeps everything as it was. - Default: with two or more accounts, pick which one new chats start on. A project’s own last-used account still wins over it.
- Sign in: shown when the account is signed out. It opens the sign-in in a terminal tab.
- Check again: the refresh button beside Accounts asks every account again whether it is signed in and what it offers.
Sign out or remove
Open the card and click Sign out (or Remove, when the account is not signed in).
- Sign out asks Sign work out? Claude revokes the login and you can sign back in from the same card. Tick Remove the account as well to also remove it from Tori.
- Remove takes the account out of Tori:
- For a folder Tori made, Tori forgets the account and deletes its folder, with the sessions inside.
- For a folder you pointed it at, Tori only forgets it. The folder and the login in it stay exactly as they were.
The dialog shows the account’s folder so you know which one you are acting on. Your existing login cannot be removed.
Notes on a card
A card can carry a note when something about the account is not what you might assume:
- An API key is set: an environment variable such as
ANTHROPIC_API_KEYis set, so this account bills against that key instead of its subscription. Unset it to go back to the subscription. - Signed in to the same account as: two of your accounts are the same login, so they are only told apart by name.
- Runs in a folder that was already set: Tori itself was started with
CLAUDE_CONFIG_DIRset, so your existing login is that folder. Start Tori from a shell without it to get your own login back. If your shell exports it too, plainclaudein a terminal runs that folder as well.
Every chat runs on one account
A chat or an agent terminal tab is bound to the account it started on, the same way it is bound to its agent, for its whole life. The model pill shows the account once you have two, for example Opus / work, and the model palette lists each account as its own row because each has its own models.
A new chat opens on the account this project last used, then the agent’s default account. To start a chat on another account, pick that account’s row in the model palette before you send the first message. See Models, effort and modes.
When a login expires
When a Claude account’s login expires, the error in the chat has a Sign in again button. It opens the sign-in for that chat’s account in a terminal tab, the same one Sign in on the account’s card opens. Finish signing in there and send your message again in the same chat.
Watch your usage
Your subscription’s limits belong to the account, not to a chat: three chats on one login share one five hour window. So Tori shows usage per account.
The titlebar strip
The usage strip at the right of the title bar shows each account that reports usage: the agent’s mark and its windows as whole percentages, such as 5H 38% and W 12%. When the title bar is narrow, it shrinks to one bar per account, showing the window you are closest to running out of.
A bar turns amber once a window passes the account’s Warn at level, and red once the limit is reached. A reading from a window that has since reset shows as 0%, because the old number no longer means anything.
The usage card
Hover the strip to open the usage card, and click to keep it open while you move the pointer away. It shows:
- The agent, how long ago the newest reading came in, and Read again to ask now (for an account Tori can ask directly).
- One tab per account when you have more than one, and the account’s plan.
- Every window the account reports: its name (Session, 5h rolling, Week, all models, Week, Opus only and so on), its level, a bar, and when it resets. Inside a day the reset is a countdown; further out it names the day.
- A sentence about where you are heading: At this pace your weekly all-model limit runs out around 18:30., or Comfortable all week at this pace. It also names another account of yours if that one is the one near its limit.
Nothing on the card changes a setting.
Choose what the strip shows
Each account card in Settings > Agents has a Titlebar preview row of chips, one per window: 5H, Week, a model’s own week such as Opus, and Other. Lit chips show in the title bar.
The chips also decide how much Tori reads for the account: nothing lit means nothing is read. 5H and Week come from what the agent already reports. A model’s own weekly window needs one more step: Tori reads the account’s token from your login Keychain to ask for it. Lighting that chip is the opt in, and macOS may ask you to allow it. A chip marked n/a has nothing to show until that read has happened, or the account has no such window.
Warn at and notifications
On the same card:
- Warn at: how full a window gets before Tori warns, with Warn earlier and Warn later buttons. Until you change it, it follows Warn at in Settings > Chat.
- Notify at the warn point and when spent: a macOS notification when a window passes the warn point, and when it is used up. Never sent while Tori is the app in front.
Which agents report usage
| Agent | Where the numbers come from |
|---|---|
| Claude | The agent’s own reports during chat turns, plus the Keychain read for model windows if you light that chip |
| Codex | Tori asks Codex for its limits directly |
| Others | They do not report usage, so the strip leaves them out |
There is no usage history or chart. The numbers are always what the agent or its vendor reports right now.
When an account reaches a limit, its chats say so and can continue on their own once it resets. See Limits and spending.
Limiting agents per project
A project can be limited to the agents and accounts you pick, so a client’s repository only ever runs on that client’s login.
- Right-click the project in the sidebar, or open its row menu, choose Project settings and pick Agents.
- Under Allowed agents, switch from Every agent to Only selected.
- Tick the agent and account pairs the project may use, for example Claude on
your
hooliaccount and nothing else. A pair that is no longer available is marked (unavailable). - Click Save. The line beside it says how many pairs are allowed.
From then on, any other agent or account is refused before a session starts or resumes in that project. It is left out of the model palette for new chats, greyed in the launch menu with Not allowed in this project, and a chat that names it says why on its composer bar.
The rule belongs to the folder, so every worktree under the repository follows it, and a repository nested inside another project uses its own rule. A project with Every agent allows everything you have turned on.