Skip to content
Go back

How to Run Two Claude Desktop Accounts on One Mac (Work + Personal)

Edit page

My work Claude account and my personal Claude account use different email addresses. Claude Desktop holds exactly one login at a time, and there is no account switcher in the app. For a while I was signing out and back in several times a day, which is exactly as tedious as it sounds.

There is a better way, and it doesn’t require buying anything. This guide sets up a second, fully isolated Claude instance on macOS — separate login, separate chats, separate MCP servers — while leaving your work account exactly where it is.

Tested on: macOS, Claude Desktop (Electron), and the Claude Code CLI.

Table of contents

Open Table of contents

First, check whether you even need this

If your work organization invited the same email address as your personal account, stop here. Claude has a native account switcher built in:

The catch is at invite time. When you accept the org invite, choose “Keep both accounts.” The other option migrates your personal content into the company workspace, and it’s one-way — it cannot be moved back.

This native switcher only works for one login that spans a personal account and a Team or Enterprise org. Two different email addresses means two separate logins, and the desktop app holds one at a time. That’s the case the rest of this guide solves.

Why Claude Desktop has no account switcher (and how to work around it)

Claude Desktop is an Electron app, which means it accepts the Chromium --user-data-dir flag. That directory holds everything account-specific:

Point a second launch at a different directory and you get a completely separate instance. Your work account keeps the default ~/Library/Application Support/Claude/ and is never touched.

One distinction that trips people up: ~/.claude is Claude Code’s config directory, not the desktop app’s. A lot of guides conflate the two. They are separate problems with separate solutions, and both are covered below.

Set up a second Claude Desktop account on macOS

Step 1 — Quit Claude completely

Cmd+Q, and confirm it’s gone from the Dock. Closing the window is not enough. If you’re unsure, check Activity Monitor for stray Claude processes.

Step 2 — Create the personal profile

open -n -a /Applications/Claude.app --args \
  --user-data-dir="$HOME/Library/Application Support/Claude-Personal"

A fresh login screen appears. Sign in with your personal email.

The window will be completely empty. That is expected — a new profile has no history because nothing has happened in it yet. It is not data loss.

If this opens straight into your work account instead of a login screen, the app didn’t fully quit. Go back to Step 1.

Step 3 — Verify the isolation before going further

Quit, then launch Claude normally from the Dock. Confirm your work chats, projects, and MCP servers are all still there. If they are, the split worked. Quit both before continuing.

Step 4 — Build a launcher so you never touch the terminal again

Open Script Editor (Spotlight → “Script Editor”). New document, and paste:

set personalDir to (POSIX path of (path to home folder)) & "Library/Application Support/Claude-Personal"
do shell script "open -n -a /Applications/Claude.app --args --user-data-dir=" & quoted form of personalDir

Here’s what each piece is doing, because every part of that line is load-bearing:

PieceWhat it does
path to home folderAsks macOS for the home directory. Returns the old Mac format (Macintosh HD:Users:you:).
POSIX path ofConverts it to /Users/you/ — note the trailing slash.
&AppleScript string concatenation (it’s + in most other languages).
do shell scriptRuns the resulting string in /bin/sh.
open -nForces a new instance instead of focusing the one already running.
--argsEverything after this goes to Claude, not to open.
--user-data-dir=The Electron flag that relocates the profile. This is the whole trick.
quoted form ofShell-quotes the path. RequiredApplication Support contains a space.

Without quoted form of, the shell reads --user-data-dir=/Users/you/Library/Application and treats Support/Claude-Personal as a separate argument. Claude then silently falls back to the default profile and you see your work account — with no error to tell you why.

path to home folder is used instead of $HOME because do shell script runs with a stripped-down environment.

The final string the shell actually receives:

open -n -a /Applications/Claude.app --args --user-data-dir='/Users/you/Library/Application Support/Claude-Personal'

Step 5 — Export it as an application

File → Export, then:

Name it Claude Personal and save it to /Applications.

The startup-screen and stay-open checkboxes stay greyed out until you switch File Format to Application. That’s the giveaway if you missed it.

Step 6 — Give it a distinct icon

Both instances are otherwise identical in the Dock and in Cmd-Tab. Do this before you start using it for real, or you will eventually type something into the wrong account.

  1. Open an image in Preview → Cmd+A → Cmd+C. Copying the file in Finder doesn’t work — that copies a file reference, not image data.
  2. Select Claude Personal.appCmd+I
  3. Click the tiny icon in the top-left corner of the Info window, next to the filename — not the large preview below it. It should highlight.
  4. Cmd+V. An admin password may be required for /Applications.

If that doesn’t stick, replace the icon file directly. This is more reliable for AppleScript apps:

  1. Convert your image to .icns (Image2icon, or sips plus iconutil)
  2. Right-click the app → Show Package ContentsContents/Resources/
  3. Replace applet.icns, keeping that exact filename
  4. Run touch /Applications/Claude\ Personal.app to bust the icon cache

If the Dock still shows the old icon, drag the app out and back in, or killall Dock.

Renaming alone is enough in a pinch — the Dock tooltip and Cmd-Tab both show the name. The icon is just faster to read at a glance.

Step 7 — Test it and pin it

Double-click Claude Personal.app. It should open already logged into your personal account. Right-click its Dock icon → Options → Keep in Dock.

The result: Claude.app is work, Claude Personal.app is personal, and both can be open at the same time.

MCP servers don’t carry over — and that’s the point

The new instance reads claude_desktop_config.json from Claude-Personal/, so it starts with zero MCP servers configured. This is a feature, not a bug. It’s a real credential boundary between the two accounts.

