@sokeai/cli 1.0.61 → 1.0.63
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.
- package/package.json +1 -1
- package/scripts/e2e-test.sh +11 -7
- package/skills/SKILL.md +195 -0
- package/skills/soke-ai-training/SKILL.md +93 -0
- package/skills/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md +416 -0
- package/skills/soke-course/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md +98 -79
- package/skills/soke-learning-map/SKILL.md +24 -14
- package/skills/soke-learning-map/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md +99 -80
- package/skills/soke-lesson/SKILL.md +37 -34
- package/skills/soke-photo-gallery/SKILL.md +287 -0
- package/skills/oss-upload/skill.md +0 -50
- package/skills/oss-upload/upload.py +0 -355
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
# 授客CLI 工具 - 快速上手指南
|
|
2
|
+
|
|
3
|
+
本文档将指导你从零开始安装 `soke-cli`,完成用户登录授权,并开始使用授客AI开放平台的各项功能。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📋 目录
|
|
8
|
+
|
|
9
|
+
- [前置要求](#前置要求)
|
|
10
|
+
- [安装步骤](#安装步骤)
|
|
11
|
+
- [用户登录授权](#用户登录授权)
|
|
12
|
+
- [验证安装](#验证安装)
|
|
13
|
+
- [常见问题](#常见问题)
|
|
14
|
+
- [下一步](#下一步)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 前置要求
|
|
19
|
+
|
|
20
|
+
在开始之前,请确保你的系统满足以下要求:
|
|
21
|
+
|
|
22
|
+
### 必需条件
|
|
23
|
+
- **Node.js**: 版本 >= 14.0.0(用于 NPM 安装)
|
|
24
|
+
- **网络连接**: 能够访问授客AI开放平台 API(默认:`https://opendev.soke.cn`)
|
|
25
|
+
- **浏览器**: 用于完成 OAuth 授权流程
|
|
26
|
+
|
|
27
|
+
> 💡 **提示**: 使用 `soke-cli` 无需预先配置任何凭证,所有配置将在登录授权过程中自动完成。
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 安装步骤
|
|
32
|
+
|
|
33
|
+
> ⚠️ **先看这里**:以下步骤会将 `soke-cli` 安装到用户专属目录(`~/.npm-global`),无需 sudo、不依赖任何 AI 工具,任何终端打开即用。
|
|
34
|
+
>
|
|
35
|
+
> **三步走:① 改 npm prefix → ② 加 PATH → ③ 安装**
|
|
36
|
+
|
|
37
|
+
### 第一步:配置 npm prefix(所有平台通用)
|
|
38
|
+
|
|
39
|
+
设置 npm 全局安装路径为用户专属目录,这样:
|
|
40
|
+
- **不需要 sudo/管理员权限**
|
|
41
|
+
- **不会装到奇怪的系统目录**
|
|
42
|
+
- **任何终端都能找到**
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
mkdir -p ~/.npm-global
|
|
46
|
+
npm config set prefix ~/.npm-global
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
> 💡 这一步只需执行一次,之后所有通过 `npm install -g` 安装的工具都会放到统一位置。
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### 第二步:把 npm 全局 bin 目录加入 PATH
|
|
54
|
+
|
|
55
|
+
把 `~/.npm-global/bin` 加入 shell 搜索路径,这样终端才能找到 `soke-cli`。
|
|
56
|
+
|
|
57
|
+
#### macOS / Linux
|
|
58
|
+
|
|
59
|
+
在 `~/.zshrc`(Zsh)或 `~/.bashrc`(Bash)末尾追加一行:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
|
|
63
|
+
source ~/.zshrc
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
> 💡 **Apple Silicon (M1/M2/M3) 用户**如果用 Homebrew 安装 Node.js,npm prefix 可能已指向 `/opt/homebrew`(arm64)或 `/usr/local`(x64)。上述 `npm config set prefix` 会覆盖默认值,所有全局工具统一走 `~/.npm-global`,不影响 Homebrew 自有工具。
|
|
67
|
+
|
|
68
|
+
#### Windows
|
|
69
|
+
|
|
70
|
+
**PowerShell**:
|
|
71
|
+
```powershell
|
|
72
|
+
# 查看当前用户 PATH
|
|
73
|
+
[Environment]::GetEnvironmentVariable('Path', 'User')
|
|
74
|
+
|
|
75
|
+
# 追加 npm-global 路径
|
|
76
|
+
$npmGlobal = "$env:USERPROFILE\.npm-global\bin"
|
|
77
|
+
[Environment]::SetEnvironmentVariable('Path', "$(([Environment]::GetEnvironmentVariable('Path', 'User') -split ';' -notlike '' -join ';'));$npmGlobal", 'User')
|
|
78
|
+
|
|
79
|
+
# 验证(需要重新打开 PowerShell 使改动生效,或手动刷新)
|
|
80
|
+
$env:Path = [Environment]::GetEnvironmentVariable('Path', 'User')
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**CMD**:
|
|
84
|
+
```cmd
|
|
85
|
+
setx PATH "%PATH%;%USERPROFILE%\.npm-global\bin"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
> ⚠️ **Windows**: `setx` 修改的是**系统环境变量**,需要新的 CMD/PowerShell 窗口才能生效(当前窗口不会变)。
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### 第三步:安装 soke-cli
|
|
93
|
+
|
|
94
|
+
PATH 配置完成后,新开一个终端窗口(或 `source` 刚改的文件),然后安装:
|
|
95
|
+
|
|
96
|
+
**macOS / Linux**:
|
|
97
|
+
```bash
|
|
98
|
+
npm install -g @sokeai/cli@latest
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Windows (PowerShell / CMD)**:
|
|
102
|
+
```powershell
|
|
103
|
+
npm install -g @sokeai/cli@latest
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
> 💡 安装脚本会自动根据操作系统(macOS / Linux / Windows)和芯片架构(x64 / arm64)下载对应二进制文件,无需手动选择。
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### 安装后验证
|
|
111
|
+
|
|
112
|
+
新开一个终端(让 PATH 生效),依次执行:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# 确认路径
|
|
116
|
+
which soke-cli
|
|
117
|
+
# 预期输出类似: /Users/你的用户名/.npm-global/bin/soke-cli
|
|
118
|
+
|
|
119
|
+
# 确认版本
|
|
120
|
+
soke-cli --version
|
|
121
|
+
# 预期输出: soke-cli version x.x.x
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
如果显示版本号,说明安装成功 ✅。
|
|
125
|
+
|
|
126
|
+
**如果 `which soke-cli` 无输出**,说明 PATH 未生效:
|
|
127
|
+
- macOS/Linux: 确认 `echo $PATH | tr ':' '\n' | grep npm-global` 有输出,若没有请重新执行第二步
|
|
128
|
+
- Windows: 确认环境变量中已添加 `C:\Users\你的用户名\.npm-global\bin`
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 用户登录授权
|
|
133
|
+
|
|
134
|
+
安装完成后,直接执行登录命令即可开始使用。无需预先配置,所有必要的配置信息将在授权过程中自动获取并保存。
|
|
135
|
+
|
|
136
|
+
### OAuth 浏览器授权流程
|
|
137
|
+
|
|
138
|
+
`soke-cli` 使用 OAuth 2.0 授权码流程(Authorization Code Flow),通过浏览器完成安全授权。
|
|
139
|
+
|
|
140
|
+
### 执行登录命令
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
soke-cli auth login
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 授权步骤
|
|
147
|
+
|
|
148
|
+
1. **自动打开浏览器**
|
|
149
|
+
|
|
150
|
+
命令执行后,会自动在默认浏览器中打开授权页面。如果浏览器没有自动打开,会显示授权链接:
|
|
151
|
+
```
|
|
152
|
+
ℹ️ 未找到登录信息,开始授权流程
|
|
153
|
+
|
|
154
|
+
请在浏览器中打开以下链接进行授权:
|
|
155
|
+
http://127.0.0.1:8080/callback?redirect_uri=...
|
|
156
|
+
|
|
157
|
+
等待授权中...
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
2. **浏览器授权**
|
|
161
|
+
|
|
162
|
+
在浏览器授权页面中:
|
|
163
|
+
- 如果未登录授客AI平台,先完成登录
|
|
164
|
+
- 查看应用请求的权限列表
|
|
165
|
+
- 勾选"一并开通审批的常用权限"(可选)
|
|
166
|
+
- 点击"开通并授权"按钮
|
|
167
|
+
|
|
168
|
+
3. **授权成功**
|
|
169
|
+
|
|
170
|
+
授权完成后,浏览器会显示成功页面,CLI 终端会显示:
|
|
171
|
+
```
|
|
172
|
+
✅ 已登录,Token 仍然有效
|
|
173
|
+
企业 ID: corp_123456
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
4. **配置自动保存**
|
|
177
|
+
|
|
178
|
+
授权成功后,以下信息会自动保存到 `~/.soke-cli/config.json`:
|
|
179
|
+
- 用户访问令牌(`user_token`)
|
|
180
|
+
- 企业 ID(`corpid`)
|
|
181
|
+
- 部门用户 ID(`dept_user_id`)
|
|
182
|
+
- Token 过期时间
|
|
183
|
+
|
|
184
|
+
### Token 有效期
|
|
185
|
+
|
|
186
|
+
- **访问令牌(Access Token)**: 默认有效期根据平台设置,通常为数小时到数天
|
|
187
|
+
- **自动检查**: 每次执行命令时,CLI 会自动检查 Token 是否有效
|
|
188
|
+
- **自动续期**: Token 过期后,再次执行 `soke-cli auth login` 即可重新授权
|
|
189
|
+
|
|
190
|
+
### 强制重新登录
|
|
191
|
+
|
|
192
|
+
如果需要切换账号或强制重新授权,可以使用 `--force` 参数:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
soke-cli auth login --force
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### 退出登录
|
|
199
|
+
|
|
200
|
+
如果需要退出登录,清除本地保存的令牌:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
soke-cli auth logout
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
输出:
|
|
207
|
+
```
|
|
208
|
+
✓ 已退出登录
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 验证安装
|
|
214
|
+
|
|
215
|
+
完成登录授权后,让我们验证一切是否正常工作。
|
|
216
|
+
|
|
217
|
+
### 1. 查看配置信息
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
soke-cli config show
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
确认配置信息已自动保存:
|
|
224
|
+
```
|
|
225
|
+
当前配置:
|
|
226
|
+
app_key: (未设置)
|
|
227
|
+
app_secret: (未设置)
|
|
228
|
+
api_base_url:
|
|
229
|
+
corpid: corp_123456
|
|
230
|
+
dept_user_id: user_789012
|
|
231
|
+
user_token: eyJh...xyz
|
|
232
|
+
bot_token: (未设置)
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
> 💡 **说明**: `app_key` 和 `app_secret` 在当前版本中不需要手动配置,授权流程会自动处理所有必要的认证信息。
|
|
236
|
+
|
|
237
|
+
### 2. 测试 API 调用
|
|
238
|
+
|
|
239
|
+
尝试调用一个简单的 API:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
soke-cli api GET /users/me
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
如果返回你的用户信息(JSON 格式),说明一切配置正确!
|
|
246
|
+
|
|
247
|
+
### 3. 使用业务命令
|
|
248
|
+
|
|
249
|
+
尝试使用一个业务快捷命令,例如查看考试列表:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
soke-cli exam +list-exams --page 1 --page-size 10
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 常见问题
|
|
258
|
+
|
|
259
|
+
### Q1: 安装时提示 "网络连接失败"
|
|
260
|
+
|
|
261
|
+
**原因**: 无法从 GitHub Releases 下载二进制文件。
|
|
262
|
+
|
|
263
|
+
**解决方案**:
|
|
264
|
+
1. 检查网络连接
|
|
265
|
+
2. 如果在国内,可能需要配置代理
|
|
266
|
+
3. 尝试重新安装:`npm install -g @sokeai/cli`
|
|
267
|
+
|
|
268
|
+
### Q2: 执行 `soke-cli` 提示 "command not found" 或 "不是内部或外部命令"
|
|
269
|
+
|
|
270
|
+
**原因**: 二进制文件不在系统 PATH 中。
|
|
271
|
+
|
|
272
|
+
**解决方案(重新做安装步骤第二步)**:
|
|
273
|
+
|
|
274
|
+
**macOS / Linux**:
|
|
275
|
+
```bash
|
|
276
|
+
# 确认 npm-global/bin 是否已在 PATH
|
|
277
|
+
which soke-cli
|
|
278
|
+
|
|
279
|
+
# 若无输出,检查路径是否存在
|
|
280
|
+
ls ~/.npm-global/bin/soke-cli 2>/dev/null && echo "存在,但 PATH 未生效"
|
|
281
|
+
|
|
282
|
+
# 重新追加 PATH 并生效
|
|
283
|
+
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
|
|
284
|
+
source ~/.zshrc
|
|
285
|
+
|
|
286
|
+
# 再次验证
|
|
287
|
+
which soke-cli
|
|
288
|
+
soke-cli --version
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Windows**:
|
|
292
|
+
```powershell
|
|
293
|
+
# 检查 .npm-global/bin 是否存在
|
|
294
|
+
Test-Path "$env:USERPROFILE\.npm-global\bin\soke-cli.exe"
|
|
295
|
+
|
|
296
|
+
# 若存在但命令找不到,手动刷新 PATH
|
|
297
|
+
$env:Path = [Environment]::GetEnvironmentVariable('Path', 'User')
|
|
298
|
+
|
|
299
|
+
# 确认
|
|
300
|
+
where.exe soke-cli
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**直接运行(临时方案,不推荐长期使用)**:
|
|
304
|
+
|
|
305
|
+
**macOS / Linux**:
|
|
306
|
+
```bash
|
|
307
|
+
~/.npm-global/bin/soke-cli --version
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Windows**:
|
|
311
|
+
```cmd
|
|
312
|
+
%USERPROFILE%\.npm-global\bin\soke-cli.exe --version
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### Q3: 登录时浏览器没有自动打开
|
|
316
|
+
|
|
317
|
+
**原因**: 系统无法自动打开默认浏览器。
|
|
318
|
+
|
|
319
|
+
**解决方案**:
|
|
320
|
+
1. 复制终端显示的授权链接
|
|
321
|
+
2. 手动在浏览器中打开该链接
|
|
322
|
+
3. 完成授权流程
|
|
323
|
+
|
|
324
|
+
### Q4: 浏览器授权后,CLI 仍显示 "等待授权中..."
|
|
325
|
+
|
|
326
|
+
**原因**:
|
|
327
|
+
- 浏览器授权未成功完成
|
|
328
|
+
- 本地回调服务器端口被占用
|
|
329
|
+
- 网络连接问题
|
|
330
|
+
|
|
331
|
+
**解决方案**:
|
|
332
|
+
1. 确认浏览器页面显示"授权成功"
|
|
333
|
+
2. 检查防火墙是否阻止了本地端口(127.0.0.1)
|
|
334
|
+
3. 按 `Ctrl+C` 取消,重新执行 `soke-cli auth login`
|
|
335
|
+
|
|
336
|
+
### Q5: API 调用返回 "401 Unauthorized"
|
|
337
|
+
|
|
338
|
+
**原因**: Token 已过期或无效。
|
|
339
|
+
|
|
340
|
+
**解决方案**:
|
|
341
|
+
```bash
|
|
342
|
+
# 重新登录
|
|
343
|
+
soke-cli auth logout
|
|
344
|
+
soke-cli auth login
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### Q6: 如何在 AI Agent 中使用?
|
|
348
|
+
|
|
349
|
+
**解决方案**:
|
|
350
|
+
|
|
351
|
+
安装 AI Agent Skills:
|
|
352
|
+
```bash
|
|
353
|
+
npx skills add liuchenlong1111/soke-cli -y -g
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
然后在 AI Agent(如 Claude Code)中直接用自然语言:
|
|
357
|
+
- "查询考试成绩"
|
|
358
|
+
- "列出最近的考试"
|
|
359
|
+
|
|
360
|
+
AI 会自动调用相应的 `soke-cli` 命令。
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## 下一步
|
|
365
|
+
|
|
366
|
+
恭喜!你已经成功安装并配置了 `soke-cli`。接下来你可以:
|
|
367
|
+
|
|
368
|
+
### 📚 学习更多命令
|
|
369
|
+
|
|
370
|
+
查看所有可用命令:
|
|
371
|
+
```bash
|
|
372
|
+
soke-cli --help
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
查看特定模块的命令:
|
|
376
|
+
```bash
|
|
377
|
+
soke-cli course --help
|
|
378
|
+
soke-cli exam --help
|
|
379
|
+
soke-cli contact --help
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### 🚀 使用业务功能
|
|
383
|
+
|
|
384
|
+
- **课程管理**: `soke-cli course +list-courses`
|
|
385
|
+
- **考试管理**: `soke-cli exam +list-exams`
|
|
386
|
+
- **通讯录**: `soke-cli contact +list-users`
|
|
387
|
+
- **学习地图**: `soke-cli learning-map +list-maps`
|
|
388
|
+
|
|
389
|
+
### 🤖 安装 AI Agent Skills(推荐)
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
npx skills add liuchenlong1111/soke-cli -y -g
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
安装后,在 AI Agent 中可以用自然语言操作授客AI平台,无需记忆复杂命令。
|
|
396
|
+
|
|
397
|
+
### 📖 阅读详细文档
|
|
398
|
+
|
|
399
|
+
- [README.md](../README.md) - 项目概览
|
|
400
|
+
- [CLAUDE.md](../CLAUDE.md) - 项目架构和开发规范
|
|
401
|
+
- [skills/README.md](../skills/README.md) - AI Agent Skills 详细说明
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## 获取帮助
|
|
406
|
+
|
|
407
|
+
如果遇到问题:
|
|
408
|
+
|
|
409
|
+
1. **查看帮助文档**: `soke-cli --help`
|
|
410
|
+
2. **查看配置**: `soke-cli config show`
|
|
411
|
+
3. **访问开放平台**: https://opendev.soke.cn
|
|
412
|
+
4. **提交 Issue**: https://github.com/liuchenlong1111/soke-cli/issues
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
**祝你使用愉快!** 🎉
|
|
@@ -30,79 +30,102 @@
|
|
|
30
30
|
|
|
31
31
|
## 安装步骤
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
> ⚠️ **先看这里**:以下步骤会将 `soke-cli` 安装到用户专属目录(`~/.npm-global`),无需 sudo、不依赖任何 AI 工具,任何终端打开即用。
|
|
34
|
+
>
|
|
35
|
+
> **三步走:① 改 npm prefix → ② 加 PATH → ③ 安装**
|
|
34
36
|
|
|
35
|
-
|
|
37
|
+
### 第一步:配置 npm prefix(所有平台通用)
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
设置 npm 全局安装路径为用户专属目录,这样:
|
|
40
|
+
- **不需要 sudo/管理员权限**
|
|
41
|
+
- **不会装到奇怪的系统目录**
|
|
42
|
+
- **任何终端都能找到**
|
|
40
43
|
|
|
41
44
|
```bash
|
|
42
|
-
|
|
45
|
+
mkdir -p ~/.npm-global
|
|
46
|
+
npm config set prefix ~/.npm-global
|
|
43
47
|
```
|
|
44
48
|
|
|
45
|
-
|
|
49
|
+
> 💡 这一步只需执行一次,之后所有通过 `npm install -g` 安装的工具都会放到统一位置。
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
---
|
|
48
52
|
|
|
49
|
-
|
|
50
|
-
- 按 `Win + X`,选择"Windows PowerShell (管理员)"
|
|
51
|
-
- 或在开始菜单搜索"PowerShell",右键选择"以管理员身份运行"
|
|
53
|
+
### 第二步:把 npm 全局 bin 目录加入 PATH
|
|
52
54
|
|
|
53
|
-
|
|
54
|
-
```powershell
|
|
55
|
-
npm install -g @sokeai/cli@latest
|
|
56
|
-
```
|
|
55
|
+
把 `~/.npm-global/bin` 加入 shell 搜索路径,这样终端才能找到 `soke-cli`。
|
|
57
56
|
|
|
58
|
-
|
|
57
|
+
#### macOS / Linux
|
|
59
58
|
|
|
60
|
-
|
|
61
|
-
- 按 `Win + R`,输入 `cmd`,按 `Ctrl + Shift + Enter`
|
|
62
|
-
- 或在开始菜单搜索"cmd",右键选择"以管理员身份运行"
|
|
59
|
+
在 `~/.zshrc`(Zsh)或 `~/.bashrc`(Bash)末尾追加一行:
|
|
63
60
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
61
|
+
```bash
|
|
62
|
+
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
|
|
63
|
+
source ~/.zshrc
|
|
64
|
+
```
|
|
68
65
|
|
|
69
|
-
> 💡 **
|
|
70
|
-
> - 如果提示"npm 不是内部或外部命令",请先安装 [Node.js](https://nodejs.org/)
|
|
71
|
-
> - 安装过程中可能需要管理员权限
|
|
72
|
-
> - 如果遇到权限问题,确保以管理员身份运行终端
|
|
66
|
+
> 💡 **Apple Silicon (M1/M2/M3) 用户**如果用 Homebrew 安装 Node.js,npm prefix 可能已指向 `/opt/homebrew`(arm64)或 `/usr/local`(x64)。上述 `npm config set prefix` 会覆盖默认值,所有全局工具统一走 `~/.npm-global`,不影响 Homebrew 自有工具。
|
|
73
67
|
|
|
74
|
-
|
|
68
|
+
#### Windows
|
|
69
|
+
|
|
70
|
+
**PowerShell**:
|
|
71
|
+
```powershell
|
|
72
|
+
# 查看当前用户 PATH
|
|
73
|
+
[Environment]::GetEnvironmentVariable('Path', 'User')
|
|
75
74
|
|
|
76
|
-
|
|
75
|
+
# 追加 npm-global 路径
|
|
76
|
+
$npmGlobal = "$env:USERPROFILE\.npm-global\bin"
|
|
77
|
+
[Environment]::SetEnvironmentVariable('Path', "$(([Environment]::GetEnvironmentVariable('Path', 'User') -split ';' -notlike '' -join ';'));$npmGlobal", 'User')
|
|
78
|
+
|
|
79
|
+
# 验证(需要重新打开 PowerShell 使改动生效,或手动刷新)
|
|
80
|
+
$env:Path = [Environment]::GetEnvironmentVariable('Path', 'User')
|
|
81
|
+
```
|
|
77
82
|
|
|
78
|
-
|
|
83
|
+
**CMD**:
|
|
84
|
+
```cmd
|
|
85
|
+
setx PATH "%PATH%;%USERPROFILE%\.npm-global\bin"
|
|
86
|
+
```
|
|
79
87
|
|
|
80
|
-
|
|
81
|
-
2. 安装脚本会根据你的操作系统(macOS/Linux/Windows)和架构(x64/arm64)自动下载对应的二进制文件
|
|
82
|
-
3. 二进制文件会被放置在对应的目录:
|
|
83
|
-
- **macOS/Linux**: `$(npm root -g)/@sokeai/cli/bin/soke-cli`
|
|
84
|
-
- **Windows**: `%APPDATA%\npm\node_modules\@sokeai\cli\bin\soke-cli.exe`
|
|
85
|
-
4. 如果你安装了 AI Agent(如 Claude Code),相关的 Skills 会自动同步到对应目录
|
|
88
|
+
> ⚠️ **Windows**: `setx` 修改的是**系统环境变量**,需要新的 CMD/PowerShell 窗口才能生效(当前窗口不会变)。
|
|
86
89
|
|
|
87
90
|
---
|
|
88
91
|
|
|
89
|
-
###
|
|
92
|
+
### 第三步:安装 soke-cli
|
|
90
93
|
|
|
91
|
-
|
|
94
|
+
PATH 配置完成后,新开一个终端窗口(或 `source` 刚改的文件),然后安装:
|
|
92
95
|
|
|
93
|
-
**macOS / Linux
|
|
96
|
+
**macOS / Linux**:
|
|
94
97
|
```bash
|
|
95
|
-
|
|
98
|
+
npm install -g @sokeai/cli@latest
|
|
96
99
|
```
|
|
97
100
|
|
|
98
|
-
**Windows (PowerShell / CMD)
|
|
99
|
-
```
|
|
101
|
+
**Windows (PowerShell / CMD)**:
|
|
102
|
+
```powershell
|
|
103
|
+
npm install -g @sokeai/cli@latest
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
> 💡 安装脚本会自动根据操作系统(macOS / Linux / Windows)和芯片架构(x64 / arm64)下载对应二进制文件,无需手动选择。
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### 安装后验证
|
|
111
|
+
|
|
112
|
+
新开一个终端(让 PATH 生效),依次执行:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# 确认路径
|
|
116
|
+
which soke-cli
|
|
117
|
+
# 预期输出类似: /Users/你的用户名/.npm-global/bin/soke-cli
|
|
118
|
+
|
|
119
|
+
# 确认版本
|
|
100
120
|
soke-cli --version
|
|
121
|
+
# 预期输出: soke-cli version x.x.x
|
|
101
122
|
```
|
|
102
123
|
|
|
103
|
-
|
|
124
|
+
如果显示版本号,说明安装成功 ✅。
|
|
104
125
|
|
|
105
|
-
|
|
126
|
+
**如果 `which soke-cli` 无输出**,说明 PATH 未生效:
|
|
127
|
+
- macOS/Linux: 确认 `echo $PATH | tr ':' '\n' | grep npm-global` 有输出,若没有请重新执行第二步
|
|
128
|
+
- Windows: 确认环境变量中已添加 `C:\Users\你的用户名\.npm-global\bin`
|
|
106
129
|
|
|
107
130
|
---
|
|
108
131
|
|
|
@@ -246,51 +269,47 @@ soke-cli exam +list-exams --page 1 --page-size 10
|
|
|
246
269
|
|
|
247
270
|
**原因**: 二进制文件不在系统 PATH 中。
|
|
248
271
|
|
|
249
|
-
|
|
272
|
+
**解决方案(重新做安装步骤第二步)**:
|
|
250
273
|
|
|
251
|
-
**macOS/Linux
|
|
274
|
+
**macOS / Linux**:
|
|
252
275
|
```bash
|
|
253
|
-
#
|
|
276
|
+
# 确认 npm-global/bin 是否已在 PATH
|
|
254
277
|
which soke-cli
|
|
255
278
|
|
|
256
|
-
#
|
|
257
|
-
|
|
279
|
+
# 若无输出,检查路径是否存在
|
|
280
|
+
ls ~/.npm-global/bin/soke-cli 2>/dev/null && echo "存在,但 PATH 未生效"
|
|
281
|
+
|
|
282
|
+
# 重新追加 PATH 并生效
|
|
283
|
+
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
|
|
284
|
+
source ~/.zshrc
|
|
285
|
+
|
|
286
|
+
# 再次验证
|
|
287
|
+
which soke-cli
|
|
288
|
+
soke-cli --version
|
|
258
289
|
```
|
|
259
290
|
|
|
260
|
-
**Windows
|
|
291
|
+
**Windows**:
|
|
292
|
+
```powershell
|
|
293
|
+
# 检查 .npm-global/bin 是否存在
|
|
294
|
+
Test-Path "$env:USERPROFILE\.npm-global\bin\soke-cli.exe"
|
|
261
295
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
打开 PowerShell,执行:
|
|
265
|
-
```powershell
|
|
266
|
-
npm config get prefix
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
记下输出的路径(例如:`C:\Users\YourName\AppData\Roaming\npm`)
|
|
296
|
+
# 若存在但命令找不到,手动刷新 PATH
|
|
297
|
+
$env:Path = [Environment]::GetEnvironmentVariable('Path', 'User')
|
|
270
298
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
- 点击"高级系统设置"
|
|
275
|
-
- 点击"环境变量"
|
|
276
|
-
- 在"用户变量"或"系统变量"中找到 `Path`
|
|
277
|
-
- 点击"编辑",添加上面的 NPM 路径
|
|
278
|
-
- 点击"确定"保存
|
|
279
|
-
|
|
280
|
-
3. **重启终端**
|
|
281
|
-
|
|
282
|
-
关闭并重新打开 PowerShell 或 CMD,再次尝试:
|
|
283
|
-
```cmd
|
|
284
|
-
soke-cli --version
|
|
285
|
-
```
|
|
299
|
+
# 确认
|
|
300
|
+
where.exe soke-cli
|
|
301
|
+
```
|
|
286
302
|
|
|
287
|
-
|
|
288
|
-
```cmd
|
|
289
|
-
# Windows 示例
|
|
290
|
-
%APPDATA%\npm\soke-cli --version
|
|
303
|
+
**直接运行(临时方案,不推荐长期使用)**:
|
|
291
304
|
|
|
292
|
-
|
|
293
|
-
|
|
305
|
+
**macOS / Linux**:
|
|
306
|
+
```bash
|
|
307
|
+
~/.npm-global/bin/soke-cli --version
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Windows**:
|
|
311
|
+
```cmd
|
|
312
|
+
%USERPROFILE%\.npm-global\bin\soke-cli.exe --version
|
|
294
313
|
```
|
|
295
314
|
|
|
296
315
|
### Q3: 登录时浏览器没有自动打开
|