Claude 桌面設定檔 (Claude desktop profiles)
一個真實的 /Applications/Claude.app,透過 --user-data-dir 為每個帳戶建立一個設定檔資料夾,並為每個帳戶建立一個受保護的 Dock 啟動器。現有的應用程式、其登入狀態以及預設設定檔絕對不會被觸及。要還原,只需刪除啟動器和額外的資料夾。
此方法衍生自 Chad Timblin 的指南 為每個 Claude 帳戶執行獨立的 Claude 桌面應用程式。僅適用於 macOS。Windows 環境未經驗證,相關已知注意事項請參考該指南的附錄。
基本規則 (Ground rules)
- 絕不修改、移動、重新命名、複製或重新簽署
/Applications/Claude.app。 即使作為替代方案也不行。如果步驟 2 失敗,請停止並回報,不要提供複製品。 - 絕不寫入預設設定檔
~/Library/Application Support/Claude。 - 絕不啟動一個正在運行中的設定檔。 此應用程式在 macOS 上沒有單一實例鎖:對同一個資料夾執行兩次啟動會產生兩個共用同一資料夾的活躍程序(已於 2026-11-04 在 v4.16336.0 版及 2026-07-11 在 v1.20186.1 版驗證)。啟動器的聚焦路徑絕不能回退到重新啟動。
- 登入是使用者的責任,且一次必須只運行一個實例。 Google 和 SSO 登入會透過瀏覽器進行往返,並透過
claude://連結返回,而 macOS 會將此連結傳遞給正在運行的實例。如果開啟兩個實例,已登入的那個會收到該連結並記錄「Google 登入驗證碼無法回應由此應用程式啟動的登入,已忽略」,而另一個則會停留在登入畫面。絕不處理密碼。 - 注意您的執行環境。 如果此會話在 Claude 桌面應用程式內部運行,則關閉它會殺死該會話:請將關閉步驟以文字形式交給使用者手動操作。如果無法讀取
~/Library,請告知使用者從終端機執行此操作。 - 僅刪除您在此會話中建立的測試項目。 腳本的冒煙測試會拒絕觸碰任何在它運行之前就已存在的資料夾。
範圍 (Scope)
整個工作大約包含十個指令加上一份 README。關於已安裝版本的事實來自步驟 2 中的一次性測試,而非從讀取 app.asar、授權、保險絲或 Electron 內部機制取得。只有在使用者要求時,才自訂啟動器圖示。
步驟 (Steps)
S 指的是此技能目錄中的 scripts/claude-profiles.sh;執行 bash $S 會顯示使用說明。AppleScript 原始碼會存放至 CLAUDE_LAUNCHER_SOURCES(預設為 ~/Documents/claude-multi-account/launcher-sources);如果使用者選擇其他目錄,請將其指向步驟 5 的 README 資料夾。如果無法寫入 /Applications,請設定 CLAUDE_LAUNCHER_DIR=$HOME/Applications。verify-mechanism 會寫入並移除 /tmp/claude-profile-test-<pid>。
- 輸入 (Inputs)。主要帳戶是目前已登入的那個。它保留預設設定檔並獲得
Claude (<標籤>).app。其他每個帳戶都會獲得資料夾Claude-<標籤>以及它自己的Claude (<標籤>).app。如果未提供,請詢問標籤和電子郵件。若要判斷哪個帳戶已登入,請將預設設定檔config.json中的lastKnownAccountUuid與~/.claude.json中的oauthAccount進行比較;如果兩者不同,請詢問使用者應用程式顯示的是哪個電子郵件地址。任何設定檔資料夾名稱都不能是另一個名稱的前綴;build會拒絕與現有資料夾或其他啟動器來源命名的資料夾發生衝突。Application Support 下以Claude開頭但未包含Cookies檔案的資料夾(例如Claude-3p)不是設定檔;請勿碰觸它們。 - 預檢與機制 (Preflight and mechanism)。執行
bash $S preflight。警告使用者將會出現一個視窗,然後執行bash $S verify-mechanism。FAIL 意味著停止並通知使用者。 - 建置與冒煙測試 (Build and smoke)。主要帳戶:執行
bash $S build <標籤> default。其他每個帳戶:執行bash $S build <標籤> Claude-<標籤>,然後執行bash $S smoke <標籤> Claude-<標籤>。絕不對主要啟動器執行冒煙測試:它的聚焦路徑會在使用者意料之外的時刻觸發自動化提示。如果存在先前執行的啟動器或 README,請備份 README 資料夾,原地重建(build會覆寫),且絕不刪除您在此會話中未建立的啟動器。 - 遷移檢查 (Migration check)。與 claude.ai 相關的項目(對話、專案、連接器)會隨著登入而轉移。與桌面端相關的項目則不會。MCP 伺服器位於
<設定檔>/claude_desktop_config.json:請選擇性地複製條目,因為全面複製會使每個本地伺服器程序增加一倍。排程任務位於<設定檔>/local-agent-mode-sessions/<uuid>/<uuid>/scheduled-tasks.json和<設定檔>/claude-code-sessions/...,僅在目標帳戶登入並在運行中的實例內執行,並在目標實例退出後進行遷移:精確複製欄位,刪除notifySessionId,保留lastRunAt,在舊副本上設定enabled: false並保留它。同一檔案中的preferences區塊(Cowork 設定、繞過權限閘道、允許的來源、資料夾授權、Chrome 擴充功能配對)保留在預設設定檔中;在 README 中列出使用者可能想要重新設定的項目,並註明只有一個實例應與 Chrome 擴充功能配對。~/.claude是所有實例共用的,因此全域的 CLAUDE.md 適用於所有實例。 - README。將
references/readme-template.md填入使用者命名的資料夾中(預設為~/Documents/claude-multi-account)。 - 交接 (Hand off),使用下面的文字,然後停止。在使用者回報每次登入前,執行
bash $S ps並確認它沒有輸出任何內容;如果有輸出,請自行關閉這些實例(對其程序 ID 使用kill,SIGTERM 對這個應用程式是乾淨的關閉方式),然後才告知使用者點擊那個啟動器。每個執行中的視窗看起來都一樣,因此「關閉已登入的那個」是使用者常出錯的步驟。 - 當使用者回報時:
bash $S ps必須顯示每個實例都位於不同的設定檔上,且具有不同的account=UUID。
交接文字 (Hand-off text)
一次只開一個實例時:
- 將啟動器從「應用程式 (Applications)」拖曳到 Dock 中,並移除普通的 Claude 圖塊:一旦多個實例運行,該圖塊會為所有實例亮起,並聚焦於 macOS 選中的那一個。
- 關閉每個 Claude 視窗:在每個視窗中按下 Cmd+Q,直到全部關閉。所有視窗看起來都一模一樣,所以不要試圖保留任何一個。只有當恰好一個實例在運行時,登入才能完成。
- 點擊
Claude (<標籤2>),使用該帳戶登入,然後以同樣的方式關閉它。對其他每個帳戶重複此步驟,始終確保沒有其他東西在運行。- 點擊
Claude (<標籤1>)。主要帳戶仍處於登入狀態。- 從現在開始,可以開啟任意組合。要僅關閉一個實例,請先點擊其視窗,然後按 Cmd+Q。
啟動器第一次聚焦一個運行中的實例時,macOS 會要求允許它控制「系統事件 (System Events)」。點擊「允許 (Allow)」;拒絕只會停用自動聚焦。運行中的圖塊共用一個圖示,並且在 Dock 重新啟動後可能會合併。兩者都無害。
常見問題 (Gotchas)
| 症狀 | 處理方式 |
|---|---|
| 兩個實例顯示同一個 Dock 圖示,或合併成一個圖塊 | 這是外觀問題。啟動器是透過程序而非圖塊來尋找實例。 |
| Quick Entry 快捷鍵只在一個實例中觸發 | 兩者都會註冊它。請在其中一個實例的設定中變更或停用它。 |
| 一個實例顯示「重新啟動以更新 (Restart to update)」 | 關閉所有實例,然後透過啟動器重新啟動。一個應用程式套件,一條更新路徑。 |
| 在第二個設定檔中使用 Cowork | 它會下載自己的虛擬機器套件,每個設定檔約 10 GB。 |
kill $pids 失敗,顯示「illegal pid: 1\n2」 | zsh 不會進行單詞分割。請透過 xargs kill 管線傳送。腳本已處理此情況。 |
| 測試資料夾在其實例仍在運行時被刪除 | 先終止程序,確認已消失,然後再刪除。腳本已處理此情況。 |
| Google 或 SSO 登入開啟瀏覽器,最後停留在「在 Claude 應用程式中完成登入 (Finish sign-in in the Claude app)」,而「開啟 Claude (Open Claude)」無反應;新實例停留在登入畫面 | 另一個實例正在運行並接收了回呼。關閉所有實例(使用 ps 驗證),僅開啟那個啟動器,再次登入。所有實例共用 ~/Library/Logs/Claude/main.log;在其中搜尋 [Auth] 和 sign-in code 來查看哪個實例收到了回呼。多次嘗試後程序 ID 未改變,表示使用者從未真正關閉實例。 |
| 在設定過程中出現自動化提示 | 有人開啟了一個啟動器,而其對應的實例已在運行。點擊「允許 (Allow)」;什麼都不會壞。 |
危險訊號 (Red flags)
- 「此應用程式有單一實例鎖,因此在聚焦失敗時重新啟動是安全的。」它沒有。步驟 2 是關於此版本唯一的事實來源。
- 「登入在應用程式內部進行,因此兩個實例可以保持開啟。」登入期間始終只能有一個實例。
- 「方案 B:複製並重新簽署應用程式。」此舉禁止。請停止並回報。
- 「讓我先檢查 app.asar / 授權 / 保險絲。」超出範圍。
- 「我順便幫圖示加個徽章。」僅在有人要求時才做。
- 「我也要測試主要啟動器。」它的聚焦路徑會提示使用者。僅進行管線檢查。
復原 (Recovery)
重置一個非主要實例:關閉它,刪除其設定檔資料夾,點擊其啟動器,再次登入。完全還原:刪除啟動器和額外的設定檔資料夾。真實的應用程式和預設設定檔從未受影響。使用 osacompile -o "/Applications/Claude (<標籤>).app" <原始碼>.applescript 從其原始碼重建啟動器。