easyai 2.1.0 → 2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 75408704158dabc22070ec012de28eaced8080bbfc7ebd4b45e5c0481bdfe071
4
- data.tar.gz: 58b0d079f864fc04c3cb82690af5f0e904b0eef17a4737dc44fa83443a66bd56
3
+ metadata.gz: 1913c617c3cd8a792e90964f704dd92c2ca3795925aa4826065e9235ba6c732a
4
+ data.tar.gz: db3b5e247223d08364d4788b499e43cfb838866c22de215c97a3c44a864ba60f
5
5
  SHA512:
6
- metadata.gz: 1e6e34f8e8d716042ac88d690a82a4f38a5a1a61cc1cd8e7a5fc32f09f611233d6b48439fa1234c29dd392bb021b8a7f6b8138ea9c5022888382bcb59af8259f
7
- data.tar.gz: 45990675aba9f65881fa41946539ea5cffb626c0e1adf1a48f2265deb18620125040436d391b581ce71c24f86d90c53ecdaf4f8eca1e13940f89dde8e6ed8aa4
6
+ metadata.gz: 30f3c3c3dbc3fbbc916893737ba9ee15b922679c2cab0b36ac377d5527a576e355712fc4c5e1a00981c1d04a4af970cd483dc11c13ae2960c574343d3b9d6bf7
7
+ data.tar.gz: 98c6112929ddf724f2dc1e6642d9b5055968f7ff05d6b987b6dd6cc60ae6b02ef9c636ba4c90640f232122e47ef1e391ac1c0be0245b828caf4ccdce5547c4be
@@ -42,21 +42,21 @@ DESC
42
42
  'claude_official' => {
43
43
  label: 'Claude 官方',
44
44
  required_env: %w[ANTHROPIC_AUTH_TOKEN],
45
- optional_env: {
45
+ fixed_env: {
46
46
  'ANTHROPIC_BASE_URL' => 'https://api.anthropic.com'
47
47
  }
48
48
  },
49
49
  'kimi' => {
50
50
  label: 'Kimi(Moonshot)',
51
51
  required_env: %w[ANTHROPIC_AUTH_TOKEN],
52
- optional_env: {
52
+ fixed_env: {
53
53
  'ANTHROPIC_BASE_URL' => 'https://api.kimi.com/coding/'
54
54
  }
55
55
  },
56
56
  'deepseek' => {
57
57
  label: 'DeepSeek',
58
58
  required_env: %w[ANTHROPIC_AUTH_TOKEN],
59
- optional_env: {
59
+ fixed_env: {
60
60
  'ANTHROPIC_BASE_URL' => 'https://api.deepseek.com/anthropic',
61
61
  'ANTHROPIC_MODEL' => 'deepseek-v4-pro[1m]',
62
62
  'ANTHROPIC_DEFAULT_OPUS_MODEL' => 'deepseek-v4-pro[1m]',
@@ -69,7 +69,7 @@ DESC
69
69
  'aliqwen' => {
70
70
  label: '阿里千问 Coding Plan(兼容 Anthropic 协议)',
71
71
  required_env: %w[ANTHROPIC_AUTH_TOKEN],
72
- optional_env: {
72
+ fixed_env: {
73
73
  'ANTHROPIC_BASE_URL' => 'https://coding.dashscope.aliyuncs.com/apps/anthropic',
74
74
  'ANTHROPIC_MODEL' => 'qwen3.6-plus',
75
75
  'ANTHROPIC_DEFAULT_OPUS_MODEL' => 'qwen3.6-plus',
@@ -83,7 +83,7 @@ DESC
83
83
  'minimax' => {
84
84
  label: 'MiniMax(兼容 Anthropic 协议)',
85
85
  required_env: %w[ANTHROPIC_AUTH_TOKEN],
86
- optional_env: {
86
+ fixed_env: {
87
87
  'ANTHROPIC_BASE_URL' => 'https://api.minimaxi.com/anthropic',
88
88
  'ANTHROPIC_MODEL' => 'MiniMax-M2.7-highspeed',
89
89
  'ANTHROPIC_DEFAULT_SONNET_MODEL' => 'MiniMax-M2.7-highspeed',
@@ -94,12 +94,13 @@ DESC
94
94
  'glm' => {
95
95
  label: 'GLM Coding Plan(bigmodel.cn)',
96
96
  required_env: %w[ANTHROPIC_AUTH_TOKEN],
97
- optional_env: {
97
+ fixed_env: {
98
98
  'ANTHROPIC_BASE_URL' => 'https://open.bigmodel.cn/api/anthropic',
99
99
  'API_TIMEOUT_MS' => '3000000',
100
- 'ANTHROPIC_DEFAULT_OPUS_MODEL' => 'glm-5.1',
101
- 'ANTHROPIC_DEFAULT_SONNET_MODEL' => 'glm-5-turbo',
102
- 'ANTHROPIC_DEFAULT_HAIKU_MODEL' => 'glm-4.5-air'
100
+ 'CLAUDE_CODE_AUTO_COMPACT_WINDOW' => '1000000',
101
+ 'ANTHROPIC_DEFAULT_OPUS_MODEL' => 'glm-5.2[1m]',
102
+ 'ANTHROPIC_DEFAULT_SONNET_MODEL' => 'glm-5.2[1m]',
103
+ 'ANTHROPIC_DEFAULT_HAIKU_MODEL' => 'glm-4.7'
103
104
  }
104
105
  },
105
106
  'longcat' => {
@@ -506,7 +507,8 @@ DESC
506
507
  KNOWN_PLATFORMS[tool].keys.reject { |p| Config::LocalConfig.disabled_platform?(tool, p) }
507
508
  end
508
509
 
509
- # 收集单个平台的 env / proxy 数据
510
+ # 收集单个平台的 env 数据(不再交互询问代理:setup 默认不配置 HTTP/HTTPS 代理,
511
+ # 如需代理请用 `easyai setup --edit` 手动向平台补 proxy 字段;runtime 与 --list 仍支持 proxy)
510
512
  def collect_platform_data(tool, platform)
511
513
  spec = KNOWN_PLATFORMS.dig(tool, platform) || {}
512
514
  return collect_chatgpt_subscribe_data if spec[:chatgpt_subscribe]
@@ -526,11 +528,7 @@ DESC
526
528
  env[key] = ask_optional(key, default)
527
529
  end
528
530
 
529
- proxy = ask_proxy
530
-
531
- data = { 'env' => env }
532
- data['proxy'] = proxy unless proxy.empty?
533
- data
531
+ { 'env' => env }
534
532
  end
535
533
 
536
534
  # ChatGPT Subscribe:不录入 API Key,直接复用 ~/.codex 的 ChatGPT OAuth 登录态。
@@ -583,23 +581,6 @@ DESC
583
581
  value
584
582
  end
585
583
 
586
- def ask_proxy
587
- print ' 是否配置 HTTP/HTTPS 代理?(y/N) > '
588
- ans = read_line
589
- return {} unless ans && ans.downcase.start_with?('y')
590
-
591
- print ' HTTP_PROXY (例如 http://127.0.0.1:7890): '
592
- http = read_line
593
- print ' HTTPS_PROXY (回车与 HTTP_PROXY 相同): '
594
- https = read_line
595
- https = http if https.nil? || https.empty?
596
-
597
- proxy = {}
598
- proxy['HTTP_PROXY'] = http unless http.nil? || http.empty?
599
- proxy['HTTPS_PROXY'] = https unless https.nil? || https.empty?
600
- proxy
601
- end
602
-
603
584
  def read_line
604
585
  line = $stdin.gets
605
586
  raise Interrupt, '用户取消输入' if line.nil?
@@ -1,3 +1,3 @@
1
1
  module EasyAI
2
- VERSION = '2.1.0'
2
+ VERSION = '2.2.0'
3
3
  end
@@ -0,0 +1,117 @@
1
+ # EasyAI 使用说明
2
+
3
+ 一个命令,统一启动 **Claude / Codex** 等 AI 命令行工具。
4
+
5
+ 凭证、代理、多平台切换都放在一个本地配置文件里;启动时只把环境变量注入子进程,**不污染你的终端**。
6
+
7
+ ---
8
+
9
+ ## 1. 安装
10
+
11
+ ```bash
12
+ gem install easyai # 需要 Ruby >= 3.0
13
+ ```
14
+
15
+ AI CLI 本身需自行安装(EasyAI 只负责帮你启动它们):
16
+
17
+ | 工具 | 安装命令 |
18
+ |------|----------|
19
+ | Claude | `npm install -g @anthropic-ai/claude-code` |
20
+ | Codex | 参考 OpenAI Codex 官方文档 |
21
+
22
+ ---
23
+
24
+ ## 2. 备份已有登录(建议先做)
25
+
26
+ 如果你**已经登录过** Claude Code 或 Codex,配置前先把登录态备份下来,方便日后换机恢复:
27
+
28
+ ```bash
29
+ easyai backup claude # 备份 Claude Code 登录信息
30
+ easyai backup codex # 备份 Codex(ChatGPT 订阅)登录信息
31
+ ```
32
+
33
+ **分别备份哪些信息:**
34
+
35
+ | 命令 | 来源 | 备份内容 |
36
+ |------|------|----------|
37
+ | `backup claude` | `~/.claude.json` | 账号/登录配置(**排除** `projects` 会话历史);macOS 上额外读取钥匙串「Claude Code-credentials」里的 OAuth token |
38
+ | `backup codex` | `~/.codex/auth.json` + `config.toml` | ChatGPT 登录凭证(OAuth token)与全局配置(**排除** `[projects.*]` 本地授信段)|
39
+
40
+ 备份统一写入 `~/.easyai/backup/`(`.claude.json` / `.codex.json`,自动 `chmod 600`),
41
+ **只保留凭证与必要配置,不含会话历史、项目授信等大数据**。没登录过可跳过这一步。
42
+
43
+ > `backup codex` 仅在检测到 ChatGPT 官方登录(OAuth)时才备份;纯第三方 API Key 不在此列。
44
+
45
+ ---
46
+
47
+ ## 3. 首次配置
48
+
49
+ ```bash
50
+ easyai setup
51
+ ```
52
+
53
+ 跟着交互提示走:选择工具 → 选择平台 → 填入 API Key 即可。
54
+
55
+ > 输入 Key 时不回显是正常的,粘贴后直接回车。
56
+
57
+ 配置保存在 `~/.easyai/config.json`,文件权限自动设为私有(`600`)。
58
+
59
+ ---
60
+
61
+ ## 4. 启动使用
62
+
63
+ ```bash
64
+ easyai claude # 配了多个平台时会让你选
65
+ easyai claude --platform=kimi # 直接指定平台
66
+ easyai codex
67
+ ```
68
+
69
+ 启动前会打印当前生效的平台和环境变量(Key 已脱敏),确认无误即进入 AI CLI。
70
+
71
+ 传给 AI CLI 的参数照常写在后面,会原样透传:
72
+
73
+ ```bash
74
+ easyai claude --help # --help 会传给 claude
75
+ ```
76
+
77
+ ---
78
+
79
+ ## 5. 常用配置管理
80
+
81
+ ```bash
82
+ easyai setup --list # 查看当前配置(Key 脱敏)
83
+ easyai setup --add=kimi --tool=claude # 追加/覆盖一个平台
84
+ easyai setup --remove=kimi --tool=claude # 删除一个平台
85
+ easyai setup --edit # 用编辑器直接改配置
86
+ easyai setup --reset # 清空重来
87
+ ```
88
+
89
+ ---
90
+
91
+ ## 6. 其他命令
92
+
93
+ ```bash
94
+ easyai clean # 清理 claude 缓存
95
+ easyai clean all # 清理所有 AI CLI 缓存(不动你的配置)
96
+ easyai clean all --dry-run # 先预览要删什么
97
+
98
+ easyai update # 升级 EasyAI 自身
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 常见问题
104
+
105
+ **Q:换一台电脑怎么迁移?**
106
+ 把整个 `~/.easyai/` 目录拷过去即可——`config.json` 是平台配置,`backup/` 是各 AI CLI 的登录态。
107
+ (内含明文 Key 与登录凭证,注意别外传。)
108
+
109
+ **Q:网络不通导致启动被版本检查卡住?**
110
+ 临时加环境变量跳过:`EASYAI_SKIP_FORCE_UPDATE=1 easyai claude`
111
+
112
+ **Q:想看详细日志?**
113
+ `easyai claude --verbose` 或 `EASYAI_DEBUG=1 easyai claude`
114
+
115
+ ---
116
+
117
+ 有问题随时反馈,祝使用愉快 🎉
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easyai
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wade
@@ -135,6 +135,7 @@ files:
135
135
  - lib/easyai/command/utils/encry.rb
136
136
  - lib/easyai/config/local_config.rb
137
137
  - lib/easyai/version.rb
138
+ - 使用说明.md
138
139
  homepage: https://github.com/wade/easyai
139
140
  licenses:
140
141
  - MIT