@lkangd/cc-env 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/LICENSE +15 -0
  2. package/dist/cli.js +68 -6
  3. package/dist/commands/completion.js +60 -0
  4. package/dist/commands/doctor.js +73 -0
  5. package/dist/commands/preset/edit.js +16 -11
  6. package/dist/commands/preset/rename.js +16 -0
  7. package/dist/commands/run.js +9 -1
  8. package/dist/ink/preset-edit-app.js +112 -0
  9. package/package.json +11 -2
  10. package/.claude/settings.json +0 -6
  11. package/.claude/settings.local.json +0 -8
  12. package/.nvmrc +0 -1
  13. package/CHANGELOG.md +0 -71
  14. package/docs/product-specs/index.draft.md +0 -106
  15. package/docs/product-specs/index.md +0 -911
  16. package/docs/product-specs/optional.md +0 -42
  17. package/docs/references/claude-code-env.md +0 -224
  18. package/docs/superpowers/plans/2026-04-24-cc-env-init-shell-migration.md +0 -1331
  19. package/docs/superpowers/plans/2026-04-24-cc-env.md +0 -1666
  20. package/docs/superpowers/plans/2026-04-26-preset-create-interactive-refactor.md +0 -1432
  21. package/docs/superpowers/specs/2026-04-24-cc-env-design.md +0 -438
  22. package/docs/superpowers/specs/2026-04-24-cc-env-init-shell-migration-design.md +0 -181
  23. package/docs/superpowers/specs/2026-04-26-preset-create-interactive-refactor-design.md +0 -78
  24. package/src/cli.ts +0 -340
  25. package/src/commands/init.ts +0 -139
  26. package/src/commands/preset/create.ts +0 -96
  27. package/src/commands/preset/delete.ts +0 -62
  28. package/src/commands/preset/show.ts +0 -51
  29. package/src/commands/restore.ts +0 -150
  30. package/src/commands/run.ts +0 -158
  31. package/src/core/errors.ts +0 -13
  32. package/src/core/find-claude.ts +0 -70
  33. package/src/core/format.ts +0 -29
  34. package/src/core/fs.ts +0 -18
  35. package/src/core/gitignore.ts +0 -26
  36. package/src/core/logger.ts +0 -11
  37. package/src/core/mask.ts +0 -17
  38. package/src/core/paths.ts +0 -41
  39. package/src/core/process-env.ts +0 -11
  40. package/src/core/schema.ts +0 -55
  41. package/src/core/spawn.ts +0 -36
  42. package/src/flows/init-flow.ts +0 -61
  43. package/src/flows/preset-create-flow.ts +0 -129
  44. package/src/flows/restore-flow.ts +0 -144
  45. package/src/ink/init-app.tsx +0 -110
  46. package/src/ink/preset-create-app.tsx +0 -451
  47. package/src/ink/preset-delete-app.tsx +0 -114
  48. package/src/ink/preset-show-app.tsx +0 -76
  49. package/src/ink/restore-app.tsx +0 -230
  50. package/src/ink/run-preset-select-app.tsx +0 -83
  51. package/src/ink/summary.tsx +0 -91
  52. package/src/services/claude-settings-env-service.ts +0 -72
  53. package/src/services/history-service.ts +0 -48
  54. package/src/services/preset-service.ts +0 -72
  55. package/src/services/project-env-service.ts +0 -128
  56. package/src/services/project-state-service.ts +0 -31
  57. package/src/services/settings-env-service.ts +0 -40
  58. package/src/services/shell-env-service.ts +0 -112
  59. package/src/types.d.ts +0 -19
  60. package/tests/cli/help.test.ts +0 -133
  61. package/tests/cli/init.test.ts +0 -76
  62. package/tests/cli/restore.test.ts +0 -172
  63. package/tests/commands/create.test.ts +0 -263
  64. package/tests/commands/output.test.ts +0 -119
  65. package/tests/commands/run.test.ts +0 -218
  66. package/tests/core/gitignore.test.ts +0 -98
  67. package/tests/core/paths.test.ts +0 -24
  68. package/tests/core/schema-mask.test.ts +0 -182
  69. package/tests/core/spawn.test.ts +0 -47
  70. package/tests/flows/init-flow.test.ts +0 -40
  71. package/tests/flows/preset-create-flow.test.ts +0 -225
  72. package/tests/flows/restore-flow.test.ts +0 -157
  73. package/tests/integration/init-restore.test.ts +0 -406
  74. package/tests/services/claude-shell.test.ts +0 -183
  75. package/tests/services/storage.test.ts +0 -143
  76. package/tsconfig.build.json +0 -9
  77. package/tsconfig.json +0 -22
  78. package/vitest.config.ts +0 -8
