If you use Claude for more than one thing at a time -- a work account and a personal one, or a client's workspace next to your own -- you've probably wished you could have more than one Claude instance open at once. By default the desktop app runs a single instance, but one simple flag lets you open multiple Claude instances simultaneously, each fully isolated from the others.

The trick is the --user-data-dir flag. It tells Claude to store its data in a specific folder, so pointing each instance at its own folder gives you separate, sandboxed copies running side by side.

What the --user-data-dir flag does

Every instance you launch with --user-data-dir gets its own data folder. That folder holds everything local to that instance: the account you're signed into, your chat history, and your connected tools. Point two launchers at two different folders and you get two independent Claude apps that never touch each other's data.

Open a second instance on macOS

Follow these three steps:

  1. Completely quit the Claude app.
  2. Open your Terminal app.
  3. Paste and run the command below. Use one folder name per account (change the name at the end to spin up another).
Terminal · macOS
# a work account $ open -n -a "/Applications/Claude.app" \     --args --user-data-dir="$HOME/.claude-instances/work"   # a second, personal account $ open -n -a "/Applications/Claude.app" \     --args --user-data-dir="$HOME/.claude-instances/personal"

Same command, different folder = a separate, isolated instance.

Open a second instance on Windows

Same idea, one command. The launcher just lives in a different place than on macOS:

  1. Press Win + R to open the Run dialog.
  2. Paste the command below and hit OK.
  3. Sign in with your second account.
Run dialog · Windows
> "%LOCALAPPDATA%\Microsoft\WindowsApps\Claude.exe" --user-data-dir="%APPDATA%\Claude-Work"

Newer versions of Claude for Windows install as a packaged (MSIX) app, and Windows reaches it through that WindowsApps\Claude.exe stub, which passes the flag through to the real app. (Older standalone installs live at %LOCALAPPDATA%\AnthropicClaude\claude.exe instead. If one path doesn't exist, try the other.) Change the folder name at the end to spin up another one.

Want a permanent launcher? Right-click the desktop, choose New › Shortcut, and paste the same command. Now that instance is one double-click away.

If neither path exists

On a few machines that Claude.exe stub is missing or turned off, so there's nothing to point the command at. When that happens, launch Claude by its app identity (AUMID) instead. Save the script below as Launch-ClaudeWork.ps1 and right-click › Run with PowerShell:

Launch-ClaudeWork.ps1 · PowerShell
# Opens a second, isolated Claude instance by app identity
$dataDir = Join-Path $env:APPDATA 'Claude-Work'
$aumid   = (Get-StartApps | Where-Object { $_.Name -like '*Claude*' } |
            Select-Object -First 1).AppID

Add-Type @'
using System;
using System.Runtime.InteropServices;
[ComImport, Guid("2E941141-7F97-4756-BA1D-9DECDE894A3D"),
 InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IApplicationActivationManager {
    int ActivateApplication(string appUserModelId, string arguments,
                            int options, out uint processId);
}
[ComImport, Guid("45BA127D-10A8-46EA-8AB7-56EA9078943C")]
public class ApplicationActivationManager { }
'@

$mgr = New-Object ApplicationActivationManager
[uint32]$procId = 0
$mgr.ActivateApplication($aumid, '--user-data-dir="' + $dataDir + '"', 0, [ref]$procId)

One thing to know the first time: Claude's login uses a claude:// link that Windows hands to whichever Claude is already running. Before signing into the new profile for the first time, fully quit Claude -- close the window and end every Claude process (and the tray icon) in Task Manager. After that one clean hand-off, both accounts run side by side.

Each instance is its own profile

Here's the part worth understanding before you set this up: each instance points at its own data folder, so it keeps its own everything. That means separate chat histories -- across both Cowork and Claude Code -- along with a separate signed-in account and its own connected tools (MCP servers). Nothing carries over between instances.

They behave very much like separate profiles in a web browser: switch profiles and you get a clean, self-contained environment every time. The folders are created for you automatically the first time you launch each instance, so you don't need to make them by hand.

.claude-instances/work
work@company.com
Own chat history
Own connectors
.claude-instances/personal
you@personal.com
Own chat history
Own connectors

Two folders, two profiles. Neither can see the other's data.

One more thing: your original Claude setup is untouched. When you open the app normally (no flag), it keeps using the default folder it always has. The flag only adds new, separate instances alongside it.

Go from reading to doing

One Claude is handy. A system built on Claude is a force multiplier.

Running separate instances is a small trick. The bigger win is building repeatable systems on top of Claude, so it runs whole workflows for you. The free $0 Cowork Masterclass shows you how, from your first setup to workflows that run themselves.

Free · Self-paced · 26 lessons