How to run multiple Claude accounts at once (Desktop + Claude Code), and why the obvious hacks break A developer who builds the paid Mac app Claude Sessions Pro documented how to run multiple Claude accounts simultaneously by giving each account its own data directory: setting CLAUDE_CONFIG_DIR for Claude Code CLI sessions and launching separate Claude Desktop instances with Chromium's --user-data-dir flag. The writeup explains that the DIY approach breaks down because macOS groups windows by bundle identifier, so both instances share a Dock icon, name, and Cmd-Tab slot, and argues each account must be its own app to get separate icons and correct Google sign-in routing. Disclosure up front: I build Claude Sessions Pro https://doubleclaude.com , a paid Mac app that does this. Most of this post is the free way to do it yourself, plus what I learned about why the DIY versions misbehave. The app gets one short section near the end. If you have a company Claude account and a personal one, or one account per client, you've hit this: Claude Desktop is signed in to one account. To check the other one, you sign out, sign in, lose your place, and do it again an hour later. Claude Code in the terminal has the same problem, just with a different config folder. Here's how to fix it, from "free, two lines of shell" to "one click", and the gotchas nobody mentions until you've already set it up. | You want | Do this | |---|---| | Two Claude Code CLI accounts | CLAUDE CONFIG DIR=~/.claude-work claude for the second one | | Two Claude Desktop windows, free | Start a second copy with --user-data-dir commands below | | Separate Dock icons, ⌘-Tab, Google sign-in that lands in the right window, survives updates | You need each account to be its own app , not just its own folder see "Why the hacks break" | Claude Desktop is an Electron app, so it's Chromium underneath. Everything for the signed-in account session cookies, settings, connectors, MCP config, the list of Claude Code sessions lives in one user data directory : ~/Library/Application Support/Claude %APPDATA%\Claude the Microsoft Store version redirects this into its package folder, under %LOCALAPPDATA%\Packages\Claude …\LocalCache\Roaming\Claude One folder, one cookie jar, one login. Signing in to account B overwrites account A's session. Your chats aren't lost when you switch; they live in your account on Anthropic's side. What you lose is time, context, and the ability to see both at once. So every working solution comes down to the same idea: give each account its own data directory. The CLI is the easy part. It reads its login and settings from a config directory, which you can override: second account, one-off CLAUDE CONFIG DIR=~/.claude-work claude Make it permanent with an alias in ~/.zshrc or ~/.bashrc : alias claude-work='CLAUDE CONFIG DIR="$HOME/.claude-work" claude' alias claude-personal='CLAUDE CONFIG DIR="$HOME/.claude-personal" claude' Run claude-work once, log in with the work account, done. Each folder keeps its own login, history and settings. This works the same on macOS, Linux and Windows in PowerShell: $env:CLAUDE CONFIG DIR="$HOME\.claude-work"; claude . Chromium apps accept --user-data-dir , and Claude Desktop honors it. This starts a second, independent Claude next to your normal one: open -n -a Claude --args --user-data-dir="$HOME/Library/Application Support/Claude-Work" -n opens a new instance even though Claude is already running. --args goes to Claude itself. Sign in to the second account in the new window. Wrap it in a shell function so you can have as many as you want: ~/.zshrc claude-profile { local name="${1:?usage: claude-profile