@kg-ai/kugou-skill 0.0.25 → 0.0.26

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.
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kg-ai/kugou-skill",
3
- "version": "0.0.25",
3
+ "version": "0.0.26",
4
4
  "description": "Kugou Skill CLI",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -16,7 +16,8 @@
16
16
  "files": [
17
17
  "bin",
18
18
  "scripts",
19
- "SKILL.md"
19
+ "SKILL.md",
20
+ "references"
20
21
  ],
21
22
  "author": "",
22
23
  "license": "MIT",
@@ -0,0 +1,75 @@
1
+ # 认证命令 (auth)
2
+
3
+ > 🔐 = 需要先登录
4
+
5
+ ## 命令列表
6
+
7
+ | 命令 | 说明 | 需要登录 |
8
+ |------|------|---------|
9
+ | `kugou-cli auth login` | 获取二维码图片 | 否 |
10
+ | `kugou-cli auth status` | 检查登录状态(已完成则登录,未完成则继续轮询) | 否 |
11
+ | `kugou-cli auth logout` | 登出 | 否 |
12
+
13
+ ---
14
+
15
+ ## 1. 扫码登录
16
+
17
+ 登录流程极简:
18
+
19
+ ```bash
20
+ # Step 1: 获取二维码图片
21
+ kugou-cli auth login
22
+
23
+ # Step 2: 检查登录状态(Agent 可循环调用直到 logged_in=true)
24
+ kugou-cli auth status
25
+ ```
26
+
27
+ **auth login 输出示例**:
28
+ ```json
29
+ {"qrcode": "xxx", "qrcode_img_path": "C:\\Users\\xxx\\AppData\\Local\\Temp\\kugou-qrcode.png"}
30
+ ```
31
+
32
+ > **重要**:必须将 `qrcode_img_path` 对应的图片文件**发送给用户**供扫码登录。
33
+
34
+ **auth status 状态输出**:
35
+
36
+ 已登录:
37
+ ```json
38
+ {"logged_in": true, "nickname": "沙墨", "login_time": "2024-01-01 12:00:00"}
39
+ ```
40
+
41
+ 未登录但有 pending qrcode(等待扫码):
42
+ ```json
43
+ {"logged_in": false, "status": "waiting", "qrcode": "xxx"}
44
+ ```
45
+
46
+ 未登录但已扫码(等待确认):
47
+ ```json
48
+ {"logged_in": false, "status": "scanned", "nickname": "xxx", "qrcode": "xxx"}
49
+ ```
50
+
51
+ 未登录且 qrcode 失效:
52
+ ```json
53
+ {"logged_in": false, "status": "failed", "message": "QR code expired"}
54
+ ```
55
+
56
+ ---
57
+
58
+ ## 2. AI 引导流程
59
+
60
+ 1. 调用 `auth login` 获取二维码图片
61
+ 2. **必须**将 `qrcode_img_path` 对应的二维码图片发送给用户
62
+ 3. 循环调用 `auth status` 等待用户扫码
63
+ 4. 当输出 `logged_in: true` 后,登录完成,可继续执行音乐命令
64
+
65
+ > **简化说明**:本工具将"轮询检查扫码状态"逻辑内置到 `auth status` 中,Agent 只需简单循环调用 status 即可。
66
+
67
+ ---
68
+
69
+ ## 3. 文件存储
70
+
71
+ | 文件 | 路径 | 说明 |
72
+ |------|------|------|
73
+ | auth.json | `~/.config/kugou-cli/auth.json` | 登录 token 持久化 |
74
+ | qrcode.json | `~/.config/kugou-cli/qrcode.json` | 待扫码的 qrcode(临时,登录成功后自动删除) |
75
+ | device.json | `~/.config/kugou-cli/device.json` | 设备信息(mid/dfid) |
@@ -0,0 +1,21 @@
1
+ # 错误处理
2
+
3
+ 错误信息输出到 stderr,程序 exit code 为 1:
4
+
5
+ ```bash
6
+ kugou-cli music search "xxx" 2>&1
7
+ echo $? # 非 0 表示出错
8
+ ```
9
+
10
+ ---
11
+
12
+ ## 常见错误及处理
13
+
14
+ | 错误信息 | 原因 | 处理方式 |
15
+ |---------|------|---------|
16
+ | `not logged in` / `auth file not found` | 未登录 | 引导用户执行 `kugou-cli auth login` |
17
+ | `HTTP error: 400` | 请求参数有误 | 检查命令参数是否正确 |
18
+ | `HTTP error: 500` | 服务端错误 | 稍后重试,或告知用户 |
19
+ | `API error: ...` | 业务错误(errcode 非 0) | 根据 errmsg 提示用户 |
20
+ | `network error: ...` | 网络连接问题 | 检查网络,可尝试 `--proxy` |
21
+ | `failed to get device info` | 设备信息获取失败 | 运行时环境异常,检查权限 |
@@ -0,0 +1,54 @@
1
+ # 安装命令 (install)
2
+
3
+ > 安装 SKILL.md 到各平台 skills 目录
4
+
5
+ ## 命令列表
6
+
7
+ | 命令 | 说明 |
8
+ |------|------|
9
+ | `kugou-cli install` | 显示平台选择提示 |
10
+ | `kugou-cli install --all` | 安装 SKILL.md 到所有平台 |
11
+ | `kugou-cli install --claude` | 安装到 Claude skills 目录 |
12
+ | `kugou-cli install --mavis` | 安装到 Mavis skills 目录 |
13
+ | `kugou-cli install --hermes` | 安装到 Hermes skills 目录 |
14
+ | `kugou-cli install --openclaw` | 安装到 Openclaw skills 目录 |
15
+ | `kugou-cli install --codex` | 安装到 Codex skills 目录 |
16
+
17
+ ---
18
+
19
+ ## 详细用法
20
+
21
+ ```bash
22
+ kugou-cli install # 显示平台选择提示
23
+ kugou-cli install --all # 安装到所有平台
24
+ kugou-cli install --claude # 仅安装到 Claude
25
+ kugou-cli install --hermes --claude # 安装到 Hermes 和 Claude
26
+ ```
27
+
28
+ **参数**:
29
+ - `--claude`: 安装到 `~/.claude/skills/kugou-skill/`
30
+ - `--mavis`: 安装到 `~/.mavis/skills/kugou-skill/`
31
+ - `--hermes`: 安装到 `~/.hermes/skills/kugou-skill/`
32
+ - `--openclaw`: 安装到 `~/.openclaw/skills/kugou-skill/`
33
+ - `--codex`: 安装到 `~/.codex/skills/kugou-skill/`
34
+ - `--workbuddy`: 安装到 `~/.workbuddy/skills/kugou-skill/`
35
+ - `--all`: 安装到以上所有平台
36
+
37
+ ---
38
+
39
+ ## 行为说明
40
+
41
+ - 无参数时输出"平台选择提示",列出可用平台选项,不会进行任何安装操作
42
+ - 只会在目标平台的 skills 父目录存在时才安装(不自动创建父目录)
43
+ - npm 安装时会自动调用 install.js 安装 SKILL.md
44
+ - `kugou-cli install` 命令用于手动重新安装或更新 SKILL.md
45
+
46
+ ---
47
+
48
+ ## 通用命令
49
+
50
+ | 命令 | 说明 |
51
+ |------|------|
52
+ | `kugou-cli --version` / `kugou-cli version` | 输出版本号 |
53
+ | `kugou-cli --help` | 显示帮助信息 |
54
+ | `kugou-cli <子命令> --help` | 显示子命令帮助(如 `kugou-cli music search --help`)|
@@ -0,0 +1,273 @@
1
+ # 音乐命令 (music)
2
+
3
+ > 🔐 = 所有 music 命令都需要先登录
4
+
5
+ ## 命令列表
6
+
7
+ | 命令 | 说明 |
8
+ |------|------|
9
+ | `kugou-cli music search <keyword>` | 搜索歌曲 |
10
+ | `kugou-cli music recommend daily` | 每日推荐 |
11
+ | `kugou-cli music recommend similar -s <song>` | 相似歌曲推荐 |
12
+ | `kugou-cli music favorites` | 我的收藏 |
13
+ | `kugou-cli music recent` | 最近播放 |
14
+ | `kugou-cli music stats` | 听歌统计 |
15
+ | `kugou-cli music charts <rank_id>` | 榜单 |
16
+
17
+ ---
18
+
19
+ ## 1. 搜索歌曲
20
+
21
+ ```bash
22
+ kugou-cli music search "周杰伦"
23
+ kugou-cli music search "周杰伦" --page 1 --size 20
24
+ ```
25
+
26
+ **参数**:
27
+ - `<keyword>`: 搜索关键词(必填)
28
+ - `--page`: 页码,默认 1
29
+ - `--size`: 每页数量,默认 20
30
+
31
+ **输出示例**:
32
+ ```json
33
+ {
34
+ "errcode": 0,
35
+ "data": {
36
+ "list": [
37
+ {
38
+ "song_name": "晴天",
39
+ "mix_song_id": "32100650",
40
+ "artist_name": "周杰伦",
41
+ "play_link": "https://www.kugou.com/mixsong/agent_gateway/j410q78a01f.html"
42
+ }
43
+ ],
44
+ "total": 480,
45
+ "page": 1,
46
+ "size": 20
47
+ },
48
+ "status": 1
49
+ }
50
+ ```
51
+
52
+ ---
53
+
54
+ ## 2. 歌曲推荐
55
+
56
+ 支持三种推荐模式:
57
+
58
+ | 类型 | 说明 | 必填参数 |
59
+ |------|------|---------|
60
+ | `guess` | 猜你喜欢,基于用户喜好推荐 | 无 |
61
+ | `similar` | 相似推荐,根据指定歌曲推荐相似歌曲 | `--song` |
62
+ | `text` | 文本推歌,根据文本描述推荐歌曲 | `--text` |
63
+
64
+ ### 2.1 猜你喜欢
65
+
66
+ ```bash
67
+ kugou-cli music recommend guess
68
+ kugou-cli music recommend guess --num 10
69
+ ```
70
+
71
+ **参数**:
72
+ - `--num`: 推荐数量,默认 10
73
+
74
+ ### 2.2 相似推荐
75
+
76
+ ```bash
77
+ kugou-cli music recommend similar -s "晴天"
78
+ kugou-cli music recommend similar --song "晴天" -n 5
79
+ kugou-cli music recommend similar --song "晴天" --text "风格相似的" -n 5
80
+ ```
81
+
82
+ **参数**:
83
+ - `-s, --song`: 歌曲名称(必填)
84
+ - `-n, --num`: 推荐数量,默认 10
85
+ - `-t, --text`: 描述文本(可选),用于进一步细化相似方向
86
+
87
+ ### 2.3 文本推歌
88
+
89
+ ```bash
90
+ kugou-cli music recommend text --text "适合跑步时听的快节奏歌曲"
91
+ kugou-cli music recommend text --text "安静的钢琴曲" --num 5
92
+ ```
93
+
94
+ **参数**:
95
+ - `-t, --text`: 文本描述(必填)
96
+ - `-n, --num`: 推荐数量,默认 10
97
+
98
+ **输出示例**:
99
+ ```json
100
+ {
101
+ "errcode": 0,
102
+ "data": {
103
+ "list": [
104
+ {
105
+ "song_name": "稻香",
106
+ "mix_song_id": "8889",
107
+ "artist_name": "周杰伦",
108
+ "play_link": "https://www.kugou.com/mixsong/agent_gateway/xxx.html"
109
+ }
110
+ ]
111
+ },
112
+ "status": 1
113
+ }
114
+ ```
115
+
116
+ ---
117
+
118
+ ## 4. 我的收藏
119
+
120
+ ```bash
121
+ kugou-cli music favorites
122
+ kugou-cli music favorites --page 1 --size 20
123
+ ```
124
+
125
+ **参数**:
126
+ - `--page`: 页码,默认 1
127
+ - `--size`: 每页数量,默认 20
128
+
129
+ > 注意:固定返回最近 10 首收藏,查看更多请前往酷狗App
130
+
131
+ **输出示例**:
132
+ ```json
133
+ {
134
+ "errcode": 0,
135
+ "data": {
136
+ "list": [
137
+ {
138
+ "song_name": "晴天",
139
+ "mix_song_id": "32100650",
140
+ "artist_name": "周杰伦",
141
+ "play_link": "https://www.kugou.com/mixsong/agent_gateway/j410q78a01f.html"
142
+ }
143
+ ],
144
+ "total": 50,
145
+ "msg": "当前仅显示最近的10首收藏,查看更多内容,请前往酷狗App"
146
+ },
147
+ "status": 1
148
+ }
149
+ ```
150
+
151
+ ---
152
+
153
+ ## 5. 最近播放
154
+
155
+ ```bash
156
+ kugou-cli music recent
157
+ kugou-cli music recent --page 1 --size 20
158
+ ```
159
+
160
+ **参数**:
161
+ - `--page`: 页码,默认 1
162
+ - `--size`: 每页数量,默认 20
163
+
164
+ > 注意:固定返回最近 10 首播放记录,查看更多请前往酷狗App
165
+
166
+ **输出示例**:
167
+ ```json
168
+ {
169
+ "errcode": 0,
170
+ "data": {
171
+ "list": [
172
+ {
173
+ "song_name": "七里香",
174
+ "mix_song_id": "32100651",
175
+ "artist_name": "周杰伦",
176
+ "play_link": "https://www.kugou.com/mixsong/agent_gateway/j410q78a01f.html"
177
+ }
178
+ ],
179
+ "total": 100,
180
+ "msg": "当前仅显示最近的10首最近播放,查看更多内容,请前往酷狗App"
181
+ },
182
+ "status": 1
183
+ }
184
+ ```
185
+
186
+ ---
187
+
188
+ ## 6. 听歌统计
189
+
190
+ ```bash
191
+ kugou-cli music stats # 默认查当月
192
+ kugou-cli music stats --date-type 1 --date 20260501 # 指定周查询
193
+ ```
194
+
195
+ **参数**:
196
+ - `--date-type`: 日期类型,0=日、1=周、2=月,默认 2(月)
197
+ - `--date`: 查询日期,YYYYMMDD 格式,如 "20260501"(不填默认当月第一天)
198
+ - 日类型:每天日期,如 "20260501"
199
+ - 周类型:必须是周一日期,如 "20260505"(周一)
200
+ - 月类型:必须是月份第一天,如 "20260501"(5月1日)
201
+
202
+ **输出示例**:
203
+ ```json
204
+ {
205
+ "errcode": 0,
206
+ "data": {
207
+ "server_time": 1779977674,
208
+ "listen_duration": 80776,
209
+ "accumulate_listen_days": 30,
210
+ "continue_listen_days": 7,
211
+ "listen_total": 342,
212
+ "last_listen_total": 387,
213
+ "top_clocks": [
214
+ "今日08:00-10:00听歌30分钟",
215
+ "今日14:00-16:00听歌25分钟",
216
+ "今日20:00-22:00听歌20分钟"
217
+ ],
218
+ "rank_song": [
219
+ {
220
+ "song_info": {"song_name": "晴天", "mix_song_id": "8888", "artist_name": "周杰伦", "play_link": "https://www.kugou.com/..."},
221
+ "count": 50
222
+ }
223
+ ],
224
+ "rank_singer": [
225
+ {"singer_id": 123, "name": "周杰伦", "avatar": "https://xxx.jpg", "total": 120}
226
+ ],
227
+ "rank_style": [
228
+ {"style": "流行", "total": 200, "count": 80}
229
+ ],
230
+ "rank_language": [
231
+ {"language": "华语", "total": 400, "count": 150}
232
+ ]
233
+ },
234
+ "status": 1
235
+ }
236
+ ```
237
+
238
+ **关键字段**:
239
+ - `listen_duration`: 今日/周/月听歌时长(秒)
240
+ - `top_clocks`: 听歌时长最长的 Top3 时段描述(日类型格式如"今日08:00-10:00听歌30分钟",周/月类型格式如"2026-02月听歌38213分钟")
241
+ - `accumulate_listen_days`: 累计听歌天数
242
+ - `continue_listen_days`: 连续听歌天数
243
+ - `listen_total`: 累计听歌次数
244
+ - `last_listen_total`: 昨日/上周/上月听歌次数
245
+ - `rank_song`: 播放最多的歌曲排行(`count` 为播放次数)
246
+ - `rank_singer`: 播放最多的歌手排行
247
+ - `rank_style`: 曲风分布统计
248
+ - `rank_language`: 语言分布统计
249
+
250
+ ---
251
+
252
+ ## 7. 榜单
253
+
254
+ ```bash
255
+ kugou-cli music charts 6666
256
+ kugou-cli music charts 52144 --page 1 --size 20
257
+ ```
258
+
259
+ **可用榜单 ID**:
260
+
261
+ | rank_id | 榜单名称 |
262
+ |---------|----------|
263
+ | 8888 | TOP500榜 |
264
+ | 90379 | 星耀星光榜 |
265
+ | 6666 | 飙升榜 |
266
+ | 85432 | 百万收藏榜 |
267
+ | 74534 | 新歌榜 |
268
+ | 52144 | 抖音热歌酷狗榜 |
269
+
270
+ **参数**:
271
+ - `<rank_id>`: 榜单 ID(必填)
272
+ - `--page`: 页码,默认 1
273
+ - `--size`: 每页数量,默认 20
@@ -0,0 +1,42 @@
1
+ # 输出格式与展示规范
2
+
3
+ ## 通用响应结构
4
+
5
+ 所有 API 命令输出标准 JSON 结构:
6
+
7
+ ```json
8
+ {
9
+ "errcode": 0,
10
+ "errmsg": "",
11
+ "data": { ... },
12
+ "status": 1
13
+ }
14
+ ```
15
+
16
+ **响应状态**:
17
+ - `errcode: 0` 表示成功
18
+ - `data` 包含实际业务数据
19
+ - `status: 1` 表示接口调用成功
20
+
21
+ ---
22
+
23
+ ## 展示规范
24
+
25
+ 向用户展示结果时,**必须遵循以下规范**:
26
+
27
+ ### 1. 歌曲列表展示(强制要求)
28
+
29
+ - **禁止**只返回歌曲名、歌手名
30
+ - **必须**以 Markdown 链接格式展示播放链接
31
+ - 正确格式:`[歌曲名 - 歌手名](https://www.kugou.com/...)`
32
+ - 禁止格式:`晴天 - 周杰伦`(无链接)、`歌曲名: 晴天, 歌手: 周杰伦`(无链接)
33
+
34
+ ### 2. 统计数据
35
+
36
+ 提取关键字段并以结构化方式呈现(如"累计听歌 342 首,时长 22.4 小时")
37
+
38
+ ### 3. 二维码
39
+
40
+ 使用 `qrcode_img_path` 对应的图片文件发送给用户
41
+
42
+ ---
@@ -0,0 +1,128 @@
1
+ # 更新命令 (update)
2
+
3
+ > 自动检查并更新 kugou-cli
4
+
5
+ ## 命令
6
+
7
+ | 命令 | 说明 |
8
+ |------|------|
9
+ | `kugou-cli update --check` | 仅检查更新,不执行 |
10
+ | `kugou-cli update` | 检查并提示(不自动执行) |
11
+ | `kugou-cli update --force` | 直接执行更新(仅 npm 安装) |
12
+
13
+ ---
14
+
15
+ ## 工作机制
16
+
17
+ ### 1. 启动时检查
18
+
19
+ 每次执行任意 `kugou-cli` 命令时,**后台异步**检查 npm registry 上的最新版本。
20
+
21
+ - **不阻塞** 主命令
22
+ - 有更新时输出到 **stderr**(避免污染 stdout JSON 输出)
23
+ - 提示格式:
24
+ ```
25
+ [kugou-cli] update available: 0.0.22 → 0.0.23 (run `kugou-cli update` to upgrade)
26
+ ```
27
+
28
+ ### 2. 检查频率限制
29
+
30
+ - 缓存文件:`~/.config/kugou-cli/update_check.json`
31
+ - 缓存有效期:**24 小时**
32
+ - 24 小时内不会重复访问 npm registry
33
+
34
+ ### 3. 跳过检查
35
+
36
+ 在以下情况跳过启动检查:
37
+ - `CI=true` 环境变量
38
+ - `KUGOU_CLI_NO_UPDATE_CHECK=1` 环境变量
39
+ - 命令行指定 `--no-update-check` flag
40
+
41
+ ---
42
+
43
+ ## 显式检查更新
44
+
45
+ ```bash
46
+ kugou-cli update --check
47
+ ```
48
+
49
+ **输出示例**:
50
+
51
+ 有更新时:
52
+ ```json
53
+ {
54
+ "current_version": "0.0.22",
55
+ "latest_version": "0.0.23",
56
+ "update_available": true,
57
+ "install_method": "npm",
58
+ "update_command": "npm install -g @kg-ai/kugou-skill@latest"
59
+ }
60
+ ```
61
+
62
+ 无更新时:
63
+ ```json
64
+ {
65
+ "current_version": "0.0.22",
66
+ "latest_version": "0.0.22",
67
+ "update_available": false,
68
+ "install_method": "npm"
69
+ }
70
+ ```
71
+
72
+ ---
73
+
74
+ ## 执行更新
75
+
76
+ ### 方式 1:Agent / 脚本(推荐)
77
+
78
+ ```bash
79
+ # 步骤 1: 检查
80
+ info=$(kugou-cli update --check)
81
+ update_available=$(echo "$info" | jq -r '.update_available')
82
+
83
+ # 步骤 2: 如果有更新,提示用户确认后执行
84
+ if [ "$update_available" = "true" ]; then
85
+ echo "有可用更新,正在升级..."
86
+ kugou-cli update --force
87
+ fi
88
+ ```
89
+
90
+ ### 方式 2:手动
91
+
92
+ ```bash
93
+ # 提示但不执行
94
+ kugou-cli update
95
+ # 显示: About to run: npm install -g @kg-ai/kugou-skill@latest
96
+
97
+ # 强制执行
98
+ kugou-cli update --force
99
+ ```
100
+
101
+ ### 方式 3:标准 npm 命令
102
+
103
+ 无需 `update` 子命令,直接:
104
+ ```bash
105
+ npm install -g @kg-ai/kugou-skill@latest
106
+ ```
107
+
108
+ ---
109
+
110
+ ## 安装方式检测
111
+
112
+ CLI 自动检测安装方式:
113
+
114
+ | 安装方式 | 检测方法 | 是否支持自动更新 |
115
+ |---------|---------|------------------|
116
+ | **npm** | 二进制路径包含 `node_modules/@kg-ai/kugou-skill` | ✅ 支持 |
117
+ | **其他**(源码编译 / 手动下载) | 其他路径 | ❌ 仅提示 |
118
+
119
+ 非 npm 安装时,CLI 只会提示,不会自动更新。请使用对应方式更新。
120
+
121
+ ---
122
+
123
+ ## 注意事项
124
+
125
+ 1. **网络要求**:检查更新需要访问 `https://registry.npmjs.org`,在受限网络下可能失败
126
+ 2. **离线友好**:网络失败时静默忽略,不影响主命令
127
+ 3. **CI 友好**:CI 环境默认跳过检查,避免污染日志
128
+ 4. **不强制**:默认仅提示,更新需用户/Agent 显式确认