Claude on the web and Claude on the Mac don’t support easy account switching. That’s annoying. I get good use out of my Claude account, and when one of my consulting clients invited me to join their enterprise Claude account, I was of course happy to — but I wanted to leave my own Claude account available for all my other and personal work, too.

There’s no account switcher in Claude. And Claude also makes logging in a bit annoying; you have to trigger email links to yourself, which then open the app on your Mac to finish the login process. So an approach of just logging out and logging back in all the time didn’t seem ideal.

At first, my thought was to keep Work Claude in a browser and Personal Claude in the standalone Mac app, but it took about twelve seconds for me to hate that approach.

So I decided I wanted two standalone Claude Mac apps running. This can be done.

The Claude icon

My approach: Two Claude apps, one with a custom icon, each logged into their own account, neither affecting the other in any way. (It turns out that if you use exactly the same email address for your work and personal accounts, Claude will give you a little account switcher. But first of all, who would use the same email address for both? And second of all, in practice, switching back and forth endlessly sounds annoying to me.)

The solution isn’t simply “duplicate the Claude app,” because by default, your cloned copy will log into the same account. But there’s a fix. I’m breaking down the steps below, but I’m also sharing a shell script below that does everything for you, because I’m nice. First, though, the steps:

Step one remains: Duplicate the Claude app. Fine, you were right about that.

Step two: Wrap the binary. Inside the duplicated Claude, rename the real executable and replace it with a three-line shell script that launches it with a dedicated data directory. This is what keeps the two apps’ logins separate, allowing them to live in separate worlds.

cd "/Applications/Claude Work.app/Contents/MacOS"
mv Claude Claude-bin
cat > Claude << 'EOF'
#!/bin/bash
exec "$(dirname "$0")/Claude-bin" \
  --user-data-dir="$HOME/Library/Application Support/Claude Work" "$@"
EOF

Step three: Give it a new identity. Change CFBundleIdentifier and CFBundleDisplayName in the copy’s Info.plist. Do not touch CFBundleName; Electron uses it to find its helper apps, and changing it makes the whole thing crash on launch with an obtuse error and frankly I don’t want to talk about it anymore, because it sucked.

Step four: Change the icon. You can do this in the Finder. I made a tinted version of the original Claude icon, so that I can tell at a glance which Claude I’m launching, personal or work.

Step five: Re-sign the bundle. You’ve modified a signed app, so you need to re-sign it (an ad-hoc signature is fine) or macOS will refuse to launch it:

xattr -cr "/Applications/Claude Work.app"
codesign --force --deep --sign - "/Applications/Claude Work.app"

Rather than doing all that by hand, I have a script that does the whole dance — copy, wrap, rebrand, re-icon, re-sign — in one go: install-claude-work.sh

Even with all these steps complete, you still have more work to do: You have to get both Claude apps properly signed in. Quit your original Claude app. It can’t be running. Open your new Claude Work app. Choose “Always Allow” when macOS asks whether the app can access Claude Safe Storage in your keychain.

Log into Claude Work. This will require the email song-and-dance ritual, but as long as your new Claude Work app is the only Claude app running, that’s the one the emailed deep link you receive will authenticate with.

Finally, open your original Claude, and it should still be logged into your personal account. Thank the friggin’ lord.

The Catch

Claude Work, your duplicated version, won’t auto-update. But the good news is, when you update the original Claude app, you can run the shell script again, and it’ll update things in place for you. Both apps should stay logged in.

Credit where due: The duplicate-app technique and its gotchas are well documented by Rafael Pazini and Philipp Stracker.