Zero-Impact Isolation

Separate your Claude Desktop App by use case.

Keep chat, Projects, Claude Cowork, Artifacts, and Claude Design apart by account and use case, with Claude Code linked when you want it. A macOS utility for the whole Claude Desktop App suite.

Settings Interface

Separate the whole
Desktop App suite

Switching CLI profiles is already well handled by existing tools like direnv and claude-swap. Claude Desktop Switcher (CSW) is for the rest of your Claude work: keep chat, Projects, Cowork, Artifacts, and Claude Design separated by account and use case, whether you live entirely in the desktop app, pair Cowork with Claude Code and Claude Design, or mainly use Cowork and chat. Claude Code links to the same environment when you want it: switch the GUI by picking an environment, and sync a separate terminal with one command.

Customizable Separation

Choose how much carries over from your existing setup. Separate the account only and keep one continuous workspace, separate conversations and memory too while reusing your rules and skills, or separate everything for full independence. The account is always separate.

Localized Application

Your Mac's global system settings remain untouched. The active environment applies strictly locally, only to the Claude Desktop App launched via this tool or your specific terminal tab. This prevents unexpected bleeding into your usual environment, with the actual separation level depending on how much you chose to carry over.

See it in action.

The whole environment system lives in one settings window. Create an environment by choosing how much carries over, inspect exactly what each environment carries over, and switch environments right there.

CSW settings window showing an environment's paths and a per-component carry-over matrix
Every environment gets its own data directories. You choose per component what carries over and what stays separate; the account sign-in is always kept apart.
New-environment screen offering the three separation modes
Create an environment in seconds. Choose how much carries over: the account only, conversations and memory too, or everything.
First-run onboarding explaining that the existing setup is preserved
A short first-run tour shown only the first time. Your current setup is preserved as “Existing Claude” and never modified.

Designed for real workflows.

Adapt the level of isolation to match how you actually work on a single machine.

01

Separate the whole suite per project/client

When running multiple clients or projects in parallel, you want to avoid mixing chat history, Projects memory, Cowork working folders, and Artifacts.

Pick "Separate everything" and nothing carries over: each environment gets its own data directory and stays fully independent, so one client's work never leaks into another across the desktop suite.

02

Work and personal on one Mac (no terminal)

You want to keep your business and personal accounts apart without touching the terminal.

Just pick an environment and that account's Claude Desktop App launches without signing in again. No terminal needed; it is complete in the GUI.

03

Split by purpose while reusing your setup

You want separate accounts by purpose, but want to reuse your common rules and settings.

Pick "Separate conversations & memory too" to carry over your common rules, skills, plugins, and tool permissions, while keeping conversation history and auto-memory to this environment. The account stays separate either way.

04

Separate billing while keeping one workspace

You want to run research and development on separate accounts, but keep working in one continuous space.

Pick "Separate the account only" to carry over conversation history and auto-memory too; the only thing that becomes separate is the account. Split the billing while your work continues uninterrupted.

05

Link the CLI to your GUI separation

You want to use the environment you chose in the GUI from the CLI as well (for developers).

Sync the environment you chose in the GUI to Claude Code (CLI) in a separate terminal with a single command. This adds GUI-level consistency on top of what existing CLI-only switchers already solve. See Terminal Integration below for the exact command.

GUI Workflow.

Everything for the Desktop app is just a few clicks, with no terminal or scripts to manage. Link Claude Code (the CLI) to the same environment with one command only when you want it.

01

Install & Launch

Drag to Applications and run. Setup is complete.

02

Create Environments

Generate separate "Work" or "Research" environments with single clicks.

03

Launch in an Isolated Environment

Select an environment, and its Claude Desktop App launches against its own isolated directory. Environments that share settings open one at a time, so quit the running Claude before switching to another. Environments set to "separate everything" share nothing, so you can open them in a new window alongside a running Claude, without quitting.

Terminal (Claude Code) Integration

The built-in terminal inside the app inherits its environment automatically. For a separate external terminal (like iTerm), one command switches it.

01

Unified Environment Management

GUI data and CLI configs are unified and managed under a single, cohesive environment.

02

Flexible Separation

Choose how much carries over: separate everything, separate conversations and memory too, or separate the account only.

03

Terminal Integration

The built-in terminal inherits its environment automatically. For an external terminal (iTerm2, etc.), one command switches it. Replace the last argument with the name of the environment you want.

eval $(csw env <env-name>)

FAQ

