Skip to main content

Command Palette

Search for a command to run...

Why Using Multiple Claude Code Accounts Is Broken — And the Setup That Finally Fixed It

Updated
4 min read
Why Using Multiple Claude Code Accounts Is Broken — And the Setup That Finally Fixed It
N
Senior Software Engineer with 5+ years of expertise crafting innovative products that make people's lives easier, now with AI.

I use multiple Claude Code accounts.

One is my office account with the Pro plan. Another is a shared account I use with my colleagues on the Max plan.

At first, I assumed this would be simple.

Log out. Log in. Maybe switch profiles. Done.

But that is not how Claude Code works.

Every time I switched accounts, I either lost my project history, lost my custom commands, or had to keep setting everything up again.

And the worst part?

The only thing that actually needed to be different between accounts was the authentication.

Everything else — my project history, my commands, my MCP setup, my CLAUDE.md instructions, my settings — should have stayed the same.

Instead, Claude Code treats everything as one giant config folder.

So if you want multiple accounts, you end up duplicating everything.

That quickly becomes painful.

The Actual Problem

Claude Code stores almost everything inside a single config directory.

That includes:

  • Authentication

  • Settings

  • Project history

  • Custom commands

  • MCP configuration

  • CLAUDE.md instructions

The issue is that authentication is account-specific.

But the rest is not.

I do not want separate project histories for every account. I do not want to recreate the same custom commands three times. I definitely do not want to copy-paste the same CLAUDE.md file every time I make a change.

After a few switches, my setup looked like this:

  • One account had the latest commands

  • Another had the right MCP config

  • A third one had the actual project history I wanted

Everything was fragmented.

And every time I switched accounts, something would silently stop working.

The Setup That Actually Works

The fix was separating authentication from everything else.

Instead of giving every account its own full Claude config, I created:

  • One shared folder for everything common

  • One small folder per account containing only auth

My setup now looks like this:

The fix was separating authentication from everything else.

Instead of giving every account its own full Claude config, I created:

  • One shared folder for everything common

  • One small folder per account containing only auth

My setup now looks like this:

~/.claude-shared/
  settings.json
  CLAUDE.md
  projects/
  commands/
  mcp.json

~/.claude-office-pro/
  auth.json
  settings.json -> ~/.claude-shared/settings.json
  CLAUDE.md -> ~/.claude-shared/CLAUDE.md
  projects -> ~/.claude-shared/projects
  commands -> ~/.claude-shared/commands
  mcp.json -> ~/.claude-shared/mcp.json

~/.claude-shared-max/
  auth.json
  settings.json -> ~/.claude-shared/settings.json
  CLAUDE.md -> ~/.claude-shared/CLAUDE.md
  projects -> ~/.claude-shared/projects
  commands -> ~/.claude-shared/commands
  mcp.json -> ~/.claude-shared/mcp.json

The only real file that is different between accounts is auth.json.

Everything else is shared using symlinks.

Which means:

  • I log into each account once

  • All accounts use the same project history

  • All accounts use the same commands

  • All accounts use the same CLAUDE.md instructions

  • Changing something in one place updates it everywhere

This was the first setup that actually felt usable.

Setting It Up

First, create the shared folder and separate account folders.

mkdir -p ~/.claude-shared
mkdir -p ~/.claude-office-pro
mkdir -p ~/.claude-shared-max

Then move all the common files into the shared folder.

mv ~/.claude/settings.json ~/.claude-shared/
mv ~/.claude/CLAUDE.md ~/.claude-shared/
mv ~/.claude/projects ~/.claude-shared/
mv ~/.claude/commands ~/.claude-shared/
mv ~/.claude/mcp.json ~/.claude-shared/

Now create symlinks inside each account folder.

ln -s ~/.claude-shared/settings.json ~/.claude-office-pro/settings.json
ln -s ~/.claude-shared/CLAUDE.md ~/.claude-office-pro/CLAUDE.md
ln -s ~/.claude-shared/projects ~/.claude-office-pro/projects
ln -s ~/.claude-shared/commands ~/.claude-office-pro/commands
ln -s ~/.claude-shared/mcp.json ~/.claude-office-pro/mcp.json

ln -s ~/.claude-shared/settings.json ~/.claude-shared-max/settings.json
ln -s ~/.claude-shared/CLAUDE.md ~/.claude-shared-max/CLAUDE.md
ln -s ~/.claude-shared/projects ~/.claude-shared-max/projects
ln -s ~/.claude-shared/commands ~/.claude-shared-max/commands
ln -s ~/.claude-shared/mcp.json ~/.claude-shared-max/mcp.json

Then create aliases so switching accounts becomes one command.

alias claude-office='CLAUDE_CONFIG_DIR=~/.claude-office-pro claude'
alias claude-shared='CLAUDE_CONFIG_DIR=~/.claude-shared-max claude'

Now when I want to use my office Pro account, I run:

claude-office

And when I want to switch to the shared Max account that I use with my colleagues:

claude-shared

That is it.

No logging in again. No copying files. No broken commands.

The Bigger Lesson

This looked like a Claude Code problem.

But it is actually a common problem with developer tools.

Most tools bundle:

  • Identity

  • Configuration

  • User data

Into one folder.

That works fine until you need multiple accounts.

Then suddenly the thing you actually want to isolate — authentication — is tied to a bunch of things that should have been shared.

The best setups separate those concerns.

Authentication should be isolated. Everything else should be reusable.

Once I changed my Claude setup to follow that idea, switching accounts stopped feeling like context switching.

It finally felt like the same workspace, just with a different login.

And honestly, that is probably how it should have worked in the first place.

M

The multi-account friction is a real pain point for teams. Context isolation between workspaces is a common request -- the implicit assumption that one identity equals one context doesn't hold for organizations running parallel projects. Curious whether the session/project scoping improvements in recent releases addressed any of this for you.