npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@nexkit/profile-switcher

v1.0.1

Published

Independent cross-platform profile switcher for isolated Claude Code configurations.

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 doctor

Create and sign in to an isolated profile:

profile-switcher add work --command profile-work --login

Launch it from any project directory:

profile-work
profile-work --continue
profile-work --resume

The 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 sync

When ~/.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 doctor

Running 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_HOME
  • PROFILE_SWITCHER_STORAGE
  • PROFILE_SWITCHER_BIN
  • PROFILE_SWITCHER_CLAUDE
  • PROFILE_SWITCHER_POWERSHELL
  • PROFILE_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-owner

If 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-existing

The 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 max profile 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:

Platform notes

  • Windows commands are managed .cmd files 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 .cmd or .bat file.
  • 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-work
command -v profile-work

Uninstall

Remove generated launchers before uninstalling the package:

profile-switcher command clean
npm uninstall -g @nexkit/profile-switcher

Profiles, 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 verify

npm 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.