What carries over is always relative to "Existing Claude". You build a new environment by choosing what to carry over from it and what to keep separate.

Carry over or keep separate: relative to what?

Always relative to "Existing Claude" (your existing setup). For each item, you choose whether to carry over the same thing as your existing Claude, or keep a new one just for this environment. The account is always separate.

What is "Existing Claude"?

Your existing Claude Desktop and Claude Code setup. CSW only uses it as the reference point and never changes or deletes your settings, history, or account sign-in.

Does it work if I've customized where my existing config lives?

The desktop app uses the standard location ~/Library/Application Support/Claude as is. Claude Code (CLI) is the exception. CSW assumes the standard ~/.claude, so if you've moved its config elsewhere with the CLAUDE_CONFIG_DIR environment variable, the CLI side of "Existing Claude" won't automatically point there. Your existing CLAUDE_CONFIG_DIR setup keeps working as before, and CSW never rewrites it.

Do I need a new environment just to use the same account?

No. If you only want to keep using the same setup, just launch Claude as usual and "Existing Claude" is used directly. CSW helps when you want independent environments for other accounts or projects.

Will a new environment break my original Claude?

No. Each environment lives in its own dedicated directory, physically separate from the original. Deleting an environment never affects your original setup.

Do I have to sign in again on every switch?

No. Each environment keeps its account sign-in inside its own directory. Sign in once and it persists across switches (items set to stay separate start empty in the new environment).

Does switching the desktop app also switch the terminal?

A terminal inside the app you launched from CSW is already in the same environment, so no command is needed. A terminal you open separately stays in your usual environment, so pass the target environment name and run eval $(csw env <env-name>) to sync it. It applies to that tab only and never affects your usual environment.

Can I open more than one environment at the same time?

Environments set to "separate everything" can be opened side by side in a new window, without quitting a running Claude: they share nothing, so concurrent instances cannot clash over the same file. The detail view shows a dedicated "Launch alongside" button for them. Environments that share settings ("separate conversations & memory too", "separate the account only") open one at a time, because a running instance can write back to a shared file and clash with the switch; quit the running Claude before switching to one of those.

Does using multiple accounts go against Anthropic's terms?

This app works with the official Claude desktop app and the official Claude Code, and you sign in to each environment yourself, with your own account, in the official app. The app does not read, store, or pass your password or sign-in to any other software. The 2026 change that limits using a subscription sign-in in non-official tools does not apply here, because this app uses the official Claude apps as they are. Anthropic's terms currently have no "one account per person" rule, but terms can change without notice. At the same time, sharing an account with other people, using a different account in place of a suspended one, and pooling several accounts to exceed the usage limits are not allowed. Using it within those limits is your own responsibility. Please check Anthropic's current terms of service and usage policy. This is not legal advice.

Are my sign-in and conversations handled safely?

This app makes no internet connection and does not record or send how you use it. You sign in through the official app; this app does not read your password or sign-in, and it never touches the macOS keychain where passwords are kept. All it does is switch which folder the official app uses. Your sign-in, the per-account app settings, the device identifier, and the working state while it runs are always kept separate for each environment, with no option to share them, so they never get mixed even by mistake. What you can share across environments is limited to things unrelated to sign-in, such as your common rules, skills, plugins, and conversation history. Each environment's data is stored on your Mac, the same as the normal Claude, and this app does not make it any less safe.

What if the official Claude adds account switching?

Many people have asked the official Claude for the ability to switch between multiple accounts. If Anthropic builds this into the official app or Claude Code, this app's role here may come to an end. We think that would be the best outcome for users.

Engineering column

A look at what CSW is built with, how we build it, and how we keep its quality.

Rust and Tauri, chosen to avoid breaking anything

What CSW cares about most is not breaking the Claude data you already have. Switching accounts means swapping configuration files, so if that ever fails midway, your chat history or account sign-in could be lost. To contain that risk, the operations that could break something all live in one place: separating each environment's data, deciding where files belong, and protecting the data currently in use. All of this sits in one shared Rust component (crates/core), and both the command-line tool (csw) and the desktop app (crates/desktop) simply call into that same component. With the risky work in a single place, there is only one place to review.

On deletion paths, the directory currently in use is always excluded from what gets removed. When swapping a shared configuration file, the original is moved to a backup first, then replaced. We chose Rust because these promises can be checked automatically, by the machine, before the program even runs, at compile time. Write code that breaks a promise and it stops with an error at that stage and never reaches the step that builds the distributable. In other words, a mistake that violates a defined promise is caught before it ships. We pair this with tests and err on the side of safety.

