@nexkit/profile-switcher
v1.0.1
Published
Independent cross-platform profile switcher for isolated Claude Code configurations.
Maintainers
Readme
Profile Switcher
Independent cross-platform CLI for isolated Claude Code configuration directories and memorable per-profile commands such as profile-team or profile-work.
Profile Switcher is an unofficial third-party project. It is not affiliated with, endorsed by, sponsored by, or maintained by Anthropic.
- Website: https://profile-switcher.pages.dev/
- Documentation: https://profile-switcher.pages.dev/docs.html
- npm: https://www.npmjs.com/package/@nexkit/profile-switcher
- Support development: Buy me a beer
- Author: Nathan Pixodeo
Install
Requirements: Node.js 22 or newer, npm, and the official claude command available on PATH.
npm install -g @nexkit/profile-switcher
profile-switcher doctorCreate and sign in to an isolated profile:
profile-switcher add work --command profile-work --loginLaunch it from any project directory:
profile-work
profile-work --continue
profile-work --resumeThe generated command sets only CLAUDE_CONFIG_DIR and then launches the unmodified claude executable. Authentication completes through Anthropic's own flow.
Migration from the retired package
The former npm package was removed from the registry. Existing local installations and profile data are not deleted automatically.
npm uninstall -g @nathanpixodeo/claude-profile-manager
npm install -g @nexkit/profile-switcher
profile-switcher command syncWhen ~/.claude-profiles already exists, Profile Switcher continues to use it, including its .npm-commands.json manifest and existing claude-* command mappings. Fresh installations use ~/.profile-switcher and profile-* commands. No credentials, sessions, or profile directories are copied or moved during migration.
The removed package versions cannot be restored or reused. Do not delete ~/.claude-profiles when migrating.
Commands
profile-switcher
profile-switcher list
profile-switcher add <profile> [--command <profile-name>] [--login]
profile-switcher run <profile> [--] [claude arguments...]
profile-switcher continue <profile>
profile-switcher resume <profile>
profile-switcher login <profile>
profile-switcher status <profile>
profile-switcher diagnose <profile>
profile-switcher share-sessions <profile> --confirm-same-owner [--backup-existing]
profile-switcher share-skills <profile> --confirm-same-owner [--backup-existing]
profile-switcher command create <profile> [profile-command]
profile-switcher command remove <profile-command>
profile-switcher command list
profile-switcher command sync
profile-switcher command clean
profile-switcher doctorRunning profile-switcher in an interactive terminal opens the menu. Legacy v2 flags such as --list, --use, --diagnose, --create-command, and --sync-commands remain accepted through the new command. The retired repair-onboarding behavior is intentionally unavailable because Profile Switcher does not modify Claude Code onboarding state.
Storage and compatibility
Fresh installations use:
- Default profile (reserved name
max):~/.claude - Named profiles:
~/.profile-switcher/<name> - Command mappings:
~/.profile-switcher/commands.json - Generated commands: the global npm executable directory
If ~/.claude-profiles already exists, it remains the active storage root. Legacy environment variables, manifests, generated launchers, and claude-* mappings remain readable. Fresh configuration supports:
PROFILE_SWITCHER_HOMEPROFILE_SWITCHER_STORAGEPROFILE_SWITCHER_BINPROFILE_SWITCHER_CLAUDEPROFILE_SWITCHER_POWERSHELLPROFILE_SWITCHER_NPM
The old CLAUDE_PROFILE_MANAGER_* environment variables remain fallback inputs during the compatibility window.
Sharing sessions or skills
Session and skill sharing links two profile contexts to the same local directory. Use it only when both contexts have the same authorized owner and the data may be disclosed in both.
profile-switcher share-sessions work --confirm-same-owner
profile-switcher share-skills work --confirm-same-ownerIf local destination data already exists, the command exits with code 2 without changing it. Close other Claude sessions, inspect the paths, then explicitly request a recoverable backup:
profile-switcher share-sessions work --confirm-same-owner --backup-existingThe destination is renamed to a timestamped backup before a junction (Windows) or directory symbolic link (Linux/macOS) is created. Do not open one shared session concurrently from multiple profiles.
Safety and privacy
- Credentials are never printed, copied, moved, bundled, or deleted by Profile Switcher.
- Authentication is performed by the unmodified official Claude Code flow.
- Profile Switcher does not proxy, intercept, modify, or automate Anthropic network requests.
- It does not collect analytics, telemetry, or personal data.
- Re-login for the protected
maxprofile is blocked. - Unmanaged command collisions are refused.
- No install or uninstall lifecycle script mutates profile data.
Use only accounts you own or are authorized to administer. Do not share credentials, evade limits or safeguards, resell access, or link data across people or organizations without the required rights and approvals. See NOTICE.md for the packaged third-party notice.
Current policies:
- Claude Code legal and compliance
- Anthropic Consumer Terms
- Anthropic Commercial Terms
- Anthropic Usage Policy
- Anthropic Supported Regions
- Anthropic Trademark Guidelines
Platform notes
- Windows commands are managed
.cmdfiles in the global npm prefix. - Linux and macOS commands are executable POSIX launchers in
<npm-prefix>/bin. - Windows PowerShell 5.1 or newer is used only when the resolved Claude executable is a
.cmdor.batfile. - Paths containing spaces and
&are supported. However, npm 11 itself may fail when its global Windows prefix contains&; use a writable prefix without shell metacharacters if necessary.
Inspect command resolution when another installation defines the same name:
where.exe profile-workcommand -v profile-workUninstall
Remove generated launchers before uninstalling the package:
profile-switcher command clean
npm uninstall -g @nexkit/profile-switcherProfiles, mappings, sessions, state, and credentials remain on disk.
Development
Profile Switcher has no runtime dependencies and is licensed under the MIT License.
npm ci --ignore-scripts
npm run verifynpm run verify runs unit tests, packages and installs the tarball into an isolated global prefix, exercises generated commands and maintenance behavior, verifies argument and exit-code forwarding, uninstalls the package, and audits tarball contents.
