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.
- Paste, drop, or pick images and files: they preview in the composer before you
send, stay visible in the transcript, and Claude gets the path.
- 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.
Installing
Search for Account Manager in the Extensions view and press Install.
Or install the packaged build directly:
code --install-extension claude-code-account-manager-0.1.3.vsix
You also need the Claude Code CLI on your PATH — check with claude --version.
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, valid for a year and scoped to
user:inference alone — claude setup-token deliberately issues inference-only
tokens. 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.
That narrow scope is why the panel shows account nicknames rather than email
addresses. Naming the account behind a token needs the user:profile scope,
which these tokens do not carry, so the endpoints that would answer — including
the one behind /usage — return 403 for every account added this way. The
nickname you type is the only identifier, so pick one you will recognise. Claude
is told the active nickname at the start of each session, along with a warning
that the email in its own system prompt is this machine's cached CLI login and
is not the running account.
Access levels
Set with the chip next to the composer:
| Level |
Behaviour |
| Read-only (default) |
The editing and command tools are withheld from the session |
| 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 runs it with
--permission-prompt-tool stdio: the CLI is driven over a bidirectional
stream-json channel and asks by sending a can_use_tool request on stdout,
then waits for the answer on stdin. The panel puts the question to you and
writes back the decision. Claude waits as long as you need — nothing is
generated until you answer, and Stop ends a turn you don't want. Every
failure path denies rather than allows: no handler, a thrown error, or a turn
that ended before you answered.
Commands the CLI can run in its own sandbox do not generate a question, the same
as in Claude Code itself; Ask me covers the actions that escape it — writing
files and running commands for real.
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 |
access levels and the approval prompt |
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, where any
program running as you can read it. 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.