The GUI is built with Tauri v2. It renders through WebKit, the display engine already built into macOS, so the app does not bundle a whole browser engine of its own. That keeps the distributable small: the build covering both Intel and Apple Silicon is about 7 MB as a DMG. Code signing and notarization, where Apple confirms the app's identity, also run through Tauri's standard distribution flow.

For native macOS UI, Apple's Swift and SwiftUI would be the first choice. But CSW's heart is the systems work of swapping files and settings safely, not the screens, and there is not much UI. So we prioritized being able to check that underlying logic with the compiler and tests, and chose Rust and Tauri. A different kind of app would call for a different choice.

Why this fits autonomous AI development

We develop CSW by running several AI agents at once, dividing up research, implementation, and verification. For example, one agent writes code and another reviews it critically, asking whether anything here is wrong.

At that point, arguing over personal preference settles nothing. So the basis for judgment is the compiler's type checks, the warnings from clippy, which flags how the code is written, and whether cargo test passes or fails. None of these are open to interpretation; the machine decides plainly whether each one passes or fails. That makes them a shared yardstick when agents disagree.

Rust is typed and compiled before it runs, so whether a change holds up comes back early and in fine detail. That fast, fine-grained response pairs well with a loop where an agent fixes something itself and then checks again. This is not a dismissal of other languages. It simply means we wanted to put something the machine can judge clearly, rather than personal taste, at the center of how we work.

That said, passing compilation and tests only confirms the code does what it was written to do. It does not confirm that it matches what we actually meant to build. A button might work correctly yet be placed in the wrong spot, and that kind of mismatch slips through. So we add other gates as well: rendering the screen and checking it by eye, and auditing the app and the documentation against each other in both directions.

Keeping design and writing standards as "skills"

The look and the words on this site and in the app are not decided on a whim; they follow standards we keep as text in the repository, which we call "skills." They branch out from one root file (CLAUDE.md) into a skill file per topic, so whoever, or whichever AI, does the work can return to the same standard.

Japanese typesetting, for instance, is gathered in a skill called japanese-typography-qa. Before we applied it, the top headline broke across three lines with only one or two characters left on the last, the font was too large, and the section heading below it looked bigger than the headline above. Applying the skill's rules, breaking lines at phrase boundaries and putting every text size on a single ratio, gave it the fit it has now.

The overall look is judged by skills like design-taste-frontend and minimalist-ui. This column, for example, first wrapped each of its three topics in its own box; but the more boxes there are, the busier the screen gets and the more the eye wanders over where to read. Following the skill's guidance to not box things in needlessly and to keep body text to a width the eye can follow across one line, we dropped the boxes and divide with just the thin line above. The text you are reading now is held to a width your eye can flow across.

Mismatches between the writing and the app are caught by an audit called /audit-consistency, which cross-checks the app's screens against the documentation and this landing page in both directions. Earlier, for example, the landing page said you could use several environments at the same time, while the app, to prevent settings from colliding, was built so that several Claude instances cannot be open at once. The description and the actual behavior disagreed, so we first aligned both to "one at a time." Later we worked out that a "separate everything" environment shares nothing and can run side by side safely, so we enabled concurrent windows for fully-isolated environments and brought the description back in line with the implementation.

These skills are a way to write down why we build things the way we do, so that when someone else, or another AI, picks up the work later, they can return to the same approach. They are not magic that raises quality on its own; they are the foundation for setting a standard and then staying with it.

Disclaimer & terms

What to expect from an open-source community project.

No warranty

It is provided as is under the MIT License, with no warranty of any kind.

Use at your own risk

Use it at your own risk. The author is not liable for data loss or any other issues. Back up anything important before you try it.

Privacy

CSW makes no internet connections and sends no usage data. It never touches the macOS keychain where passwords are stored, and it runs entirely from local folders and settings on your Mac.

Unofficial project

This is an unofficial community project, not affiliated with Anthropic. "Claude" is a trademark of Anthropic.

Responsible use

This app is for keeping your own multiple Claude accounts and uses separated on your Mac. You sign in through the official app; this app does not read your password or sign-in, and it makes no internet connection. It is meant for things like separating work from personal, or splitting billing between research and development. Sharing an account with other people, using a different account in place of a suspended one, and pooling several accounts to exceed the usage limits are not allowed by Anthropic's terms of service. How you use it is your own responsibility. Please review Anthropic's current terms before using it.