Developers juggling multiple Anthropic accounts or distinct project contexts on macOS have long struggled with Claude Desktop’s single-instance limitation. A new open-source tool, claude-orchestrator, solves this by launching independent instances of the official application without modifying the app bundle itself. By isolating user data directories, the tool preserves code signatures, notarization, and automatic updates, a critical feature for production environments where manual patching often breaks integrity.

How It Bypasses Electron’s Single-Instance Lock

The core mechanism relies on standard macOS and Electron flags rather than complex binary manipulation. When starting an instance, the tool executes open -n -a /Applications/Claude.app with specific arguments: --user-data-dir points to a unique profile path for cookies and sessions, while the CLAUDE_CONFIG_DIR environment variable redirects the Claude Code CLI configuration. This ensures that each instance maintains separate histories, settings, and authentication states. The -n flag is crucial, as it forces macOS to spawn a new application process rather than activating the existing one.

Comprehensive Session and Project Management

Beyond simple instance isolation, claude-orchestrator offers robust management for Claude Code sessions and project environments. The tool can copy or move sessions between instances, handling the transfer of transcripts, sub-agent logs, and index files. It also synchronizes project definitions via a projects.json file, ensuring that environments and permission modes are consistent across all profiles. This is particularly useful for teams sharing a machine or individuals switching between personal and professional contexts, as it prevents the tedious reconfiguration of project paths and permissions in each new instance.

Installation and Interactive Mode

The tool, renamed from claude-ctl in version 0.2.0, is available via a shell script or Homebrew. It requires macOS 13 (Ventura) or later. For users who prefer a graphical interface, the tool includes an interactive terminal menu that allows for fuzzy searching sessions, starting/stopping instances, and managing projects without memorizing CLI commands. A menu bar agent is also available, providing quick access to instance states and logs, though it refuses to run inside a Claude Code terminal to avoid self-termination during restarts.

Key Takeaways

  • Preserves app integrity: Uses native --user-data-dir and CLAUDE_CONFIG_DIR isolation instead of copying or patching the app bundle.
  • Session portability: Allows copying and moving Claude Code sessions between different account profiles with backup safety.
  • Project synchronization: Manages project environments and permission modes across all instances using a centralized JSON configuration.
  • Interactive management: Offers a terminal-based menu and menu bar agent for easy profile switching and status monitoring.

The Bottom Line

This is a pragmatic engineering solution to a common workflow friction point, leveraging existing OS mechanisms rather than hacking the application binary.