{"_id":"@bordoni/claudep","_rev":"8-ee196e895999c87c3506ab6bec9faf06","name":"@bordoni/claudep","dist-tags":{"latest":"0.4.2"},"versions":{"0.1.0":{"name":"@bordoni/claudep","version":"0.1.0","keywords":["claude","claude-code","cli","bun","profiles","accounts"],"author":{"name":"Gustavo Bordoni"},"license":"MIT","_id":"@bordoni/claudep@0.1.0","maintainers":[{"name":"bordoni","email":"gustavo@bordoni.me"}],"homepage":"https://github.com/bordoni/claudep#readme","bugs":{"url":"https://github.com/bordoni/claudep/issues"},"bin":{"claudep":"claudep.ts"},"dist":{"shasum":"fdc10ce0efef19d870c691aee9d766bdc09f2381","tarball":"https://registry.npmjs.org/@bordoni/claudep/-/claudep-0.1.0.tgz","fileCount":5,"integrity":"sha512-FqQf5kcTJmA+86dbaK2xoykns+Ipt+OCy6LgLBA2KMTsXuLPv9mQnNGin3vOw8AFn/SeUaUX4ZthWmVKO2JvJQ==","signatures":[{"sig":"MEUCIG9DclKk0vKZ2DbgExhM4uA/jfb/1bU8lzYb0Ri6qUSXAiEAv8Y1skg2+1U2iGY3At7irY+EafaR/6eIe3HtDcwe/ug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52089},"type":"module","engines":{"bun":">=1.1"},"gitHead":"25e2782bdd8f4c52ee7f5501bbd107a86f0f668f","scripts":{"lint":"biome check .","test":"bun test --timeout 20000","check":"bun run typecheck && bun run lint && bun run test","release":"bun scripts/release.ts","lint:fix":"biome check --write .","changelog":"bun scripts/changelog.ts","typecheck":"tsc --noEmit","pack:check":"bun pm pack --dry-run","test:watch":"bun test --watch","test:coverage":"bun test --coverage"},"_npmUser":{"name":"bordoni","email":"gustavo@bordoni.me"},"repository":{"url":"git+https://github.com/bordoni/claudep.git","type":"git"},"_npmVersion":"10.9.7","description":"Run Claude Code under separate accounts on one machine (work + personal) with isolated logins and shared config.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.11"},"_npmOperationalInternal":{"tmp":"tmp/claudep_0.1.0_1788407985689_0.9230857898615348","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bordoni/claudep","version":"0.1.1","keywords":["claude","claude-code","cli","bun","profiles","accounts"],"author":{"name":"Gustavo Bordoni"},"license":"MIT","_id":"@bordoni/claudep@0.1.1","maintainers":[{"name":"bordoni","email":"gustavo@bordoni.me"}],"homepage":"https://github.com/bordoni/claudep#readme","bugs":{"url":"https://github.com/bordoni/claudep/issues"},"bin":{"claudep":"claudep.ts"},"dist":{"shasum":"22f5b5a3fa1885b5177e754288ab441e6d9490af","tarball":"https://registry.npmjs.org/@bordoni/claudep/-/claudep-0.1.1.tgz","fileCount":5,"integrity":"sha512-HFslo/DbyoSZRBxoudVB4Grulu19kgbEjo0toGX0RrdKOqdaWPChSkT7ggtBynS059QaYUSd3OQ3CPWjSQ7QlA==","signatures":[{"sig":"MEQCIFZfdfiyl1fXYclNsuD0SdaJUE0E74fa6fm4e1O5tMAJAiBcEDdN16NMh8GmzEIsf8RfBMtg3+nN0D9/zezDZgeU1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bordoni%2fclaudep@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53218},"type":"module","engines":{"bun":">=1.1"},"gitHead":"e56b75237c1073947ab803a17b439894e57aa394","scripts":{"lint":"biome check .","test":"bun test --timeout 20000","check":"bun run typecheck && bun run lint && bun run test","release":"bun scripts/release.ts","lint:fix":"biome check --write .","changelog":"bun scripts/changelog.ts","typecheck":"tsc --noEmit","pack:check":"bun pm pack --dry-run","test:watch":"bun test --watch","test:coverage":"bun test --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77b9bb7c-74e5-4bbc-a2fa-17afb69aedd8"}},"repository":{"url":"git+https://github.com/bordoni/claudep.git","type":"git"},"_npmVersion":"12.0.2","description":"Unofficial, not affiliated with Anthropic. Run Claude Code under separate accounts on one machine (work + personal) with isolated logins and shared config.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.11"},"_npmOperationalInternal":{"tmp":"tmp/claudep_0.1.1_1788408941106_0.09937571781387189","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bordoni/claudep","version":"0.2.0","keywords":["claude","claude-code","cli","bun","profiles","accounts"],"author":{"name":"Gustavo Bordoni"},"license":"MIT","_id":"@bordoni/claudep@0.2.0","maintainers":[{"name":"bordoni","email":"gustavo@bordoni.me"}],"homepage":"https://github.com/bordoni/claudep#readme","bugs":{"url":"https://github.com/bordoni/claudep/issues"},"bin":{"claudep":"claudep.ts"},"dist":{"shasum":"c0b2997c99e8633415aaff9da6f9c0e83d3eac3b","tarball":"https://registry.npmjs.org/@bordoni/claudep/-/claudep-0.2.0.tgz","fileCount":5,"integrity":"sha512-EV00SaeNkxkBgjcAsjj8sD3YMvhp+LRGPUx6i7ObIeXOgoioT71vTOP8P/DRCTTsG10HyibheW8jX6tR2TDb8Q==","signatures":[{"sig":"MEYCIQCHkUmdhw5WZ+HAU0pr5rgpnhn5L6/BD1480jQDG03+IgIhAOWtsLVZortGbUd5OCLnWqg+aySQAA5+rGgxCQn0l8z7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bordoni%2fclaudep@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75600},"type":"module","engines":{"bun":">=1.1"},"gitHead":"9c354afce99639d68d38273f8aa35f3b2d386402","scripts":{"lint":"biome check .","test":"bun test --timeout 30000","check":"bun run typecheck && bun run lint && bun run test","release":"bun scripts/release.ts","lint:fix":"biome check --write .","changelog":"bun scripts/changelog.ts","typecheck":"tsc --noEmit","pack:check":"bun pm pack --dry-run","test:watch":"bun test --watch","test:coverage":"bun test --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77b9bb7c-74e5-4bbc-a2fa-17afb69aedd8"}},"repository":{"url":"git+https://github.com/bordoni/claudep.git","type":"git"},"_npmVersion":"12.0.2","description":"Unofficial, not affiliated with Anthropic. Run Claude Code under separate accounts on one machine (work + personal) with isolated logins and shared config.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.11"},"_npmOperationalInternal":{"tmp":"tmp/claudep_0.2.0_1788755430057_0.1764108862521485","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bordoni/claudep","version":"0.2.1","keywords":["claude","claude-code","cli","bun","profiles","accounts"],"author":{"name":"Gustavo Bordoni"},"license":"MIT","_id":"@bordoni/claudep@0.2.1","maintainers":[{"name":"bordoni","email":"gustavo@bordoni.me"}],"homepage":"https://github.com/bordoni/claudep#readme","bugs":{"url":"https://github.com/bordoni/claudep/issues"},"bin":{"claudep":"claudep.ts"},"dist":{"shasum":"c7bdca97568426b2fd23c9a2bee6074ef5b5c96f","tarball":"https://registry.npmjs.org/@bordoni/claudep/-/claudep-0.2.1.tgz","fileCount":5,"integrity":"sha512-QTxRO1ToEiC01SukVNfP5DcrD2I54dliazofRJVOhVrUYV823cCwZ3YNwSDnrnsQFtN1h/JgdfJNAcOCS77HkQ==","signatures":[{"sig":"MEQCIG9J4hf/SKf+MW0YcFchOn2xGRxsq0qoWoJ/4c7v6l21AiAQ7YYwgMptH2lAnsNMvPGGiEFUHs4FBgbP2/R/hJZAcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bordoni%2fclaudep@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":76901},"type":"module","engines":{"bun":">=1.1"},"gitHead":"795eadab84bc8e4c18143423a9c5939d42150b35","scripts":{"lint":"biome check .","test":"bun test --timeout 30000","check":"bun run typecheck && bun run lint && bun run test","release":"bun scripts/release.ts","lint:fix":"biome check --write .","changelog":"bun scripts/changelog.ts","typecheck":"tsc --noEmit","pack:check":"bun pm pack --dry-run","test:watch":"bun test --watch","test:coverage":"bun test --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77b9bb7c-74e5-4bbc-a2fa-17afb69aedd8"}},"repository":{"url":"git+https://github.com/bordoni/claudep.git","type":"git"},"_npmVersion":"12.0.2","description":"Unofficial, not affiliated with Anthropic. Run Claude Code under separate accounts on one machine (work + personal) with isolated logins and shared config.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.11"},"_npmOperationalInternal":{"tmp":"tmp/claudep_0.2.1_1788871465319_0.0516941199235994","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bordoni/claudep","version":"0.3.0","keywords":["claude","claude-code","cli","bun","profiles","accounts"],"author":{"name":"Gustavo Bordoni"},"license":"MIT","_id":"@bordoni/claudep@0.3.0","maintainers":[{"name":"bordoni","email":"gustavo@bordoni.me"}],"homepage":"https://github.com/bordoni/claudep#readme","bugs":{"url":"https://github.com/bordoni/claudep/issues"},"bin":{"claudep":"claudep.ts"},"dist":{"shasum":"2c545ebe91095ee1ae91aaeb801f43153526ed73","tarball":"https://registry.npmjs.org/@bordoni/claudep/-/claudep-0.3.0.tgz","fileCount":5,"integrity":"sha512-Ks+pnuz6STkO99XdX7WlOgSiFeJATwkMeddDCwKDedWTdtf+z5Pm4TzzRUzT0Nbrv45+kIyq1TskDZ+40zG1ng==","signatures":[{"sig":"MEQCIGlj1jmU//IXkfY2Je2aKn/TsGroIbgXTTyYwcuH4+6/AiBpQcTMOjRxVJgz7R7+QGGZi1LNVoGgOv34Jd4OfVnJNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bordoni%2fclaudep@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90240},"type":"module","engines":{"bun":">=1.1"},"gitHead":"5966d63fb843fbd28e37fa7906c8ceedfa5eae33","scripts":{"lint":"biome check .","test":"bun test --timeout 30000","check":"bun run typecheck && bun run lint && bun run test","release":"bun scripts/release.ts","lint:fix":"biome check --write .","changelog":"bun scripts/changelog.ts","typecheck":"tsc --noEmit","pack:check":"bun pm pack --dry-run","test:watch":"bun test --watch","test:coverage":"bun test --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77b9bb7c-74e5-4bbc-a2fa-17afb69aedd8"}},"repository":{"url":"git+https://github.com/bordoni/claudep.git","type":"git"},"_npmVersion":"12.0.2","description":"Unofficial, not affiliated with Anthropic. Run Claude Code under separate accounts on one machine (work + personal) with isolated logins and shared config.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.11"},"_npmOperationalInternal":{"tmp":"tmp/claudep_0.3.0_1789008125707_0.12496874477903042","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bordoni/claudep","version":"0.4.0","keywords":["claude","claude-code","cli","bun","profiles","accounts"],"author":{"name":"Gustavo Bordoni"},"license":"MIT","_id":"@bordoni/claudep@0.4.0","maintainers":[{"name":"bordoni","email":"gustavo@bordoni.me"}],"homepage":"https://github.com/bordoni/claudep#readme","bugs":{"url":"https://github.com/bordoni/claudep/issues"},"bin":{"claudep":"claudep.ts"},"dist":{"shasum":"626e8ed869451327b2eca61ae5eedfac2848fead","tarball":"https://registry.npmjs.org/@bordoni/claudep/-/claudep-0.4.0.tgz","fileCount":5,"integrity":"sha512-ydpnikdYCLuOIDiInuwnliFJ1BUGrq5mScUS9b0EMhFzEhSZZVIzbNTz+tYfts8FgW5nr2kabgVH1YGYx/+dXQ==","signatures":[{"sig":"MEUCIQCA9kIP5Zdumfbzh4gQuY3FzcWEVUhy2mUNysItgyzCMwIgCyYF5G7QLqaUFENgP9JSnd7Iq2xTZWLiZakl9GZwQK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bordoni%2fclaudep@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103060},"type":"module","engines":{"bun":">=1.1"},"gitHead":"7cd65f9be7e687624cba4d751f06a1306c4e57b6","scripts":{"lint":"biome check .","test":"bun test --timeout 30000","check":"bun run typecheck && bun run lint && bun run test","release":"bun scripts/release.ts","lint:fix":"biome check --write .","changelog":"bun scripts/changelog.ts","typecheck":"tsc --noEmit","pack:check":"bun pm pack --dry-run","test:watch":"bun test --watch","test:coverage":"bun test --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:77b9bb7c-74e5-4bbc-a2fa-17afb69aedd8"}},"repository":{"url":"git+https://github.com/bordoni/claudep.git","type":"git"},"_npmVersion":"12.0.2","description":"Unofficial, not affiliated with Anthropic. Run Claude Code under separate accounts on one machine (work + personal) with isolated logins and shared config.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.11"},"_npmOperationalInternal":{"tmp":"tmp/claudep_0.4.0_1789399809664_0.7037476116084638","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@bordoni/claudep","version":"0.4.1","keywords":["claude","claude-code","cli","bun","profiles","accounts"],"author":{"name":"Gustavo Bordoni"},"license":"MIT","_id":"@bordoni/claudep@0.4.1","maintainers":[{"name":"bordoni","email":"gustavo@bordoni.me"}],"homepage":"https://github.com/bordoni/claudep#readme","bugs":{"url":"https://github.com/bordoni/claudep/issues"},"bin":{"claudep":"claudep.ts"},"dist":{"shasum":"c7e636e9f094b24f3f8d534ef08a654255b124c8","tarball":"https://registry.npmjs.org/@bordoni/claudep/-/claudep-0.4.1.tgz","fileCount":5,"integrity":"sha512-2ZaJ1jCnfg3AuxMm5vl2lMoErrC6aihLUP1SPXElsjdmBBI/r8MwrR9UNznOnio0BWwIbPWQrlAKDMmuxB+2RQ==","signatures":[{"sig":"MEUCIBf1MTfdgl0ykvZ9U9nPP1KpRuL2fBVLy/OcuFLMNYblAiEA/ncv0GHBr9J50Ei5k2h5ckRUFkYI9Pz7hs8MHIrwojQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDrzBrAS3ZFK0eq8v/ish+cRJ9Oi+CXCHpc553gHYg2PAIgI/p7XjUyYkvtcv71d3LIQJdrsxEsoyRyZBfKoOrtvTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bordoni%2fclaudep@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108838},"type":"module","engines":{"bun":">=1.1"},"gitHead":"3cc92ce321429afdef759d023f7f4003f3a3d377","scripts":{"lint":"biome check .","test":"bun test --timeout 30000","check":"bun run typecheck && bun run lint && bun run test","release":"bun scripts/release.ts","lint:fix":"biome check --write .","changelog":"bun scripts/changelog.ts","typecheck":"tsc --noEmit","pack:check":"bun pm pack --dry-run","test:watch":"bun test --watch","test:coverage":"bun test --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"77b9bb7c-74e5-4bbc-a2fa-17afb69aedd8"}},"repository":{"url":"git+https://github.com/bordoni/claudep.git","type":"git"},"_npmVersion":"12.2.0","description":"Unofficial, not affiliated with Anthropic. Run Claude Code under separate accounts on one machine (work + personal) with isolated logins and shared config.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.11"},"_npmOperationalInternal":{"tmp":"tmp/claudep_0.4.1_1790830251117_0.5336023146810573","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"_id":"@bordoni/claudep@0.4.2","bin":{"claudep":"claudep.ts"},"bugs":{"url":"https://github.com/bordoni/claudep/issues"},"dist":{"shasum":"97efd63dddf52864d356db098285572a744bbfd9","tarball":"https://registry.npmjs.org/@bordoni/claudep/-/claudep-0.4.2.tgz","fileCount":5,"integrity":"sha512-MkvtecyifR2fLPcCFlE8Y86xKbs9H6j5QoSwZkAMSl7GccKm/L91cyfBXSACtaB8yfonQrW6tzcxVqq62cHf1A==","signatures":[{"sig":"MEQCIHl+rg9R4/QCu3IoDm6lgOqwyk4o1JLxJivDL07gRbmPAiAM3R2Gi5e88J/KujYfaGKBIg6QVcwbZfO5AsdTg7jnNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAfbNVRuQATe5s7VTt1keFp3jCwwNLhRCkj4ADVq9BW+AiAPGNjRy4sDh+4Yv+sU1u+sQdrPTsJSthvNWVGCkHCWPg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bordoni%2fclaudep@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114462},"name":"@bordoni/claudep","type":"module","author":{"name":"Gustavo Bordoni"},"engines":{"bun":">=1.1"},"gitHead":"4289f1a4e7eb9c635d37ff574393d3e36c3ca9b9","license":"MIT","scripts":{"lint":"biome check .","test":"bun test --timeout 30000","check":"bun run typecheck && bun run lint && bun run test","release":"bun scripts/release.ts","lint:fix":"biome check --write .","changelog":"bun scripts/changelog.ts","typecheck":"tsc --noEmit","pack:check":"bun pm pack --dry-run","test:watch":"bun test --watch","test:coverage":"bun test --coverage"},"version":"0.4.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"77b9bb7c-74e5-4bbc-a2fa-17afb69aedd8"}},"homepage":"https://github.com/bordoni/claudep#readme","keywords":["claude","claude-code","cli","bun","profiles","accounts"],"repository":{"url":"git+https://github.com/bordoni/claudep.git","type":"git"},"_npmVersion":"12.2.0","description":"Unofficial, not affiliated with Anthropic. Run Claude Code under separate accounts on one machine (work + personal) with isolated logins and shared config.","directories":{},"maintainers":[{"name":"bordoni","email":"gustavo@bordoni.me"}],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"@types/bun":"^1.4.0","typescript":"^7.0.2","@biomejs/biome":"^2.5.11"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claudep_0.4.2_1790973796391_0.5788703621682132"}}},"time":{"created":"2026-09-03T03:59:45.501Z","modified":"2026-10-02T20:43:16.838Z","0.1.0":"2026-09-03T03:59:45.824Z","0.1.1":"2026-09-03T04:15:41.252Z","0.2.0":"2026-09-07T04:30:30.178Z","0.2.1":"2026-09-08T12:44:25.444Z","0.3.0":"2026-09-10T02:42:05.855Z","0.4.0":"2026-09-14T15:30:09.814Z","0.4.1":"2026-10-01T04:50:51.210Z","0.4.2":"2026-10-02T20:43:16.501Z"},"bugs":{"url":"https://github.com/bordoni/claudep/issues"},"author":{"name":"Gustavo Bordoni"},"license":"MIT","homepage":"https://github.com/bordoni/claudep#readme","keywords":["claude","claude-code","cli","bun","profiles","accounts"],"repository":{"url":"git+https://github.com/bordoni/claudep.git","type":"git"},"description":"Unofficial, not affiliated with Anthropic. Run Claude Code under separate accounts on one machine (work + personal) with isolated logins and shared config.","maintainers":[{"name":"bordoni","email":"gustavo@bordoni.me"}],"readme":"# claudep\n\n[![CI](https://github.com/bordoni/claudep/actions/workflows/ci.yml/badge.svg)](https://github.com/bordoni/claudep/actions/workflows/ci.yml)\n\nRun [Claude Code](https://code.claude.com) under separate accounts on one machine, for example a company Enterprise org and a personal Max plan, with fully isolated logins and shared configuration.\n\nClaude Code has no account switching of its own. `claudep` is one [bun](https://bun.sh) script with no dependencies. It manages named **profiles** and points Claude Code at them through `CLAUDE_CONFIG_DIR`.\n\n```\nclaudep init enterprise --sso --email you@company.com --alias eclaude\neclaude          # Claude Code as the enterprise account\nclaude           # Claude Code as whatever ~/.claude is logged in as\n```\n\n## Not affiliated with Anthropic\n\nclaudep is an independent, unofficial tool written by me, Gustavo Bordoni. I have no affiliation with Anthropic. Anthropic has not endorsed, sponsored, reviewed or supported this project in any way. \"Claude\" and \"Claude Code\" are Anthropic's names and trademarks and appear here only to describe what the tool works with. Use it at your own risk and under the terms of your own Claude account.\n\n## Install\n\nRequires [bun](https://bun.sh) and an existing Claude Code install (`claude` on your PATH).\n\n```sh\nbun add -g @bordoni/claudep        # or: npm install -g @bordoni/claudep  (bun is still what runs it)\nbunx @bordoni/claudep --help       # try it without installing\n```\n\nThe package name is `@bordoni/claudep` and the command it installs is `claudep`. The same package is mirrored to GitHub Packages, which needs a token with `read:packages` even for public installs; `.ref/releasing.md` has the `.npmrc` lines.\n\nOr clone and symlink it anywhere on your PATH:\n\n```sh\ngit clone git@github.com:bordoni/claudep.git ~/workspace/claudep\nln -s ~/workspace/claudep/claudep.ts ~/.local/bin/claudep\n```\n\n### Windows\n\nclaudep runs natively on Windows from PowerShell 5.1, PowerShell 7 and Git Bash. Install it with bun, which writes `claudep.exe` into `%USERPROFILE%\\.bun\\bin`:\n\n```powershell\nbun add -g @bordoni/claudep\n```\n\nTwo things differ from macOS:\n\n- Profiles share configuration through symlinks, and Windows lets a normal user create symlinks only with Developer Mode on (Settings > For developers > Developer Mode). `claudep init` stops and says so when it is off. Turn it on, open a new terminal and run the same command again.\n- There is no keychain. Claude Code keeps each profile's login in `<profile>\\.credentials.json`, and `claudep doctor` checks that the file is there.\n\n`claudep env` prints PowerShell syntax when run from PowerShell and sh syntax from Git Bash, so `claudep env work | Invoke-Expression` and `eval \"$(claudep env work)\"` both work. Git Bash otherwise behaves like bash elsewhere: put `eval \"$(claudep shell-init bash)\"` in `~/.bashrc`. An npm-installed `claude.cmd` runs through cmd.exe; the native installer's `claude.exe` avoids that hop and is what `claudep doctor` recommends. cmd.exe itself is not supported.\n\n## Usage\n\n```\nclaudep <name> [claude args…]        run claude with profile <name>\nclaudep init <name> [options]        create/update a profile and log in\nclaudep list [--json]                every profile and who it is logged in as\nclaudep status <name> [--json]       login state for one profile (\"default\" = ~/.claude)\nclaudep env <name> [--shell <sh>]    print the CLAUDE_CONFIG_DIR pin for eval, source or Invoke-Expression\nclaudep alias <name> <command>       write a shim so \"<command>\" == \"claudep <name>\"\nclaudep current [--json|--name]      which profile this shell is on, and why\nclaudep doctor [name]                verify symlinks, keychain entry, unclassified files, Claude Code version\nclaudep rm <name> [--keep-login]     log out and delete a profile (base is never touched)\nclaudep local <name> | --remove      pin the current directory tree to a profile (see below)\nclaudep resolve [dir]                print the profile pinned for a directory\nclaudep shell-init [zsh|bash|fish|powershell]   print the hook that applies pins on cd\nclaudep completion [zsh|bash|fish]   print tab completions for commands, flags and profile names\nclaudep --version\n```\n\n`init` options: `--sso`, `--email <addr>`, `--console`, `--copy-mcp`, `--alias <command>`, `--no-login`, `--force`. Run `claudep help` for the full text.\n\n## Pin a profile to a directory\n\nA file named `.claudep` at the top of a repo names the profile every hooked shell should use inside that tree, the way `.nvmrc` names a Node version. Commit it and the whole team inherits the pin.\n\n```sh\ncd ~/work/acme\nclaudep local enterprise          # writes ./.claudep containing \"enterprise\"\n```\n\nShells apply pins through a hook. Add one line to `~/.zshrc` (or `~/.bashrc` with `bash`, including Git Bash on Windows):\n\n```sh\neval \"$(claudep shell-init zsh)\"\n```\n\nIn fish the line goes in `~/.config/fish/config.fish`, and in PowerShell in `$PROFILE`:\n\n```fish\nclaudep shell-init fish | source\n```\n\n```powershell\nclaudep shell-init powershell | Out-String | Invoke-Expression\n```\n\nFrom then on, `cd` into a pinned tree sets `CLAUDE_CONFIG_DIR` for that profile and `cd` out of it returns the shell to `~/.claude`. The hook is pure shell with no subprocess (builtins in fish, cmdlets only in PowerShell), so it costs nothing at the prompt. The rules:\n\n- The nearest `.claudep` file upward from the current directory wins. An empty one cancels a parent pin.\n- The hook only changes a `CLAUDE_CONFIG_DIR` it set itself. It tracks that in `CLAUDEP_AUTO`, so a manual pin from `eval \"$(claudep env work)\"` (`claudep env work | source` in fish, `claudep env work | Invoke-Expression` in PowerShell) or a plain `export` stays put until you `eval \"$(claudep env --unset)\"`.\n- A pin that names a profile you have not created prints one warning per directory change and sets nothing.\n\n`claudep env` prints the syntax of the shell it runs in: it looks at its parent process (fish, pwsh, or an sh-like shell) and falls back to your login shell. Pass `--shell sh|fish|powershell` when neither answer fits, for example from a script or a Makefile.\n\n`claudep current` tells you which profile the shell is on and how it got there (hook, manual pin, or nothing). `claudep list` adds the same line at the bottom.\n\n## Tab completion\n\nOne line in your rc file completes subcommands, their flags, the values `--shell` and `shell-init` take, and your profile names:\n\n```sh\neval \"$(claudep completion zsh)\"      # ~/.zshrc, after compinit\neval \"$(claudep completion bash)\"     # ~/.bashrc\n```\n\n```fish\nclaudep completion fish | source      # ~/.config/fish/config.fish\n```\n\nProfile names come from a directory listing of `~/.claudep` at the moment you press Tab, so the script never runs claudep and a new profile shows up without reloading anything. In zsh the same output also works as a file: `claudep completion zsh > ~/.zfunc/_claudep` with `~/.zfunc` on `fpath` before `compinit`, if you prefer autoloading over `eval`.\n\n## Show the profile in your prompt or statusline\n\nIn a shell prompt use the variable itself; no command runs:\n\n```sh\n# zsh or bash: the last path segment is the profile name when a profile is active\nPROMPT='${CLAUDE_CONFIG_DIR:+[${CLAUDE_CONFIG_DIR##*/}] }'\"$PROMPT\"\n```\n\n```fish\n# fish\nfunction fish_prompt; set -q CLAUDE_CONFIG_DIR; and echo -n \"[$(string replace -r '.*/' '' -- $CLAUDE_CONFIG_DIR)] \"; ...; end\n```\n\nIn scripts, and in the shared `statusline-command.sh`, `claudep current --name` prints exactly one word: the profile name, `default` for `~/.claude`, or `custom` for a `CLAUDE_CONFIG_DIR` outside the profiles root. The statusline script inherits Claude Code's environment, so it sees the profile the session was started with.\n\n## How it works\n\n`~/.claude` is left exactly as it is and stays the **default** profile. Each named profile is a thin directory under `~/.claudep/<name>`. Inside it, shared configuration is a symlink back into `~/.claude`:\n\n| Shared (symlinked) | Per profile (real files) |\n|---|---|\n| `CLAUDE.md` and other top-level `*.md` | `.claude.json` (login identity, user-scope MCP servers, folder trust) |\n| `settings.json`, `keybindings.json`, `statusline-command.sh` | org-pushed `remote-settings.json`, `policy-limits.json` |\n| `hooks/`, `skills/`, `commands/`, `agents/`, `rules/`, `output-styles/`, `themes/`, `workflows/` | `history.jsonl`, `todos/`, `sessions/`, `teams/`, caches, telemetry |\n| `plugins/`, `plans/`, `projects/` (session transcripts and auto-memory) | credentials |\n\nOn macOS, credentials never touch the profile directory: Claude Code stores them in the Keychain under `Claude Code-credentials-<sha256(CLAUDE_CONFIG_DIR)[0:8]>`, so every profile has its own login and refresh token and they cannot overwrite each other. I verified this against Claude Code 2.1.259. An older bug where every config dir shared one Keychain entry no longer applies. On Linux and Windows the login is `<profile>/.credentials.json`, a real file inside the profile that is never shared.\n\nThe shared list is an allowlist, so an account-specific file cannot leak across profiles by accident. `claudep doctor` reports any base file that is neither shared nor known-private. That is how you notice when a new Claude Code version adds something.\n\n## Notes\n\n- The first time you open a repository under a new profile you will re-accept folder trust, and claude.ai connectors need their OAuth redone in that profile.\n- Two profiles running at the same time write the same `settings.json` and `plugins/`. That is the same situation as two terminals today.\n- Background sessions and the daemon are tied to `~/.claude`. As of Claude Code 2.1.280, `claude daemon install` refuses to run with `CLAUDE_CONFIG_DIR` set, and the launcher skips the daemon for `claude --bg` under a profile. Anthropic's docs describe a separate background supervisor per config dir; I have not verified that here.\n- Since Claude Code 2.1.280, every auto-memory write in a profile asks for approval, and auto mode cannot give it. The memory directory sits under the shared `projects/` symlink, and Claude Code now checks a write at the path it lands on, `~/.claude/projects/...`, which it treats as sensitive. This is [anthropics/claude-code#98044](https://github.com/anthropics/claude-code/issues/98044), open upstream. `claudep <name>`, `claudep run` and alias commands avoid it: they pass the real memory path with `--settings`, unless you pass your own `--settings`. Plain `claude` in a shell the hook or `claudep env` set up still asks. `claudep doctor` warns while your Claude Code is affected. The default profile is not.\n- Skills and plugins synced from claude.ai land in the shared `skills/synced/` and `plugins/synced/`, in one folder per account, so profiles do not mix them. The `syncClaudeAiSkills` and `syncClaudeAiPlugins` switches live in the shared `settings.json` and apply to every profile.\n- Console sign-ins made without an API key live in `~/.config/anthropic`, outside every config dir, so all profiles see the same ones. `ANTHROPIC_PROFILE` picks which one Claude Code uses.\n- In VS Code, `CLAUDE_CONFIG_DIR` in `claudeCode.environmentVariables` must be an absolute path. The session list ignores it when `claudeProcessWrapper` is set.\n- Set `CLAUDE_PROFILES_DIR` to move the profiles root. Keep it out of iCloud or Dropbox; `.claude.json` is rewritten constantly and sync tools create conflict copies.\n- Never put `CLAUDE_CONFIG_DIR` in a `settings.json` `env` block. Claude Code detects that mismatch and disables features; `claudep doctor` reports it.\n- `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` and `CLAUDE_CODE_OAUTH_TOKEN` override the login in any config dir, always in `-p` mode. `claudep <name>` and `claudep doctor` warn when one is set and leave it alone.\n- `claudep doctor` fails on macOS when Claude Code is older than 2.1.144, the first build whose Keychain item is namespaced per config dir.\n\n## Releases\n\nVersions, dates and changes are in [`CHANGELOG.md`](./CHANGELOG.md). Releases are tagged with the bare version, `0.1.0`, and published to npm with provenance by GitHub Actions.\n\n## Development\n\n```sh\nbun install        # dev tooling only; nothing ships with the tool\nbun run check      # typecheck, lint, tests. Same as CI\n```\n\nTo work on the script, start with [`AGENTS.md`](./AGENTS.md). The detail lives in [`.ref/`](./.ref/).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}