{"_id":"@deniscodp/claude-profile-manager","_rev":"4-613408c7bec10005a1a0f4a1ad8e5914","name":"@deniscodp/claude-profile-manager","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@deniscodp/claude-profile-manager","version":"1.0.0","keywords":["claude","claude-cli","anthropic","profile","profile-manager","account-switcher","symlink","nvm","cli","dotfiles"],"author":{"name":"Denis Constantin Petrisor","email":"denisco.dp5@gmail.com"},"license":"MIT","_id":"@deniscodp/claude-profile-manager@1.0.0","maintainers":[{"name":"denisco_dp5","email":"denisco.dp5@gmail.com"}],"homepage":"https://github.com/DeniscoDp5/claude-profile-manager#readme","bugs":{"url":"https://github.com/DeniscoDp5/claude-profile-manager/issues"},"bin":{"cpm":"index.js"},"dist":{"shasum":"2bb5a0b1b30a9c2467607f3d8320e010b20b4385","tarball":"https://registry.npmjs.org/@deniscodp/claude-profile-manager/-/claude-profile-manager-1.0.0.tgz","fileCount":5,"integrity":"sha512-5m/V8DtaAzyRfoL3ENuGKSNqvrdmeNkTr2LdS4/VI3XSKnDVnty+C+KUnPzepXuW8umkc76h3q/65JELHZMWKw==","signatures":[{"sig":"MEYCIQDt89QZL+mT8K9TRoUMBUll4XRALuvThCIdLbGMuKOoIQIhAPwdkfAE8mELYzcGGMt4gkpQX1ENAOtp1vNnZMedCjJ+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33489},"main":"index.js","type":"module","engines":{"node":">=16.7.0"},"gitHead":"ee23fd968dc80d14ae1a27b1b2746d2f0f2734b5","scripts":{"start":"node index.js"},"_npmUser":{"name":"denisco_dp5","email":"denisco.dp5@gmail.com"},"repository":{"url":"git+https://github.com/DeniscoDp5/claude-profile-manager.git","type":"git"},"_npmVersion":"10.2.4","description":"Switch instantly between multiple Claude CLI accounts/profiles (personal, work, ...) by isolating CLAUDE_CONFIG_DIR per profile - like nvm, but for your Claude configuration.","directories":{},"_nodeVersion":"18.19.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-profile-manager_1.0.0_1782227616653_0.4875838505539667","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@deniscodp/claude-profile-manager","version":"1.0.1","keywords":["claude","claude-cli","anthropic","profile","profile-manager","account-switcher","symlink","nvm","cli","dotfiles"],"author":{"name":"Denis Constantin Petrisor","email":"denisco.dp5@gmail.com"},"license":"MIT","_id":"@deniscodp/claude-profile-manager@1.0.1","maintainers":[{"name":"denisco_dp5","email":"denisco.dp5@gmail.com"}],"homepage":"https://github.com/DeniscoDp5/claude-profile-manager#readme","bugs":{"url":"https://github.com/DeniscoDp5/claude-profile-manager/issues"},"bin":{"cpm":"index.js"},"dist":{"shasum":"3b4c9b152fc9dbc6f1f819e90a3c40bb8da3668f","tarball":"https://registry.npmjs.org/@deniscodp/claude-profile-manager/-/claude-profile-manager-1.0.1.tgz","fileCount":5,"integrity":"sha512-WTm4gyfShWWXGiJ2OaQNe6N7OVrLspEYyReT7r4Lwz9XIhYcm2WxjKuaH5neE1s+CgwRIHST0OSpmGggyYWYjw==","signatures":[{"sig":"MEUCIBBuZ8kDH31dFLYxxSxpB01VjQhaYq8U7bHqnBMcwqwgAiEAs52WN01obR3Cc5Un84pUdSpXJpV9yVIFZ57v/PZPWtw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33390},"main":"index.js","type":"module","engines":{"node":">=16.7.0"},"gitHead":"ee23fd968dc80d14ae1a27b1b2746d2f0f2734b5","scripts":{"start":"node index.js"},"_npmUser":{"name":"denisco_dp5","email":"denisco.dp5@gmail.com"},"repository":{"url":"git+https://github.com/DeniscoDp5/claude-profile-manager.git","type":"git"},"_npmVersion":"10.2.4","description":"Switch instantly between multiple Claude CLI accounts/profiles (personal, work, ...) by isolating CLAUDE_CONFIG_DIR per profile - like nvm, but for your Claude configuration.","directories":{},"_nodeVersion":"18.19.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-profile-manager_1.0.1_1782229172881_0.8326390584345791","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@deniscodp/claude-profile-manager","version":"1.0.2","keywords":["claude","claude-cli","anthropic","profile","profile-manager","account-switcher","symlink","nvm","cli","dotfiles"],"author":{"name":"Denis Constantin Petrisor","email":"denisco.dp5@gmail.com"},"license":"MIT","_id":"@deniscodp/claude-profile-manager@1.0.2","maintainers":[{"name":"denisco_dp5","email":"denisco.dp5@gmail.com"}],"homepage":"https://github.com/DeniscoDp5/claude-profile-manager#readme","bugs":{"url":"https://github.com/DeniscoDp5/claude-profile-manager/issues"},"bin":{"cpm":"index.js"},"dist":{"shasum":"8ca5ec8bbce5af3a4b7c8cc41559179a96e43c7e","tarball":"https://registry.npmjs.org/@deniscodp/claude-profile-manager/-/claude-profile-manager-1.0.2.tgz","fileCount":5,"integrity":"sha512-wXPkMIYBD+F9tVZMEiHHdq/2m8+Ukmm6eKbIk/tyN+h6XmnA/pWigH/3/0iOWOyhDQolRT+TNUq4/CVZl1gw3g==","signatures":[{"sig":"MEUCIBWbGc4rUqDdPlUPxedQrO/7CbK2VUtlYIiTPFjTZneIAiEA8d99XrXNhAPZUu2A8km1IT+pUh3fALPYfSHLNgT8Z30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33390},"main":"index.js","type":"module","engines":{"node":">=16.7.0"},"gitHead":"8109b58f431ba1ed1a88606a412608d05dc8968e","scripts":{"start":"node index.js"},"_npmUser":{"name":"denisco_dp5","email":"denisco.dp5@gmail.com"},"repository":{"url":"git+https://github.com/DeniscoDp5/claude-profile-manager.git","type":"git"},"_npmVersion":"10.2.4","description":"Switch instantly between multiple Claude CLI accounts/profiles (personal, work, ...) by isolating CLAUDE_CONFIG_DIR per profile - like nvm, but for your Claude configuration.","directories":{},"_nodeVersion":"18.19.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-profile-manager_1.0.2_1782229819852_0.6396394317728182","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@deniscodp/claude-profile-manager","version":"1.0.3","description":"Switch instantly between multiple Claude CLI accounts/profiles (personal, work, ...) by isolating CLAUDE_CONFIG_DIR per profile - like nvm, but for your Claude configuration.","type":"module","bin":{"cpm":"index.js"},"main":"index.js","engines":{"node":">=16.7.0"},"scripts":{"start":"node index.js"},"keywords":["claude","claude-cli","anthropic","profile","profile-manager","account-switcher","symlink","nvm","cli","dotfiles"],"author":{"name":"Denis Constantin Petrisor","email":"denisco.dp5@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/DeniscoDp5/claude-profile-manager.git"},"bugs":{"url":"https://github.com/DeniscoDp5/claude-profile-manager/issues"},"homepage":"https://github.com/DeniscoDp5/claude-profile-manager#readme","_id":"@deniscodp/claude-profile-manager@1.0.3","gitHead":"e45c34bbb30eb309d263ce9304f6bc53a49d636a","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-GMBlOv0k/UlpFggtjxm66oCGQS/L8F74tK44OvgZaTpB1TlBl/IebCGBS+Sp0d5x0AvXb2OSevfIri4yURGbuQ==","shasum":"38710e0d0095d51d82a3b905e6ae51aefa7200fe","tarball":"https://registry.npmjs.org/@deniscodp/claude-profile-manager/-/claude-profile-manager-1.0.3.tgz","fileCount":5,"unpackedSize":33707,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDrEtWFz6PdaYD5D9lQuni0tE9A1RWP+0LseqrbCLKxDQIhAPNwY5koAlmMM4D+2OUllDgMk8p3Fy3MtXFflYzvhYfz"}]},"_npmUser":{"name":"denisco_dp5","email":"denisco.dp5@gmail.com"},"directories":{},"maintainers":[{"name":"denisco_dp5","email":"denisco.dp5@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-profile-manager_1.0.3_1782230850889_0.9744448831031511"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-23T15:13:36.491Z","modified":"2026-06-23T16:07:31.168Z","1.0.0":"2026-06-23T15:13:36.833Z","1.0.1":"2026-06-23T15:39:33.031Z","1.0.2":"2026-06-23T15:50:20.017Z","1.0.3":"2026-06-23T16:07:31.043Z"},"bugs":{"url":"https://github.com/DeniscoDp5/claude-profile-manager/issues"},"author":{"name":"Denis Constantin Petrisor","email":"denisco.dp5@gmail.com"},"license":"MIT","homepage":"https://github.com/DeniscoDp5/claude-profile-manager#readme","keywords":["claude","claude-cli","anthropic","profile","profile-manager","account-switcher","symlink","nvm","cli","dotfiles"],"repository":{"type":"git","url":"git+https://github.com/DeniscoDp5/claude-profile-manager.git"},"description":"Switch instantly between multiple Claude CLI accounts/profiles (personal, work, ...) by isolating CLAUDE_CONFIG_DIR per profile - like nvm, but for your Claude configuration.","maintainers":[{"name":"denisco_dp5","email":"denisco.dp5@gmail.com"}],"readme":"# cpm — Claude Profile Manager\n\n> `nvm` per le versioni di Node, `--profile` per AWS… **`cpm` per i tuoi account Claude.**\n\n`cpm` è un profile switcher per la CLI ufficiale di Claude. Pensato per programmatori e agenti AI, permette di **alternare istantaneamente più profili/account** (es. *personale* e *lavoro*), mantenendo ogni sessione di login **completamente isolata** — inclusa l'identità dell'account (email) mostrata in console.\n\nFunziona impostando nativamente la variabile d'ambiente **`CLAUDE_CONFIG_DIR`**: quando è valorizzata, la CLI di Claude scrive *tutta* la sua configurazione in quel percorso, invece che nelle directory standard condivise. Ogni profilo diventa così una cartella autosufficiente e autonoma.\n\nZero dipendenze esterne — solo i moduli nativi di Node.\n\n---\n\n## ✨ Caratteristiche\n\n- 🔀 **Switch istantaneo** tra account Claude con un solo comando.\n- 🔒 **Isolamento totale**: ogni profilo ha i suoi token, le sue sessioni, la sua cronologia **e il suo `.claude.json`** (quindi la sua email/account).\n- 🪶 **Leggerissimo**: nessuna dipendenza, solo moduli nativi di Node.\n- 🪟 **Cross-platform**: nessun privilegio speciale richiesto (niente Developer Mode su Windows).\n\n---\n\n## 📦 Installazione\n\n### Installazione globale (uso normale)\n\n```bash\nnpm install -g @deniscodp/claude-profile-manager\n```\n\nDopo l'installazione avrai il comando `cpm` disponibile ovunque nel terminale.\n\n### Modalità sviluppo (`npm link`)\n\n```bash\ngit clone https://github.com/DeniscoDp5/claude-profile-manager.git\ncd claude-profile-manager\nnpm link\n```\n\n`npm link` registra il comando `cpm` globalmente facendolo puntare alla tua copia locale. Per rimuoverlo: `npm unlink -g @deniscodp/claude-profile-manager`.\n\n---\n\n## ⚙️ Setup della shell (Perché è necessario?)\n\n**Importante:** Un processo figlio (come uno script Node) non può modificare le variabili d'ambiente del terminale \"genitore\" che lo ha lanciato. Poiché `cpm` funziona modificando la variabile `CLAUDE_CONFIG_DIR`, ha bisogno di una \"shell function\" (un wrapper caricato all'avvio) per intercettare il comando e applicare la modifica all'ambiente corrente.\nSe non completi il setup, vedrai un errore giallo `⚠ Shell integration non attiva` e i comandi di switch non avranno alcun effetto sul tuo terminale.\n\n### Linux / macOS / WSL (bash o zsh)\n\nIl modo più rapido:\n```bash\ncpm setup\n```\n*(Questo aggiungerà la riga di inizializzazione al tuo file `~/.bashrc` o `~/.zshrc`).* Riapri poi il terminale.\n\n### Windows (PowerShell)\n\n```powershell\ncpm setup\n```\n*(Questo aggiornerà il tuo `$PROFILE` di PowerShell).* Riapri poi il terminale o esegui:\n```powershell\n. \"$PROFILE\"\n```\n\n### 🤖 Utilizzo per Agenti AI e Automazioni (Senza Setup)\n\nSe sei un **Agente AI** o stai automatizzando uno script e non puoi appoggiarti al file `.bashrc` o `$PROFILE`, puoi bypassare l'integrazione shell valutando direttamente l'output del comando.\n`cpm use <nome>` stampa infatti su `stdout` il comando di esportazione corretto:\n- **Bash/Zsh:** `eval \"$(cpm use nome_profilo)\"`\n- **PowerShell:** `Invoke-Expression (cpm use nome_profilo)`\n\n---\n\n## 🚀 Workflow Principale (Guida Rapida)\n\n### 0. Salvare la configurazione esistente\nSe usavi già la CLI di Claude prima di installare `cpm`, la tua configurazione (e il tuo login attuale) si trovano nei percorsi standard del sistema. Non sovrascriverla! Importala come tuo primo profilo (es. chiamalo `personale`):\n\n```bash\ncpm save personale\n```\nQuesto comando copierà tutti i tuoi token correnti nel nuovo profilo e lo imposterà come attivo. Non dovrai fare un nuovo login!\n\n### 1. Aggiungere un nuovo profilo\nVuoi aggiungere un nuovo account (es. per il lavoro)? Usa il comando `login`:\n\n```bash\ncpm login lavoro\n```\n`cpm` crea la cartella del profilo isolato e avvia direttamente l'autenticazione ufficiale della CLI (`claude auth login`). Completa l'autenticazione dal browser: al termine, il profilo `lavoro` è pronto e attivo.\n\n### 2. Verificare lo stato\nVuoi sapere con quale account stai parlando o vedere tutti i tuoi profili?\n\n```bash\ncpm list\n```\nVedrai un output chiaro con le email associate a ogni profilo e un asterisco `*` su quello correntemente attivo:\n```text\nProfili Claude (/home/tu/.claude_profiles)\n\n  * lavoro      <lavoro@azienda.com>\n    personale   <io@gmail.com>\n\nAttivo: lavoro (via CLAUDE_CONFIG_DIR)\n```\n\n### 3. Switch istantaneo\nPer passare da un account all'altro basta un comando:\n\n```bash\ncpm use personale\n```\nFatto. Da questo momento la CLI di Claude userà il tuo account *personale*. Nessun login richiesto, nessun file sovrascritto.\n\n---\n\n## 🧰 Tabella dei Comandi\n\n| Comando             | Descrizione                                                                 |\n| ------------------- | --------------------------------------------------------------------------- |\n| `cpm save <nome>`   | Importa la configurazione Claude esistente di default in un nuovo profilo.  |\n| `cpm login <nome>`  | Autentica un nuovo profilo isolato tramite browser e lo attiva.             |\n| `cpm use <nome>`    | Attiva un profilo esistente (imposta `CLAUDE_CONFIG_DIR`).                  |\n| `cpm list` (`ls`)   | Elenca i profili con la relativa email e mostra quello attivo.             |\n| `cpm setup`         | Configura l'integrazione automatica per la tua shell corrente.              |\n| `cpm shell-init`    | Stampa il codice per l'integrazione shell (per uso manuale).                |\n| `cpm help`          | Mostra l'aiuto.                                                            |\n\n---\n\n## 🔬 Come funziona sotto il cofano\n\nLa CLI ufficiale di Claude, se trova la variabile `CLAUDE_CONFIG_DIR`, vi colloca **l'intera** configurazione — compreso `.claude.json` (che altrimenti vivrebbe in `~/.claude.json`, condiviso e fuori dal controllo dei profili).\n\n```text\n~/.claude_profiles/\n├── .active         <- nome dell'ultimo profilo attivato (default dei nuovi terminali)\n├── lavoro/         <- CLAUDE_CONFIG_DIR completa del profilo \"lavoro\"\n│   ├── .claude.json        (account OAuth + email + impostazioni)\n│   ├── .credentials.json   (token)\n│   ├── projects/  sessions/  ...\n└── personale/      <- CLAUDE_CONFIG_DIR completa del profilo \"personale\"\n\ncpm use <nome>   ─►   export CLAUDE_CONFIG_DIR=~/.claude_profiles/<nome>\n```\n\nLo switch è estremamente robusto perché supporta nativamente le scritture atomiche con cui la CLI rigenera i suoi file ad ogni avvio.\n\n---\n\n## 🖥️ Piattaforme supportate\n\n| Piattaforma | Shell supportata | Integrazione |\n|-------------|-----------------|--------------|\n| Linux       | bash, zsh       | `cpm.sh`     |\n| macOS       | bash, zsh       | `cpm.sh`     |\n| WSL         | bash, zsh       | `cpm.sh`     |\n| Windows     | PowerShell      | `cpm.ps1`    |\n\n> **CMD**: non supporta l'integrazione automatica. Usa PowerShell per un'esperienza completa.\n\n---\n\n## ⚠️ Note e limiti\n\n- Apri al massimo una sessione interattiva per profilo alla volta per evitare scritture concorrenti sullo stesso `.claude.json`.\n- `cpm login` richiede che la CLI ufficiale `claude` sia installata e nel `PATH`.\n- Su Windows, assicurati che l'execution policy di PowerShell consenta l'esecuzione di script: `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser`.\n\n---\n\n## 📄 Licenza\n\n[MIT](./LICENSE) © Denis Constantin Petrisor (@deniscodp)\n","readmeFilename":"README.md"}