{"_id":"@d0zingcat/claude-profiles","_rev":"4-390bcfccfd3ba733ea9becab0f4e1a5f","name":"@d0zingcat/claude-profiles","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@d0zingcat/claude-profiles","version":"0.1.0","keywords":["claude","anthropic","api","profile","switch"],"license":"MIT","_id":"@d0zingcat/claude-profiles@0.1.0","maintainers":[{"name":"d0zingcat","email":"iamtangli42@gmail.com"}],"homepage":"https://github.com/d0zingcat/claude-profiles#readme","bugs":{"url":"https://github.com/d0zingcat/claude-profiles/issues"},"bin":{"clp":"dist/cli.js","claude-profiles":"dist/cli.js"},"dist":{"shasum":"681b617f3a7eca766d73d9ff7800ffab5b83474f","tarball":"https://registry.npmjs.org/@d0zingcat/claude-profiles/-/claude-profiles-0.1.0.tgz","fileCount":4,"integrity":"sha512-F1dAdb3Ol5R0oXwvFzA1O9PVnFFMM6dYMLxdtZjks3KYT8I5xgYetSWKZFRSSwejLl/4aMqUX+8/stH5Gwcn7Q==","signatures":[{"sig":"MEQCIC02dhEuzJ/xSli7/1YplYGdhA52thCa97Yu+ugntjywAiBkbG5nchhuMWTETztMSsZDGBqoeQA6GhR6p3pB/rChYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55548},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"81b3f566dc4da32e87988deac9f7ebd51b1172b1","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"pnpm build"},"_npmUser":{"name":"d0zingcat","email":"iamtangli42@gmail.com"},"repository":{"url":"git+https://github.com/d0zingcat/claude-profiles.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI tool to manage and switch between multiple Claude API endpoint profiles","directories":{},"_nodeVersion":"26.3.1","dependencies":{"commander":"^13.1.0","@inquirer/prompts":"^8.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3","@types/node":"^22.15.21"},"_npmOperationalInternal":{"tmp":"tmp/claude-profiles_0.1.0_1782266088022_0.2351513020609648","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@d0zingcat/claude-profiles","version":"0.1.1","keywords":["claude","anthropic","api","profile","switch"],"license":"MIT","_id":"@d0zingcat/claude-profiles@0.1.1","maintainers":[{"name":"d0zingcat","email":"iamtangli42@gmail.com"}],"homepage":"https://github.com/d0zingcat/claude-profiles#readme","bugs":{"url":"https://github.com/d0zingcat/claude-profiles/issues"},"bin":{"clp":"dist/cli.js","claude-profiles":"dist/cli.js"},"dist":{"shasum":"bf7e7f7ee5115ba9105106cb9e92fa2a96352f2c","tarball":"https://registry.npmjs.org/@d0zingcat/claude-profiles/-/claude-profiles-0.1.1.tgz","fileCount":4,"integrity":"sha512-9Sz5Rzqp/5GKFZtKHBMe7l0QnXRGcO48DEUc+VHa7xeZX223dGFaLiKDn/fhr0D44HLqlPqgfVRRrWJ3Zn1HIg==","signatures":[{"sig":"MEQCIFM98VfrB7l/beABFcT3TkOaY+vXyFQXXGSuX0JUizrtAiACzJB7s638p2kTnUdmHzvPqtXQskTbVecXEIe8MBAfxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57365},"type":"module","engines":{"node":">=22.5.0"},"gitHead":"fc27765e55eaacb10a22b0952f9f85145dc62f4e","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"pnpm build"},"_npmUser":{"name":"d0zingcat","email":"iamtangli42@gmail.com"},"repository":{"url":"git+https://github.com/d0zingcat/claude-profiles.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI tool to manage and switch between multiple Claude API endpoint profiles","directories":{},"_nodeVersion":"26.3.1","dependencies":{"commander":"^13.1.0","@inquirer/prompts":"^8.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3","@types/node":"^22.15.21"},"_npmOperationalInternal":{"tmp":"tmp/claude-profiles_0.1.1_1782397333445_0.3222670593834287","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@d0zingcat/claude-profiles","version":"0.2.0","keywords":["claude","anthropic","api","profile","switch"],"license":"MIT","_id":"@d0zingcat/claude-profiles@0.2.0","maintainers":[{"name":"d0zingcat","email":"iamtangli42@gmail.com"}],"bin":{"clp":"./dist/cli.js","claude-profiles":"./dist/cli.js"},"dist":{"shasum":"25c6733a729ea1f547dbfba40fe39874441d3122","tarball":"https://registry.npmjs.org/@d0zingcat/claude-profiles/-/claude-profiles-0.2.0.tgz","fileCount":4,"integrity":"sha512-euU7AQUFxHPoC5fMFFhXDxfnz7SSUJWEJZ5CH7zLmwvHpUdejAwX2KRHkSTLC1VKXeTOxD8neU+1852Ia5Wqcg==","signatures":[{"sig":"MEUCIQCwQMb6G1H9xQykYO8d7s0vf/ZrPkAv19RCUPFbEV8dXQIgOr9gIEWyzhs9ySJiFTX5pdJx45/B/opXonJC/QXdjnE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68680},"type":"module","engines":{"node":">=22.5.0"},"scripts":{"dev":"tsup --watch","lint":"eslint .","test":"node --import tsx --test src/**/*.test.ts","build":"tsup","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"d0zingcat","email":"iamtangli42@gmail.com"},"repository":{"url":"https://github.com/d0zingcat/claude-profiles.git","type":"git"},"description":"CLI tool to manage and switch between multiple Claude API endpoint profiles","directories":{},"_nodeVersion":"26.4.0","dependencies":{"commander":"^13.1.0","@inquirer/prompts":"^8.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","tsup":"^8.5.0","eslint":"^9.39.2","@eslint/js":"^9.39.2","typescript":"^5.8.3","@types/node":"^22.15.21","typescript-eslint":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/claude-profiles_0.2.0_1783260675809_0.1689673299451615","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@d0zingcat/claude-profiles","version":"0.2.1","description":"CLI tool to manage and switch between multiple Claude API endpoint profiles","publishConfig":{"access":"public"},"type":"module","bin":{"claude-profiles":"dist/cli.js","clp":"dist/cli.js"},"scripts":{"build":"tsup","dev":"tsup --watch","lint":"eslint .","typecheck":"tsc --noEmit","test":"node --import tsx --test src/**/*.test.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm build","prepublishOnly":"pnpm build"},"keywords":["claude","anthropic","api","profile","switch"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/d0zingcat/claude-profiles.git"},"engines":{"node":">=22.5.0"},"dependencies":{"@inquirer/prompts":"^8.5.2","commander":"^13.1.0"},"devDependencies":{"@eslint/js":"^9.39.2","@types/node":"^22.15.21","eslint":"^9.39.2","tsup":"^8.5.0","tsx":"^4.20.6","typescript":"^5.8.3","typescript-eslint":"^8.46.2"},"gitHead":"23a8b7f8b11fd7cb38b143e7ef95568f9796791f","_id":"@d0zingcat/claude-profiles@0.2.1","bugs":{"url":"https://github.com/d0zingcat/claude-profiles/issues"},"homepage":"https://github.com/d0zingcat/claude-profiles#readme","_nodeVersion":"26.7.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-mABS3MEl0PyFwOybdddxlhVSOG9v52rKXo2NvZ+i2OWv+7AOhErfvbCPHhcKkTWkaHMdwfopq1QyQdyX0obAug==","shasum":"534d570c502e0d6da4934a2304d857ae3c49bf3a","tarball":"https://registry.npmjs.org/@d0zingcat/claude-profiles/-/claude-profiles-0.2.1.tgz","fileCount":4,"unpackedSize":69427,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDULP4ratT76jaNq5m73alcqoLEG/kPnF45YTc6oEpqtgIhAOPYcsEjSQ7Av6ClRDfpXHjB9nCeEkoO60WV9WMx7o/k"}]},"_npmUser":{"name":"d0zingcat","email":"iamtangli42@gmail.com"},"directories":{},"maintainers":[{"name":"d0zingcat","email":"iamtangli42@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-profiles_0.2.1_1786959861659_0.6592012870948949"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-24T01:54:47.837Z","modified":"2026-08-17T09:44:22.085Z","0.1.0":"2026-06-24T01:54:48.193Z","0.1.1":"2026-06-25T14:22:13.575Z","0.2.0":"2026-07-05T14:11:15.942Z","0.2.1":"2026-08-17T09:44:21.818Z"},"license":"MIT","keywords":["claude","anthropic","api","profile","switch"],"repository":{"type":"git","url":"git+https://github.com/d0zingcat/claude-profiles.git"},"description":"CLI tool to manage and switch between multiple Claude API endpoint profiles","maintainers":[{"name":"d0zingcat","email":"iamtangli42@gmail.com"}],"readme":"# claude-profiles\n\n轻量 CLI 工具，用于在多个 Claude API 端点配置之间管理和切换。类似 [cc-switch](https://github.com/farion1231/cc-switch)，但只聚焦 Claude Code 的端点切换。\n\n**不想读文档？** 看约 1 分钟的终端演示：\n\n[![asciicast](https://asciinema.org/a/vO1bi0JTeGspfhD8.svg)](https://asciinema.org/a/vO1bi0JTeGspfhD8)\n\n## 安装\n\n```bash\n# 从 npm 安装（推荐）\npnpm install -g @d0zingcat/claude-profiles\n# 或\nnpm install -g @d0zingcat/claude-profiles\n\n# 从源码安装\ngit clone https://github.com/d0zingcat/claude-profiles.git\ncd claude-profiles\npnpm install && pnpm build\npnpm install -g .\n```\n\n安装后可使用 `claude-profiles` 或缩写 `clp`。\n\n> npm 上的 `claude-profiles` 是另一个项目；本工具发布为 `@d0zingcat/claude-profiles`。\n\n## 快速开始\n\n```bash\n# 从当前 ~/.claude/settings.json 导入为 profile\nclaude-profiles add work --from-current\n\n# 交互式添加\nclaude-profiles add\n\n# 交互式切换\nclaude-profiles use\n\n# 临时用某 profile 启动 Claude Code（不改动持久配置）\nclaude-profiles run\n\n# 指定 profile 启动，并把额外参数传给 claude\nclaude-profiles run work -- --add-dir ./src\n\n# 命令行添加（跳过交互）\nclaude-profiles add proxy \\\n  --url https://api.example.com \\\n  --token sk-xxx \\\n  --apply\n\n# 命令行切换\nclaude-profiles use proxy\n\n# 一键还原到切换前\nclaude-profiles restore\n\n# 还原到 Claude 官方配置\nclaude-profiles official\n\n# 交互式切换（含官方配置选项）\nclaude-profiles use\n\n# 交互管理备份（Esc 返回上一步）\nclaude-profiles backups\n\n# 仅列出，不交互\nclaude-profiles backups --list\n\n# 直接进入删除（多选）\nclaude-profiles backups --delete\n\n# 交互式选择备份还原\nclaude-profiles restore\n\n# 快速还原最近一次\nclaude-profiles undo\n\n# 查看当前配置\nclaude-profiles current\n\n# 从 cc-switch 导入 Claude provider\nclaude-profiles import cc-switch\n\n# 非交互导入全部，并切换到 cc-switch 当前 provider\nclaude-profiles import cc-switch --all --apply-current\n\n# 导出 profiles（默认包含认证信息，适合迁移）\nclaude-profiles export profiles-export.json\n\n# 导出时排除 Token/API Key\nclaude-profiles export public-profiles.json --no-secrets\n\n# 从导出文件导入全部 profile\nclaude-profiles import profiles profiles-export.json --all\n\n# 覆盖同名 profile，并导入后切换\nclaude-profiles import profiles profiles-export.json --all --overwrite --apply work\n\n# 交互式编辑\nclaude-profiles edit work\n\n# 删除 profile\nclaude-profiles remove proxy\n```\n\n## 工作原理\n\n- Profile 保存在 `~/.claude-profiles/profiles.json`\n- 切换时更新 `~/.claude/settings.json` 中的 `env` 字段（`ANTHROPIC_BASE_URL`、`ANTHROPIC_AUTH_TOKEN`、`ANTHROPIC_CUSTOM_MODEL_OPTION*` 等）；这些键会按目标 profile 整组替换，不会把上一个 profile 的值留下来\n- **切换前**会将完整的 `settings.json` 备份到 `~/.claude-profiles/backups/`，可用 `restore` 一键还原\n- 其他 settings 字段（如 `permissions`、`model`）在切换时从备份中完整保留\n\n## 命令\n\n| 命令 | 说明 |\n|------|------|\n| `list` / `ls` | 列出所有 profile |\n| `add [name]` | 交互式添加 profile（提供完整参数时为命令行模式） |\n| `use [name]` / `switch` | 交互式切换 profile 或官方配置 |\n| `run [name]` | 临时用 profile 启动 Claude Code，退出后持久配置不变 |\n| `official` | 还原到 Claude 官方配置 |\n| `restore [id]` | 交互式或指定 ID 还原备份 |\n| `undo` | 快速还原最近一次备份 |\n| `backups` / `backup` | 交互管理备份（`--list` 仅列出，`--restore` / `--delete` 直达） |\n| `backups delete [id]` | 删除备份（支持交互多选） |\n| `current` | 显示当前生效配置 |\n| `import cc-switch` | 从 cc-switch 数据库导入 Claude provider |\n| `export [file]` | 导出 profile 到 JSON 文件 |\n| `import profiles [file]` | 从 JSON 文件导入 profile |\n| `edit [name]` | 交互式编辑 profile |\n| `remove <name>` / `rm` | 删除 profile |\n\n### add 选项\n\n| 选项 | 说明 |\n|------|------|\n| `--url <url>` | API 端点 |\n| `--token <token>` | ANTHROPIC_AUTH_TOKEN |\n| `--api-key <key>` | ANTHROPIC_API_KEY |\n| `--from-current` | 从当前 Claude 配置导入 |\n| `--apply` | 保存后立即切换 |\n\n### import cc-switch 选项\n\n| 选项 | 说明 |\n|------|------|\n| `--db <path>` | cc-switch 数据库路径（默认 `~/.cc-switch/cc-switch.db`） |\n| `--all` | 导入全部可导入的 provider |\n| `--overwrite` | 覆盖同名 profile |\n| `--apply-current` | 导入后切换到 cc-switch 当前 provider |\n\n> 官方 OAuth 登录类 provider（无 `ANTHROPIC_BASE_URL`）会自动跳过。\n\n### export 选项\n\n| 选项 | 说明 |\n|------|------|\n| `--no-secrets` | 不导出 `ANTHROPIC_AUTH_TOKEN` / `ANTHROPIC_API_KEY` |\n| `--profile <name>` | 只导出指定 profile，可重复传入 |\n\n> 默认导出包含认证信息，适合个人设备迁移；分享文件前请使用 `--no-secrets`。\n\n### import profiles 选项\n\n| 选项 | 说明 |\n|------|------|\n| `--all` | 导入全部 profile（非交互） |\n| `--overwrite` | 覆盖同名 profile |\n| `--apply <name>` | 导入后切换到指定 profile |\n\n`file` 为 `-` 时，`export` 输出到 stdout，`import profiles` 从 stdin 读取。\n\n## 开发\n\n```bash\npnpm install\npnpm build\nnode dist/cli.js list\n```\n","readmeFilename":"README.md","homepage":"https://github.com/d0zingcat/claude-profiles#readme","bugs":{"url":"https://github.com/d0zingcat/claude-profiles/issues"}}