raw Software
RAW Software Administration macOS Configuration

Running Multiple Claude Desktop Accounts on macOS

Robert Eisele

Claude Desktop can keep only one account active in its normal application profile. Logging out whenever I switch between a personal account, a company account, and a client account quickly becomes tedious. It also mixes settings that I would rather keep separate, including MCP servers and local Cowork data.

The macOS application is based on Electron, whose Chromium layer can use a different user data directory for each process. Combined with the macOS open command, this is enough to start independent Claude Desktop profiles from one installation.

This is a practical workaround based on Claude Desktop's current Electron behavior, not an official multi-account feature. Recheck it after major application updates before depending on it for an important workflow.

Start a Second Claude Desktop Profile

Leave the regular Claude Desktop instance running, open Terminal, and start another application process with a dedicated data directory:

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

The two relevant options belong to different programs:

The second window starts with a fresh local profile. Sign in with the work account once; later launches reuse the authentication stored in Claude-Work. The default profile under Claude remains unchanged.

Additional accounts only need distinct absolute paths:

# Default profile
open -a "/Applications/Claude.app"

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

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

Never point two simultaneously running instances at the same custom directory. Chromium profiles contain databases and other state that are not designed for concurrent ownership by independent processes.

Create a Dock Launcher

Typing the command for every launch is unnecessary. Open Script Editor from /Applications/Utilities/Script Editor.app and create this AppleScript:

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

Select File > Export, choose Application as the file format, and save it as Claude Work.app. Placing the launcher in /Applications makes it available from Finder and Spotlight; it can also be dragged into the Dock.

The launcher is only a wrapper around the command. It does not duplicate or alter the signed Claude application. macOS may still group the running window under Claude's original Dock icon rather than the wrapper's icon.

What the Profile Separates

Claude Desktop normally keeps its application profile below:

~/Library/Application Support/Claude/

The commands above produce sibling directories:

~/Library/Application Support/
├── Claude/           # Default account
├── Claude-Work/      # Work account
└── Claude-Client/    # Client account
Component Default Work Client
Login sessionSeparateSeparateSeparate
Application preferencesSeparateSeparateSeparate
Electron profile and cachesSeparateSeparateSeparate
Profile-local integrationsSeparateSeparateSeparate
Claude executableSharedSharedShared

All profiles execute the same /Applications/Claude.app. Updating that application therefore updates every profile at once. The separation is local application state, not a security boundary: every instance still has the permissions, filesystem access, network access, and system resources of the same macOS user.

MCP servers can also reach resources outside the Electron profile. Fixed TCP ports, shared credential stores, global configuration files, and external services may still be shared or may conflict. Inspect each integration rather than assuming that a separate login isolates the entire system.

Keep Claude Code Accounts Separate

Claude Code does not use Claude Desktop's Electron profile. Anthropic documents a separate configuration directory through the CLAUDE_CONFIG_DIR environment variable. It moves Claude Code's user settings, session history, and plugins away from the default ~/.claude directory.

Start a work account with:

CLAUDE_CONFIG_DIR="$HOME/.claude-work" claude

Authenticate the corresponding account on its first launch. For permanent shortcuts, add aliases to ~/.zshrc:

alias claude-work='CLAUDE_CONFIG_DIR="$HOME/.claude-work" claude'
alias claude-client='CLAUDE_CONFIG_DIR="$HOME/.claude-client" claude'

Reload the shell configuration:

source ~/.zshrc

The commands then select the intended account while retaining normal CLI arguments:

claude                  # Default account
claude-work             # Work account
claude-client --resume  # Resume a client session

CLAUDE_CONFIG_DIR and --user-data-dir solve different problems. The first changes Claude Code's configuration root; the second changes the Electron profile used by Claude Desktop. Starting an isolated Desktop profile does not automatically isolate a separately launched Claude Code process.

Troubleshooting

The Wrong Account Appears

Check the complete command shown by the launcher and confirm that every account has a unique --user-data-dir. Use absolute paths and quote paths containing spaces. Reusing the default directory or one custom directory joins the local state again.

The Login Callback Opens in Another Instance

Authentication callbacks can be delivered through a URL scheme registered for Claude Desktop. macOS chooses the application handler, but it does not necessarily know which of several identical instances initiated the login.

For the initial sign-in, quit every Claude instance, launch only the profile being configured, and complete authentication. Start the remaining profiles afterward.

MCP Servers or Cowork Behave Differently

A fresh profile may need to initialize integrations independently. MCP servers that bind fixed ports or use shared external credentials can conflict across profiles. Cowork may create additional local runtime or virtual-machine resources, increasing memory and disk usage for every active profile.

A Second Instance Does Not Start

Confirm that Claude is installed at /Applications/Claude.app and that -n appears before --args. If a Claude update changes startup or single-instance handling, quit all instances and test the Terminal command before debugging the AppleScript wrapper.

Why Not Duplicate the Application?

Copying or modifying Claude.app is unnecessary. Changes to the bundle identifier or executable can invalidate code signatures, interfere with application integrity checks, and complicate automatic updates. A dedicated data directory leaves the installed application untouched.

Replacing ~/Library/Application Support/Claude with symbolic links is also fragile. Active processes may hold database locks, virtual-machine images, or resolved paths while the link changes underneath them. Stable profile directories avoid moving live application state.

Remove a Profile

Quit the corresponding Claude instance before deleting its data. Remove the work profile interactively so that the target can be reviewed before deletion:

rm -ri "$HOME/Library/Application Support/Claude-Work"

This does not affect the default Desktop profile and does not delete the online Claude account or server-side conversations. It does remove local authentication, preferences, caches, integration settings, and other data stored in that profile.

The same model scales to any number of accounts: one installed application, one unique user-data directory per Desktop account, and a separate CLAUDE_CONFIG_DIR for each Claude Code identity. It remains a compatibility technique rather than an account-management feature, so a quick launch test after major Claude Desktop releases is worthwhile.

References