Your app stays untouched
It is never copied, changed or signed again. So it keeps its signature, its keychain access and its own updates.
$ aidentity
Run your work, personal and client accounts side by side. Each one stays signed in.
Built for AI desktop apps like Claude and ChatGPT. Also tested with Slack, VS Code, Cursor, Notion and other apps built on Chromium, the engine inside Google Chrome. See the list.
curl -fsSL https://raw.githubusercontent.com/PiniShv/aidentity/main/install.sh | bash
Paste it into Terminal. Say yes to the walkthrough at the end.
brew install pinishv/tap/aidentity
Then run aidentity setup to start the walkthrough.
Open Terminal: press Cmd + Space, type Terminal, press Return. The installer checks the download, never uses sudo and leaves your shell files alone. Read it first, or build from source.
Demo
Create a Claude profile and a ChatGPT profile. Then rename one, change its colour, remove it and bring it back.
Quick start
Paste the install line into Terminal. Then follow the walkthrough.
It starts at the end of the installer. After Homebrew, run aidentity setup.
Choose it from the list. Then name the account, for example Work.
For example Claude Work. Sign in once. The walkthrough offers to open its folder. Drag the icon to your Dock.
If the app is already open, quit it first. Sign in to the new icon, then open the app again. Some apps sign in through your browser, and macOS hands the result to the window that started first. Why you quit the app first
aidentity add Claude --profile Work --color blueOne more account, no questions.aidentity listEvery profile, and which are running.aidentity rename "Claude Work" ClientNew name. It stays signed in.aidentity restore "Claude Client"Bring back a deleted icon.aidentity doctor --fixCheck and repair.How it works
aidentity changes nothing inside the app. It uses a start-up option the app already has.
The lock stops the app from starting twice.
It opens your app again with --user-data-dir, a start-up option that points the app at a different data folder.
Cookies live in that folder, so each launcher opens its own account.
There is still one Claude.app. The full picture
Why aidentity
It is never copied, changed or signed again. So it keeps its signature, its keychain access and its own updates.
About 2,700 lines of bash. Read the script before you run it. It needs nothing extra. The Xcode Command Line Tools are optional.
It makes no network calls, never uses sudo and runs nothing in the background.
Deleted an icon? aidentity restore brings it back, still signed in. Something looks wrong? Run aidentity doctor --fix. rm keeps your data unless you add --purge. The uninstaller asks before it deletes any profile.
While a profile runs, clicking Claude.app takes you to that profile. aidentity add Claude --main builds a Main launcher that opens your original account instead. Why clicking the app opens a profile
A launcher stores the path to the app, not a copy. So the next launch uses the new version. aidentity itself never checks for updates.
Worth knowing: aidentity does not encrypt profile data. Each data folder holds a live sign-in, just like the app's own folder. Is this safe?
Which apps work
Chromium is the engine inside Google Chrome. Electron is a toolkit for desktop apps built on that engine. Run aidentity apps to see which of your apps qualify.
Two accounts signed in at once, checked by hand.
Starts as its own copy, with its own data. Two sign-ins not checked by hand yet.
Detected, but their built-in profiles usually do the job better.
Native apps have no Chromium inside, so they have no --user-data-dir option. aidentity add checks this and refuses. A few Electron apps ignore the option, so profiles would share one account.
The newer ChatGPT app is Chromium inside; ChatGPT Classic is native. For VS Code, Cursor and Kiro, keep profile names short. Support for native apps is not planned for version 1. Full list and notes
Tried another app? Tell us how it went. That is how an app moves to Verified.
The main trade-off
While profiles run, the Dock shows the app's own tile for each one, with the same name and icon. macOS reads both from inside the app, and aidentity never changes the app.
The icons you click
The Dock, while both run
Run aidentity doctor. It checks your setup and every profile. If it says problems can be fixed, run aidentity doctor --fix.
Still stuck? Open an issue with the doctor output. It can show your Mac user name and profile names, so remove anything private first.
The installer checks the download, never uses sudo and leaves your shell files alone. After install, aidentity makes no network calls and runs nothing in the background.
One thing to know: it does not encrypt profile data. Each data folder holds a live sign-in, just like the app's own folder. Read more about safety or see the security policy.
Yes. aidentity sets no limit, so run add once per account. Your Mac's memory is the real limit, because each open profile is the app running again.
aidentity creates separate local data folders and passes a documented command-line option. It does not get around sign-in, share credentials or change the app.
Terms differ by product and plan, and some limit how many sessions one paid user can run, so check yours. This is not legal advice.
No. It works with desktop apps. Command-line tools keep their sign-in in other ways.
Upgrade with brew upgrade aidentity, or run the install line again. aidentity never checks for updates itself.
To remove it, use the uninstaller. It asks before it deletes any profile. Uninstall steps