Account Manager for Claude Code
Beta, and unofficial. Not affiliated with, endorsed by, or supported by Anthropic.
If you use more than one Claude account — work and personal, say — moving between
them means logging out, logging in, and re-explaining what you were doing. This
VS Code extension keeps them side by side: pick an account from the panel, and the
conversation carries over so the next one starts where the last left off.
It does not replace or reimplement Claude Code. Each turn launches the actual
claude binary with the selected account's CLAUDE_CODE_OAUTH_TOKEN, and API-key
environment variables are cleared so nothing is billed to a pay-as-you-go key by
accident.
What it does
- Holds any number of accounts; tokens live in VS Code SecretStorage, never in the database.
- Switches accounts in one click, with no logout/login cycle.
- Keeps continuity: within an account it resumes the same Claude session; across
accounts it replays the conversation so far, so you do not repeat yourself.
- Offers to switch if the account you are on has no quota left.
- Streams answers as they are written, showing thinking, tool calls, and results.
- Stores conversations, turns, and journal entries in SQLite so history survives restarts.
- Status page with per-account quota windows, reset times, and activity.
- Asks before Claude edits a file or runs a command, if you want it to.
Account setup
Run Account Manager: Add Account, or press Add in the panel, then pick
Generate a new token now — a terminal opens running claude setup-token,
you complete the browser login, and paste the printed token back.
To add a second account, sign in as a different Claude account in that browser
step. Running claude setup-token twice while signed in as the same account
produces two tokens for the same subscription; switching between them will look
like it does nothing.
Tokens are sk-ant-oat01-… OAuth tokens scoped to user:inference and
user:profile. They cannot change your account, but anyone holding one can spend
your quota, and whatever they do lands on your account — treat them as secrets.
Old ones can be revoked at claude.ai → Settings → Claude Code.
Access levels
Set with the chip next to the composer:
| Level |
Behaviour |
| Read-only (default) |
Edits and commands are refused outright |
| Ask me |
Claude stops and asks; you Allow, Deny, or always-allow that tool |
| Full access |
Edits and commands run without asking |
claude -p cannot show a prompt itself, so Ask me points it at
src/permissionBridge.js — a small MCP server started per turn via
--permission-prompt-tool. The bridge has no UI: it forwards each question to the
extension over a token-authenticated localhost socket, and the panel asks you.
Every failure path denies rather than allows — unreachable bridge, unknown caller,
malformed request, or no answer within five minutes.
Where data is stored
One SQLite database outside your projects, in the editor's per-extension storage:
~/Library/Application Support/<Editor>/User/globalStorage/EnderY.claude-code-account-manager/
memory.sqlite
attachments/
Rows are scoped per workspace, so different projects keep separate conversations
in the same file. Nothing is written into the repository you are working on. The
database holds prompts, responses, and attachment metadata — but never tokens.
Layout
| File |
Responsibility |
src/extension.js |
activation, commands, database, orchestration |
src/panelHtml.js |
chat panel markup, styles, client script |
src/statusPage.js |
status dashboard |
src/claudeCli.js |
spawning claude and parsing its stream |
src/permissions.js |
approval socket and access levels |
src/permissionBridge.js |
MCP server the CLI calls to ask permission |
src/markdown.js |
message rendering |
Development
npm test # logic tests against a temporary workspace
npm run check # syntax check
Press F5 for an Extension Development Host. The panel sits behind the Account
Manager icon in the activity bar and can be dragged into the Secondary Side Bar.
Note that the dev host opens whichever folder you last had open in it, which is
not necessarily this repository — worth checking before concluding that state has
gone missing.
Known limits
- Percentage-used quota is not readable per account.
/usage reports the CLI's
own logged-in session, not a token passed in from outside, so the status page
shows the quota window and reset time instead.
- The account token is passed to the child process in its environment, and the
approval token appears in the process arguments. Any program running as you can
read both. Claude Code offers no other way to select an account per invocation.
- Holding several Claude accounts is not itself against Anthropic's terms, but
automating around usage limits is a different matter and has drawn suspensions.
This tool switches accounts when you tell it to, and asks before switching after
a limit — it does not rotate accounts on its own. Use it accordingly.
- "Claude" and "Claude Code" are trademarks of Anthropic. This project is named
descriptively and is not affiliated with or approved by them.
License
MIT — see LICENSE.