@@ -1,106 +0,0 @@
1
- # 从零开始构建一个基于 nodejs 的命令行工具
2
-
3
- ## 背景
4
-
5
- claude code cli 在启动的时候,会读取环境变量中需要的配置,以作为启动参数,比如模型的基础请求地址:ANTHROPIC_BASE_URL。这些配置一般定义在 ~/.claude/settings.json 中的 env 字段。
6
- 现在有一个痛点,比如我有多家模型提供商,如果将配置写在 ~/.claude/settings.json 中,那么只能同时使用一家模型提供商,因此需要提供另外一种方式,让 claude code 在启动的时候可以指定提供商或者其他所有 claude code 支持的环境变量。
7
-
8
- ## 功能描述
9
-
10
- ### 使用方式
11
-
12
- 在终端命令行下,提供一种如下的调用方式来启动 claude code:
13
-
14
- ```bash
15
- cc-env --preset=some-preset claude
16
- ```
17
-
18
- 运行后 cc-env 会将 some-preset(提前设置过的) 对应的一组预置的环境变量(claude code 支持),让 claude code 读到运行时配置。
19
-
20
- ### 初始化
21
-
22
- 使用 cc-env 进行初始化,主要做的是将 ~/.claude/settings.json 中 env 的字段,移动到全局环境变量中,调用后展示 env 中已经定义的环境变量,默认勾选中以下字段:
23
-
24
- - ANTHROPIC_AUTH_TOKEN
25
- - ANTHROPIC_BASE_URL
26
- - ANTHROPIC_DEFAULT_HAIKU_MODEL
27
- - ANTHROPIC_DEFAULT_OPUS_MODEL
28
- - ANTHROPIC_DEFAULT_SONNET_MODEL
29
- - ANTHROPIC_REASONING_MODEL
30
-
31
- ```bash
32
- cc-env --init // or cc-env -i
33
- ```
34
-
35
- 初始化移动过的记录需要保存在 ~/.cc-env 文件夹中,每一次初始化都要记录,以便恢复的时候,可以让用户选择。
36
-
37
- 初始化可以重复执行,如果有字段覆盖,需要提示用户确认,一定要用户输入 Y 确认。
38
-
39
- ### 恢复
40
-
41
- 将初始化的移动的环境变量移动回 ~/.claude/settings.json 中 env 内。
42
-
43
- 通过文件夹的方式展示每一次初始化记录和对应的字段给用户查看,左边栏是时间(从上到下,倒叙),右边栏是涉及变动的字段。用户选中确认后,按 Y 确认回写。
44
-
45
- ### 创建预设
46
-
47
- 参数你根据最合适的方式定义。
48
-
49
- 预设默认放置在 ~/.cc-env 文件夹中,但是可以指定到当前文件夹下,如果是当前文件夹下,则自动创建 .cc-env 目录,并存放为 env.json,重复存放覆盖。
50
-
51
- #### 展示预设列表
52
-
53
- 通过文件夹的方式展示所有预设,左边栏是时间(从上到下,倒叙),右边栏是对应的环境变量字段。
54
-
55
- #### 文件导入
56
-
57
- 支持指定 claude code settings.json 文件路径,但是只会读取里面的 env 字段。
58
-
59
- 支持 yaml 格式的文件,支持 json。
60
-
61
- 限制:只支持 value 字段为非嵌套对象的输入,自动忽略不合法的值
62
-
63
- #### 交互式导入
64
-
65
- 支持直接贴多行的 yaml 的输入和 json 输入。
66
-
67
- 限制:只支持 value 字段为非嵌套对象的输入,自动忽略不合法的值
68
-
69
- #### 勾选时设置
70
-
71
- 基于 claude code 官方支持 env,让用户勾选需要设置的环境变量值,确认依次录入具体的值,默认勾选中以下字段:
72
-
73
- - ANTHROPIC_AUTH_TOKEN
74
- - ANTHROPIC_BASE_URL
75
- - ANTHROPIC_DEFAULT_HAIKU_MODEL
76
- - ANTHROPIC_DEFAULT_OPUS_MODEL
77
- - ANTHROPIC_DEFAULT_SONNET_MODEL
78
- - ANTHROPIC_REASONING_MODEL
79
-
80
- 限制:只支持 value 字段为非嵌套对象的输入,自动忽略不合法的值
81
-
82
- #### 删除预设
83
-
84
- 参数你根据最合适的方式定义。
85
-
86
- 展示预设列表,选中确认后,输入 Y 删除
87
-
88
- #### 编辑预设
89
-
90
- 参数你根据最合适的方式定义。
91
-
92
- 交互方式你来定。
93
-
94
- #### 读取目录下的预设
95
-
96
- cc-env 在启动时候,检查当前目录下 .cc-env/env.json 或者 .cc-env/env.yaml,如果存在,则当作较高优先级的环境变量使用。
97
-
98
- ## 要求
99
-
100
- ### 技术栈
101
-
102
- 基于 nodejs 为 base,选用最佳的 cli 实现技术栈
103
-
104
- ## 引用
105
-
106
- ### [claude code 官方支持 env](../references/claude-code-env.md)