If your work profile has infrastructure credentials wired in — AWS, Sentry, Linear, Supabase — leave the personal side empty, or add only what it genuinely needs.

# edit the personal config (create the file if it doesn't exist)
open -e ~/Library/Application\ Support/Claude-Personal/claude_desktop_config.json

You can copy the whole config over, but understand that it defeats the isolation you just built:

# copy it, then prune what the personal account shouldn't reach
cp ~/Library/Application\ Support/Claude/claude_desktop_config.json \
   ~/Library/Application\ Support/Claude-Personal/

# or share one file via symlink (not recommended across accounts)
ln -s ~/Library/Application\ Support/Claude/claude_desktop_config.json \
      ~/Library/Application\ Support/Claude-Personal/claude_desktop_config.json

Multiple Claude Code accounts: a different mechanism

The Claude Code CLI doesn’t use --user-data-dir. It uses the CLAUDE_CONFIG_DIR environment variable, which relocates auth, CLAUDE.md, skills, agents, and session history together.

The default stays ~/.claude for work. Add a personal directory alongside it:

# optional backup of the existing (work) config
cp -r ~/.claude ~/.claude-backup

# authenticate the personal account into its own directory
CLAUDE_CONFIG_DIR=~/.claude-personal claude /login

# alias it so you don't retype the variable
echo 'alias claude-personal="CLAUDE_CONFIG_DIR=~/.claude-personal claude"' >> ~/.zshrc
source ~/.zshrc

Now both accounts stay logged in simultaneously, in parallel terminals:

claude              # work (default ~/.claude)
claude-personal     # personal (~/.claude-personal)

How to check which Claude account you’re signed into

Run /status inside a session, or claude /status from outside. It shows the login method, organization, email, and config directory.

Run both to confirm the split actually took:

claude /status            # should show work
claude-personal /status   # should show personal

Two things /status may flag on a fresh config directory

6 need auth under MCP servers is expected. Server definitions may have carried over, but OAuth tokens are stored per config directory. Run /mcp and re-authorize only what that account should be able to reach.

Running native installation but config install method is 'not set' is cosmetic. The directory was created fresh rather than migrated, so installMethod was never recorded. It may affect auto-update detection on that profile. To clear it:

CLAUDE_CONFIG_DIR=~/.claude-personal claude config set installMethod native

Claude Code inside the desktop app

This one is worth verifying rather than assuming. It should follow the instance’s data directory, but it may shell out to ~/.claude like the CLI does — in which case both desktop instances share the work account there.

Open Claude Personal.app → Code tab → /status. If it reports the work account, the isolation doesn’t extend there. Use the terminal with claude-personal for personal work and treat the desktop Code tab as work-only.

What is actually isolated, and what isn’t

Separated:

Not separated:

So: separate in every way that matters for keeping the two accounts from mixing. It is not a security sandbox, if that was the bar you had in mind.

What happens when Claude updates

Both instances run the same /Applications/Claude.app. The updater replaces that bundle, and the launcher points at the path rather than a copy — so the next launch of Claude Personal is simply the new version. Nothing to redo.

Profile directories live outside the bundle, so logins, chats, and MCP config all survive an update untouched.

Two practical notes:

Troubleshooting: common failure modes

SymptomCause
Second launch opens the work accountThe app didn’t fully quit, or a typo in the data-dir path silently fell back to the default profile
Personal window is completely emptyExpected for a new profile — not data loss
Personal instance shows work chats after an updateA release changed --user-data-dir handling or moved auth to the Keychain. Stop using it.
claude: command not foundNot installed or not on your PATH — check which claude
Both Dock icons look identicalThe custom icon step was skipped

The update-breakage case is the real risk here. The check after any noticeable update takes two seconds: open Claude Personal and confirm it’s still personal.

One known limitation: deep links (claude://) route to whichever instance LaunchServices picks. That’s effectively unpredictable and not controllable.

Lighter alternatives

Frequently asked questions

Can you have two Claude accounts on one Mac?

Yes. If both accounts share one email address, use Claude’s built-in account switcher. If they’re different email addresses, launch a second Claude Desktop instance with --user-data-dir pointing at its own profile directory, as described above.

Does Claude Desktop have an account switcher?

Only for a single login that spans a personal account and a Team or Enterprise org — click your initials in the lower-left corner. There is no switcher for two separate logins with different email addresses.

Do I need to install Claude Desktop twice?

No. Both instances run the same /Applications/Claude.app bundle. Only the profile directory differs, which is also why a single update covers both.

Does this work for Claude Code too?

Yes, but through a different mechanism. Claude Code uses the CLAUDE_CONFIG_DIR environment variable instead of --user-data-dir. See the Claude Code section above.

Will an update break the setup?

It can. The flag is a standard Electron one, so it’s unlikely to disappear, but a release that moves auth into the Keychain would break the isolation. Check after major updates — it takes two seconds.

Is running two Claude accounts against the terms of service?

This organizes accounts you already pay for. What’s prohibited is sharing one login between people or evading usage limits, and neither applies here. If your work account is Enterprise, check with whoever owns it first. That’s not a technical problem, just courtesy.

Quick reference

ThingPath
Desktop app profile (work)~/Library/Application Support/Claude/
Desktop app profile (personal)~/Library/Application Support/Claude-Personal/
MCP config<profile>/claude_desktop_config.json
Claude Code (work)~/.claude
Claude Code (personal)~/.claude-personal
Launcher app/Applications/Claude Personal.app

That’s the whole setup. Two Dock icons, two accounts, both signed in, no logout dance. If you’re setting up a new Mac anyway, I’ve also written up the apps I install on every Mac before doing anything else.


Edit page
Share this post on:

Next Post
My Everyday Mac Essential Tools