Skip to content

MACOS AI WORKFLOW · CLAUDE · ANTIGRAVITY · CODEX · GROK · ANY APP

Run multiple isolated Claude, Antigravity, Codex, and Grok accounts on macOS with custom window names, badged Dock icons, and zero disk overhead.

Instant APFS copy-on-write macOS bundle cloner and native Mach-O launcher that isolates accounts, background daemons, CLI homes, MCP configs, and AltTab/Mission Control window names.

License: PolyForm Shield 1.0.0 Platform: macOS APFS Targets: Claude, Antigravity, Codex, Grok Zero Disk Overhead Zero Telemetry

Claude Desktop, Google Antigravity, OpenAI Codex, and xAI Grok badged profile icons

Twelve distinct macOS application bundles across Claude, Antigravity, Codex, and Grok: isolated accounts, separate MCP/CLI configs, and custom badged icons.

macOS APFS · verified

What it is

Repository
jangtrinh/multi-AI-profile
Requires
macOS + Xcode CLIPython 3 + Pillow + iconutil
Interface
ai-profile + 4 shortcutsCLI + Agent Skill

Why osacompile fails in AltTab — and how APFS bundle cloning solves it

Creating an AppleScript wrapper via osacompile -e 'do shell script "open -n -a Claude --args --user-data-dir=..."' only launches a transient shim that exits immediately while the real window runs inside the original /Applications/ process. macOS WindowServer, AltTab, and Mission Control read window titles and icons from the active process's Info.plist and Assets.car, causing every window to share the exact same name and icon.

0 MB APFS Copy-on-Write Clone

Clones any .app bundle into ~/Applications/ in under 1 second via cp -cR (APFS clonefile), sharing physical data blocks with 0 MB disk overhead.

Multi-Layer Daemon & CLI Home Isolation

Compiles native universal Mach-O launchers that isolate both Electron UI (--user-data-dir) and platform daemons/CLIs: CLAUDE_CONFIG_DIR for Claude, --gemini_dir for Antigravity's Go language_server, CODEX_HOME for OpenAI Codex, and GROK_HOME + SAND_DATA_ROOT for xAI Grok.

Normalized 1024×1024 Badged Icons & Assets.car Strip

Normalizes every icon to 1024×1024, composites a high-contrast pill badge (WORK, EXTRA), strips CFBundleIconName and Assets.car so macOS Sequoia never overrides the badged .icns, and activates the hidden official Codex Dark (>_) icon for Codex profiles.

One-Time Install

Installs the universal ai-profile CLI, convenience shortcuts (claude-profile, agy-profile, codex-profile, grok-profile), and the multi-ai-profile Agent Skill.

git clone https://github.com/jangtrinh/multi-AI-profile.git
cd multi-AI-profile
./install.sh

CLI Usage & Targets

# Create Work profiles (blue badge) across all 4 AI platforms
ai-profile create claude "Work" --color blue
ai-profile create antigravity "Work" --color blue
ai-profile create codex "Work" --color blue
ai-profile create grok "Work" --color blue

# Create Extra profiles (purple badge)
ai-profile create claude "Extra" --color purple
ai-profile create antigravity "Extra" --color purple
ai-profile create codex "Extra" --color purple
ai-profile create grok "Extra" --color purple

# Or clone Cursor, Windsurf, Cline, or any custom macOS .app
ai-profile create cursor "Work" --color emerald
ai-profile create custom "Work" --app "/Applications/Perplexity.app" --color cyan

# Audit health, migrate legacy osacompile applets, list (--json), or remove profiles
ai-profile doctor --fix
ai-profile migrate
ai-profile list --json
ai-profile remove codex "Extra"

Frequently Asked Questions

Why not just use osacompile and open -n -a --args --user-data-dir?

AppleScript wrappers exit immediately after spawning the original /Applications/ bundle. Because macOS WindowServer, AltTab, and Mission Control read CFBundleName and icons from the active process's Info.plist, Helper apps, and Assets.car, every window still displays the same name and unbadged icon.

Does cloning a 400 MB .app bundle waste disk space?

No. ai-profile uses cp -cR (APFS Copy-on-Write clonefile) on macOS, sharing physical storage blocks with the source application. Disk overhead is 0 MB and cloning completes in under 1 second.

How are background daemons and CLI homes isolated for Antigravity, Codex, and Grok?

ai-profile compiles native Mach-O binary wrappers per platform: Antigravity wraps both the UI (--user-data-dir) and Go language_server (--gemini_dir, --app_data_dir); OpenAI Codex/ChatGPT injects CODEX_HOME and CODEX_ELECTRON_USER_DATA_PATH; xAI Grok injects GROK_HOME, SAND_DATA_ROOT, and SAND_USER_DATA_DIR.

Ecosystem & Links