{"_id":"@botaoxyz/akm","name":"@botaoxyz/akm","dist-tags":{"latest":"1.2.0"},"versions":{"1.2.0":{"name":"@botaoxyz/akm","version":"1.2.0","description":"Anthropic Key Management - CLI tool for managing Anthropic API keys and environments","type":"module","main":"dist/index.js","bin":{"akm":"dist/index.js"},"scripts":{"dev":"tsdown --watch","build":"tsdown","test":"vitest","test:coverage":"vitest --coverage","lint":"eslint src","lint:fix":"eslint src --fix","format":"prettier --write \"src/**/*.ts\"","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"keywords":["anthropic","api","key","management","cli","environment","configuration"],"author":{"name":"Botao"},"license":"MIT","engines":{"node":">=18.0.0"},"dependencies":{"chalk":"^5.6.2","commander":"^14.0.1","ini":"^5.0.0","proper-lockfile":"^4.1.2"},"devDependencies":{"@eslint/js":"^9.37.0","@types/ini":"^4.1.1","@types/node":"^24.7.0","@types/proper-lockfile":"^4.1.4","@vitest/coverage-v8":"^3.2.4","eslint":"^9.37.0","prettier":"^3.6.2","tsdown":"^0.12.9","typescript":"^5.9.3","typescript-eslint":"^8.46.0","vitest":"^3.2.4"},"publishConfig":{"access":"public"},"gitHead":"4464352799bfec74d09adb457af3d531f0a16e2e","_id":"@botaoxyz/akm@1.2.0","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-g1/nBSHCk1Utt1lSYMnOD3VMkIkR3cO86/7/Mh3HsxN8po2IyMie91rHm1WMCM5zga3FO4wvhOlYRA3zOdpLzg==","shasum":"7d4d450b62dafaf680c8849e94d66e1f866230aa","tarball":"https://registry.npmjs.org/@botaoxyz/akm/-/akm-1.2.0.tgz","fileCount":3,"unpackedSize":32935,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFxQnri4/Ncw55vuoXUVhPjPWGSAv4AnJvu3aBA2eThFAiEA+z/9E2yGzjl4TEB45KpYjWrUnWrimaGFOmqRQ+c9TX8="}]},"_npmUser":{"name":"melody0z","email":"botaoxyz@gmail.com"},"directories":{},"maintainers":[{"name":"melody0z","email":"botaoxyz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/akm_1.2.0_1771988492242_0.11437053042256351"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-25T03:01:32.115Z","1.2.0":"2026-02-25T03:01:32.411Z","modified":"2026-02-25T03:01:32.683Z"},"maintainers":[{"name":"melody0z","email":"botaoxyz@gmail.com"}],"description":"Anthropic Key Management - CLI tool for managing Anthropic API keys and environments","keywords":["anthropic","api","key","management","cli","environment","configuration"],"author":{"name":"Botao"},"license":"MIT","readme":"# akm - Anthropic Key Management\n\n```\n           █████\n          ░░███\n  ██████   ░███ █████ █████████████\n ░░░░░███  ░███░░███ ░░███░░███░░███\n  ███████  ░██████░   ░███ ░███ ░███\n ███░░███  ░███░░███  ░███ ░███ ░███\n░░████████ ████ █████ █████░███ █████\n ░░░░░░░░ ░░░░ ░░░░░ ░░░░░ ░░░ ░░░░░\n\n```\n\n一个用于管理 Anthropic API 密钥和环境变量的命令行工具。\n\n## 简介\n\nakm (Anthropic Key Management) 是一个轻量级的 CLI 工具，用于快速切换不同的 Anthropic 代理配置。它通过管理 `~/.claude/settings.json` 和 `~/.claude/config.json` 文件来设置环境变量和 API 密钥，让你能够轻松地在不同的 API 代理服务之间切换。同时支持 Claude Code 和 Claude Code for VS Code v2.0+ 插件。\n\n## 特性\n\n- 🔐 管理多个 Anthropic API 代理配置\n- 🚀 快速切换不同的代理环境\n- 📝 简单易用的命令行界面\n- 🔒 使用文件锁确保配置安全\n- 🌐 支持连接性测试\n- 💻 同时兼容 Claude Code 和 Claude Code for VS Code v2.0+ 插件\n\n## 安装\n\n```bash\nnpm install -g @xes/akm\n```\n\n## 使用方法\n\n### 总览\n\n```\nUsage: akm [options] [command]\n\nOptions:\n  -v, --version                    display version number\n  --verbose                        output extra debugging information\n  --debug                          output complete debugging information (includes HTTP requests & response headers)\n  --timeout <seconds>              override default timeout for test command (in seconds) (default: \"10\")\n  -h, --help                       display help for command\n\nCommands:\n  ls|list                          list all proxy configurations with current marker\n  add <name> <base_url> <api_key> [model] [small_model]  add a new proxy configuration\n  use <name>                       switch to a specific proxy configuration\n  unuse <name>                     stop using a specific proxy configuration\n  del|delete <name>                delete a proxy configuration\n  rename <name> <new_name>         rename a proxy configuration\n  test <name>                      test connectivity to a proxy configuration\n  help [command]                   display help for command\n\nExamples:\n  akm ls                           # list all configurations\n  akm add kimi https://api.moonshot.cn/anthropic sk-xxx  # add new configuration\n  akm add kimi https://api.moonshot.cn/anthropic sk-xxx kimi-k2-turbo-preview kimi-k2-turbo-preview  # add with models\n  akm use kimi                     # switch to kimi (immediately effective)\n  akm unuse kimi                   # stop using any proxy\n  akm test kimi                    # test kimi connection\n  akm del kimi                     # delete kimi\n  akm rename kimi moonshot         # rename configuration\n\nGlobal Options:\n  --verbose                        Show detailed output\n  --debug                          Show debug information including HTTP details\n  --timeout <sec>                  Set timeout for test command (default: 10s)\n```\n\n### 添加代理配置\n\n```bash\n# 添加基本代理配置\nakm add kimi https://api.moonshot.cn/anthropic sk-your-api-key\n\n# 添加带模型配置的代理\nakm add kimi https://api.moonshot.cn/anthropic sk-your-api-key kimi-k2-turbo-preview kimi-k2-turbo-preview\n```\n\n### 列出所有配置\n\n```bash\nakm ls\n```\n\n### 切换到指定代理\n\n```bash\nakm use kimi\n```\n\n### 停止使用当前代理\n\n```bash\nakm unuse kimi\n```\n\n### 测试代理连接\n\n```bash\nakm test kimi\n```\n\n### 删除代理配置\n\n```bash\nakm del kimi\n```\n\n### 重命名代理配置\n\n```bash\nakm rename kimi moonshot\n```\n\n## 配置文件\n\n### ~/.claude/settings.json\n\nClaude CLI 的配置文件，akm 会自动管理其中的环境变量：\n\n```json\n{\n  \"env\": {\n    \"ANTHROPIC_BASE_URL\": \"https://api.anthropic.com\",\n    \"ANTHROPIC_AUTH_TOKEN\": \"sk-xxxxx\",\n    \"ANTHROPIC_MODEL\": \"kimi-k2-turbo-preview\",\n    \"ANTHROPIC_SMALL_FAST_MODEL\": \"kimi-k2-turbo-preview\"\n  }\n}\n```\n\n> 注意：`ANTHROPIC_MODEL` 和 `ANTHROPIC_SMALL_FAST_MODEL` 仅在配置中提供了相应的模型参数时才会被设置。\n\n### ~/.claude/config.json\n\nClaude Code for VS Code 插件的配置文件，akm 会自动管理 API 密钥：\n\n```json\n{\n  \"primaryApiKey\": \"sk-xxxxx\"\n}\n```\n\n> 从 v1.2.0 开始，akm 同时支持 Claude Code 和 Claude Code for VS Code v2.0+ 插件。执行 `akm use` 命令时会同时更新两个配置文件。\n\n## 命令详情\n\n| 命令 | 描述 | 示例 |\n| --- | --- | --- |\n| `add <name> <url> <key> [model] [small_model]` | 添加新的代理配置，可选择指定模型 | `akm add proxy1 https://api.example.com sk-key model_id small_model_id` |\n| `ls` | 列出所有配置，标记当前使用的 | `akm ls` |\n| `use <name>` | 切换到指定代理 | `akm use proxy1` |\n| `unuse <name>` | 停止使用当前代理 | `akm unuse proxy1` |\n| `test [name]` | 测试代理连接（默认测试当前代理） | `akm test proxy1` |\n| `del <name>` | 删除指定配置 | `akm del proxy1` |\n| `rename <old> <new>` | 重命名配置 | `akm rename proxy1 proxy2` |\n\n## 开发\n\n### 环境要求\n\n- Node.js >= 18.0.0\n- pnpm（推荐）或 npm\n\n### 开发命令\n\n```bash\n# 安装依赖\npnpm install\n\n# 开发模式（监视文件变化）\npnpm dev\n\n# 构建项目\npnpm build\n\n# 运行测试\npnpm test\n\n# 运行带覆盖率的测试\npnpm test:coverage\n\n# 类型检查\npnpm typecheck\n\n# 代码检查\npnpm lint\n\n# 修复代码格式\npnpm lint:fix\n\n# 格式化代码\npnpm format\n```\n\n### 项目结构\n\n```\nsrc/\n├── index.ts        # CLI 入口，使用 commander 定义命令\n├── actions.ts      # 所有命令的具体实现逻辑\n├── config.ts       # ConfigManager - 管理 ~/.akmrc 配置文件\n├── shell.ts        # ClaudeSettingsManager - 管理 ~/.claude/settings.json\n├── services.ts     # API 服务，用于 akm test 命令\n├── logger.ts       # 日志工具，基于 chalk\n├── constants.ts    # 常量定义\n└── types.ts        # TypeScript 类型定义\n```\n\n## 技术栈\n\n- **运行时**: Node.js ≥ 18, TypeScript\n- **CLI 框架**: commander\n- **配置解析**: ini\n- **终端样式**: chalk\n- **文件锁定**: proper-lockfile\n- **测试框架**: vitest\n- **构建工具**: tsdown\n- **代码检查**: ESLint 9, typescript-eslint 8\n\n## 错误处理\n\n项目使用自定义的 `AkmError` 类统一处理错误，包含明确的退出码：\n\n- `0`: 成功\n- `1`: 参数错误/重名冲突\n- `2`: 网络失败/API 失败\n- `3`: 配置不存在\n- `4`: 文件写入失败\n- `5`: 未知异常\n\n## CHANGELOG\n\n### [1.2.0] - 2025-10-09\n\n#### Added\n\n- 支持 Claude Code for VS Code v2.0+ 插件兼容性\n- 新增对 `~/.claude/config.json` 文件的自动管理\n- 执行 `akm use` 命令时会同时更新 `settings.json` 和 `config.json` 文件\n- 在 `config.json` 中设置 `primaryApiKey` 字段，确保 VS Code 插件正常工作\n\n#### Updated\n\n- 优化了 `ClaudeSettingsManager` 类，新增 `updatePrimaryApiKey()` 方法\n- 更新了 `onUse()` 命令逻辑，同时管理两个配置文件\n- 完善了文档说明，添加了 VS Code 插件兼容性的相关信息\n\n### [1.1.0] - 2025-08-25\n\n#### Added\n\n- 支持可选的模型参数：`akm add` 命令现在接受可选的 `[model]` 和 `[small_model]` 参数\n- 新增环境变量 `ANTHROPIC_MODEL` 和 `ANTHROPIC_SMALL_FAST_MODEL` 的自动管理\n- 模型配置会保存到 `~/.akmrc` 配置文件中，并在使用时自动设置相应的环境变量\n- 向后兼容：现有配置不受影响，模型参数完全可选\n\n#### Updated\n\n- 更新了所有相关文档，包括 README.md、设计文档和产品需求文档\n- 优化了代码结构以支持可选的模型配置\n- 更新了示例和帮助信息\n\n### [1.0.2] - 2025-07-24\n\n#### Changed\n\n- 从 package.json 动态读取版本号，确保版本一致性\n- 优化版本管理机制\n\n### [1.0.1] - 2025-07-24\n\n#### Changed\n\n- 将环境变量名称从 `ANTHROPIC_API_KEY` 更改为 `ANTHROPIC_AUTH_TOKEN`\n- 更新所有文档和代码中的环境变量引用\n- 添加向后兼容性处理，自动清理旧的 `ANTHROPIC_API_KEY` 配置\n\n#### Updated Files\n\n- 源代码：`constants.ts`, `shell.ts`\n- 文档：`README.md`, `CLAUDE.md`, `prd.md`, `design-doc.md`\n\n### [1.0.0] - 2025-07-15\n\n#### Added\n\n- 初始版本发布\n- 支持管理多个 Anthropic API 代理配置\n- 提供完整的 CLI 命令：add, use, unuse, del, rename, test, ls\n- 自动管理 `~/.claude/settings.json` 文件\n- 支持连接性测试功能\n- 完整的文档和开发指南\n\n## 许可证\n\nMIT License\n","readmeFilename":"README.md","_rev":"1-970982b660d4dca9d6e31f9322c2dfc9"}