TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
Claude Desktop + CLI context synchronization tool for multi-account environments
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Read this in other languages: 日本語 (Japanese) Claude Desktop Switcher is a macOS menu bar utility for separating the whole Claude Desktop App suite (chat, Projects, Claude Cowork, Artifacts, Claude Design, and Claude Code integration) by account and use case on a single Mac. Switching CLI profiles alone is already well served by existing tools like direnv and claude-swap. CSW's focus is keeping your whole desktop workspace separate, with the CLI linked when you want it. The Desktop App has no native multi-account switching, so CSW lets you switch environments without signing out each time.README 전문 보기 ↗
Read this in other languages: 日本語 (Japanese)
Claude Desktop Switcher is a macOS menu bar utility for separating the whole Claude Desktop App suite (chat, Projects, Claude Cowork, Artifacts, Claude Design, and Claude Code integration) by account and use case on a single Mac. Switching CLI profiles alone is already well served by existing tools like direnv and claude-swap. CSW's focus is keeping your whole desktop workspace separate, with the CLI linked when you want it. The Desktop App has no native multi-account switching, so CSW lets you switch environments without signing out each time. You can customize the isolation level per use case, and it also links the Claude Code (CLI) environment to your GUI selection. It works for non-engineers who never touch a terminal, as well as developers who want CLI integration.
How should you partition your environments on a single PC? You can flexibly adjust the isolation level to suit your workflow.
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. Selecting "Separate everything" allocates a separate data directory for each environment and keeps each login separate, structurally preventing information from leaking across the desktop suite.
02. Separate work and personal on one Mac (no terminal needed) Keep your business and personal accounts apart without touching the terminal. Just pick an environment and the Claude Desktop App switches without signing in again. It is complete in the GUI.
03. Separate by use case while sharing global rules
When you want separate accounts but want to reuse global rules and settings. Pick "Separate conversations and memory too" to keep specific files (such as CLAUDE.md) shared across environments while keeping history and logins separate.
04. Link the CLI to your GUI separation (for developers)
Link the environment you chose in the GUI to the CLI's CLAUDE_CONFIG_DIR. Run eval $(csw env <env-name>) (replace <env-name> with your environment's name) in a separate terminal to use the CLI in the same isolated environment. This adds GUI consistency on top of what existing CLI-only switchers already solve.
Managing the desktop app requires no complex configuration. Everything is done in the settings window, with no terminal or scripts.
Claude-Desktop-Switcher.app in your Applications folder and launch it. The settings window opens.この環境を起動); that environment's Claude Desktop App launches against its own isolated directory. Environments that share settings open one at a time, so quit a running Claude before launching another. An environment set to "separate everything" shares nothing, so you can open it alongside a running Claude with "Launch alongside" (重複して起動), without quitting.There are two kinds of terminal, and they need different steps.
1. The terminal inside the Claude Desktop app you launched from CSW (built-in)
When you switch to an environment and launch it from CSW, any terminal you open inside that app is already in that environment. No extra command is needed; just type claude to start working.
2. A separate terminal you open yourself (external, e.g. iTerm2)
A terminal you open on your own stays in your usual environment. To use a specific environment, run the sync command below (it points the CLI's CLAUDE_CONFIG_DIR at that environment's directory, applies to that tab only, and never affects your usual environment):
eval $(csw env <env-name>)
Get the csw CLI. The .dmg ships the menu-bar app only. Download the signed, notarized csw binary from the latest release, make it executable, and move it onto your PATH (chmod +x csw && mv csw /usr/local/bin/). With a Rust toolchain you can instead run cargo install --path crates/cli. Updating the app does not update csw; run csw --version to see which version you have. The GUI works without this step, except for repairing links with csw doctor --fix.
You can easily build the macOS installer (.dmg) using Tauri.
# Execute build (npm install is required beforehand)
npm run tauri build
# Or, if you use Cargo
cargo tauri build
Once the build is complete, the disk image (Claude-Desktop-Switcher_<version>_<arch>.dmg) is generated in target/release/bundle/dmg/.
crates/
core/ # Core library (Profile management, file watching, etc.)
cli/ # CLI tool (csw command)
desktop/ # Tauri v2 menu bar app and settings UI
CSW is built around a shared Rust library (crates/core) that handles environment isolation, path resolution, and data safety; the CLI (csw) and the menu-bar GUI are thin layers over that same core. Because the top priority is never destroying your existing Claude data, the core lives in Rust, where invariants are enforced at compile time.
The GUI uses Tauri v2, which renders through the operating system's WebView (WebKit on macOS) instead of bundling a browser engine. The result is a small download (the universal DMG is around 7 MB), and code signing plus notarization run through Tauri's standard distribution flow.
This also keeps the development and verification loop easy to automate: the core is checked continuously by the Rust compiler, clippy, and tests, and the UI can be rendered and inspected with a standard headless browser in CI.
For native macOS UI, Apple's Swift and SwiftUI are the first choice, and an excellent one for apps that need deep system integration or a richly crafted native experience. Because CSW's value centers on systems-level logic with a thin UI, we prioritized core correctness and an automatable verification loop. A different kind of app would call for a different choice.
MIT
Read this in English: English
チャット・Projects・Claude Cowork・Artifacts・Claude Design・Claude Code連携を含むClaudeデスクトップアプリのスイート全体を、アカウント/用途ごとに安全に分けて1つのMacで使い分けるためのメニューバーアプリです。CLIのプロファイル切り替えは、direnvやclaude-swapなど既存ツールが既によく解決しています。CSWが担うのは、デスクトップの作業全体を分け、必要ならCLIも同じ環境に連動させることです。デスクトップアプリはネイティブの複数アカウント切替を備えていないため、再ログインなしで環境を切り替えられます。用途に合わせて分離度を細かくカスタマイズでき、GUI側の環境分離にClaude Code(CLI)も連動させられます。ターミナルを使わない方から、CLI連携まで一貫させたい開発者まで対応します。
1つのPCの中で環境をどう分けるか。あなたのワークスタイルに合わせて柔軟に分離度を調整できます。
01. 案件・クライアントごとにスイート丸ごと分ける 複数のクライアント案件やプロジェクトを並行する際、チャット履歴・Projectsのメモリ・Coworkの作業フォルダ・Artifactsが混ざる懸念を避けたい場合に。「すべて分ける」を選ぶと、環境ごとに独立したデータディレクトリが割り当てられ、ログインも環境ごとに分かれるため、別案件の文脈へ漏れる事故を構造的に防ぎます。
02. 仕事用と個人用を1台で分ける(非エンジニア向け) 業務アカウントと個人アカウントを混ぜたくないが、ターミナル操作はしたくない場合に。環境を選ぶだけで、再ログインなしに別アカウントのデスクトップアプリへ切り替わります。GUIだけで完結します。
03. 用途ごとに分けつつ共通ルールは共有する アカウントは用途別に分けたいが、共通の運用ルールや設定は使い回したい場合に。「会話とメモリも分ける」を選ぶと、特定の設定ファイル(CLAUDE.md等)は全環境で共有したまま、履歴やログインは分離され、設定の二重管理を防げます。
04. GUIの分離にCLIを連動させる(開発者向け)
GUIで分けた環境をClaude Code(CLI)側でも同じ環境で使いたい場合に。GUIで選んだ環境にCLAUDE_CONFIG_DIRを連動させ、別に開いたターミナルでeval $(csw env <環境名>)(<環境名>は対象の環境名に置き換え)を実行すれば、CLIもその隔離環境で動きます。CLI単体スイッチャーが既に解決している領域に、GUI分離との一貫性を足します。
デスクトップアプリの管理に複雑な設定は不要です。すべて設定ウインドウで操作できます。
Claude-Desktop-Switcher.appをアプリケーションフォルダに入れて起動。設定ウインドウが開きます。ターミナルには2種類あり、必要な操作が違います。
1. CSWから開いたClaudeデスクトップアプリの中のターミナル(内蔵)
このアプリから環境を起動した場合、その中で開くターミナルは最初からその環境になっています。追加のコマンドは不要で、そのままclaudeと入力して作業を始められます。
2. 別に開くターミナル(外部・iTerm2等)
ご自身で新しく開いたターミナルは、普段の環境のままです。対象の環境を使うときは、次の連携コマンドを実行します(CLIのCLAUDE_CONFIG_DIRを対象環境のディレクトリに向けます。そのタブだけに適用され、普段の環境には影響しません)。
eval $(csw env <環境名>)
cswコマンドを入手します。 .dmgにはメニューバーアプリのみが含まれます。署名・公証済みのcswバイナリを最新リリースからダウンロードし、実行権を付けてPATHの通った場所に置いてください(chmod +x csw && mv csw /usr/local/bin/)。Rustの開発環境があればcargo install --path crates/cliでも導入できます。アプリを更新してもcswは更新されません。入れている版はcsw --versionで確かめられます。GUIだけで使う場合は、csw doctor --fixでのリンクの修復を除いて不要です。
Tauriを利用して、Mac用のインストーラ(.dmg)を簡単にビルドできます。
# ビルドの実行(事前に npm install 等が必要です)
npm run tauri build
# または、Cargo を使う場合
cargo tauri build
ビルドが完了すると、target/release/bundle/dmg/に.dmg(Claude-Desktop-Switcher_<version>_<arch>.dmg)が生成されます。
crates/
core/ # コアライブラリ (プロファイル管理、ファイル監視など)
cli/ # CLIツール (csw コマンド)
desktop/ # Tauri v2 を用いたメニューバーアプリと設定画面
CSWの中核は、環境の隔離・パス解決・データ保護を担う共有のRustライブラリ(crates/core)です。CLI(csw)とメニューバーGUIは、どちらもこの同じコアの上に薄く乗っています。ユーザーの既存Claudeデータを壊さないことが最優先のため、不変条件をコンパイル時に固められるRustを中核に置いています。
GUIはTauri v2で、macOS標準のWebView(WebKit)を使い、ブラウザエンジンを同梱しません。そのため配布物は小さく(universalのDMGで約7MB)、署名と公証もTauriの標準的な配布フローでそのまま行えます。
この構成は、開発と検証のループを自動で回しやすい利点もあります。中核はRustのコンパイラ・clippy・テストで継続的に検証でき、画面は標準的なヘッドレスブラウザでCI上でもレンダリング確認できます。
macOSネイティブUIの第一候補はAppleのSwiftとSwiftUIで、深いシステム統合や作り込んだネイティブ体験が必要なアプリには優れた選択肢です。CSWは価値の中心がシステム寄りのロジックにありUIが薄いため、コアの正しさと自動で回る検証を優先しました。用途が変われば、最適な選択も変わります。
MIT