@cloudglab/yapi-cli 0.0.1

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 (115) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +131 -0
  3. package/dist/bin/yapi.d.ts +2 -0
  4. package/dist/bin/yapi.js +8 -0
  5. package/dist/bin/yapi.js.map +1 -0
  6. package/dist/cli.d.ts +1 -0
  7. package/dist/cli.js +203 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/core/changelog.d.ts +17 -0
  10. package/dist/core/changelog.js +117 -0
  11. package/dist/core/changelog.js.map +1 -0
  12. package/dist/core/cli-output.d.ts +13 -0
  13. package/dist/core/cli-output.js +65 -0
  14. package/dist/core/cli-output.js.map +1 -0
  15. package/dist/core/cli-registry.d.ts +38 -0
  16. package/dist/core/cli-registry.js +189 -0
  17. package/dist/core/cli-registry.js.map +1 -0
  18. package/dist/core/completion.d.ts +3 -0
  19. package/dist/core/completion.js +94 -0
  20. package/dist/core/completion.js.map +1 -0
  21. package/dist/core/doctor.d.ts +13 -0
  22. package/dist/core/doctor.js +124 -0
  23. package/dist/core/doctor.js.map +1 -0
  24. package/dist/core/errors.d.ts +38 -0
  25. package/dist/core/errors.js +74 -0
  26. package/dist/core/errors.js.map +1 -0
  27. package/dist/core/output.d.ts +27 -0
  28. package/dist/core/output.js +208 -0
  29. package/dist/core/output.js.map +1 -0
  30. package/dist/core/update-probe.d.ts +14 -0
  31. package/dist/core/update-probe.js +67 -0
  32. package/dist/core/update-probe.js.map +1 -0
  33. package/dist/core/write-guard.d.ts +25 -0
  34. package/dist/core/write-guard.js +36 -0
  35. package/dist/core/write-guard.js.map +1 -0
  36. package/dist/index.d.ts +4 -0
  37. package/dist/index.js +4 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/install.d.ts +13 -0
  40. package/dist/install.js +201 -0
  41. package/dist/install.js.map +1 -0
  42. package/dist/services/yapi/api.d.ts +696 -0
  43. package/dist/services/yapi/api.js +700 -0
  44. package/dist/services/yapi/api.js.map +1 -0
  45. package/dist/services/yapi/auth.d.ts +37 -0
  46. package/dist/services/yapi/auth.js +143 -0
  47. package/dist/services/yapi/auth.js.map +1 -0
  48. package/dist/services/yapi/authCache.d.ts +25 -0
  49. package/dist/services/yapi/authCache.js +80 -0
  50. package/dist/services/yapi/authCache.js.map +1 -0
  51. package/dist/services/yapi/cache.d.ts +27 -0
  52. package/dist/services/yapi/cache.js +88 -0
  53. package/dist/services/yapi/cache.js.map +1 -0
  54. package/dist/services/yapi/config.d.ts +12 -0
  55. package/dist/services/yapi/config.js +66 -0
  56. package/dist/services/yapi/config.js.map +1 -0
  57. package/dist/services/yapi/index.d.ts +6 -0
  58. package/dist/services/yapi/index.js +6 -0
  59. package/dist/services/yapi/index.js.map +1 -0
  60. package/dist/services/yapi/logger.d.ts +6 -0
  61. package/dist/services/yapi/logger.js +36 -0
  62. package/dist/services/yapi/logger.js.map +1 -0
  63. package/dist/services/yapi/types.d.ts +176 -0
  64. package/dist/services/yapi/types.js +2 -0
  65. package/dist/services/yapi/types.js.map +1 -0
  66. package/dist/tools/index.d.ts +2 -0
  67. package/dist/tools/index.js +5 -0
  68. package/dist/tools/index.js.map +1 -0
  69. package/dist/tools/shared.d.ts +33 -0
  70. package/dist/tools/shared.js +46 -0
  71. package/dist/tools/shared.js.map +1 -0
  72. package/dist/tools/yapi/docs-sync.d.ts +29 -0
  73. package/dist/tools/yapi/docs-sync.js +243 -0
  74. package/dist/tools/yapi/docs-sync.js.map +1 -0
  75. package/dist/tools/yapi/index.d.ts +6 -0
  76. package/dist/tools/yapi/index.js +7 -0
  77. package/dist/tools/yapi/index.js.map +1 -0
  78. package/dist/tools/yapi/register-auth.d.ts +2 -0
  79. package/dist/tools/yapi/register-auth.js +182 -0
  80. package/dist/tools/yapi/register-auth.js.map +1 -0
  81. package/dist/tools/yapi/register-group.d.ts +2 -0
  82. package/dist/tools/yapi/register-group.js +178 -0
  83. package/dist/tools/yapi/register-group.js.map +1 -0
  84. package/dist/tools/yapi/register-interface.d.ts +2 -0
  85. package/dist/tools/yapi/register-interface.js +359 -0
  86. package/dist/tools/yapi/register-interface.js.map +1 -0
  87. package/dist/tools/yapi/register-project.d.ts +2 -0
  88. package/dist/tools/yapi/register-project.js +300 -0
  89. package/dist/tools/yapi/register-project.js.map +1 -0
  90. package/dist/tools/yapi/register-test.d.ts +2 -0
  91. package/dist/tools/yapi/register-test.js +267 -0
  92. package/dist/tools/yapi/register-test.js.map +1 -0
  93. package/dist/tools/yapi/register-util.d.ts +2 -0
  94. package/dist/tools/yapi/register-util.js +565 -0
  95. package/dist/tools/yapi/register-util.js.map +1 -0
  96. package/dist/tools/yapi/register.d.ts +6 -0
  97. package/dist/tools/yapi/register.js +19 -0
  98. package/dist/tools/yapi/register.js.map +1 -0
  99. package/dist/tools/yapi/utils.d.ts +11 -0
  100. package/dist/tools/yapi/utils.js +28 -0
  101. package/dist/tools/yapi/utils.js.map +1 -0
  102. package/dist/version.d.ts +1 -0
  103. package/dist/version.js +2 -0
  104. package/dist/version.js.map +1 -0
  105. package/package.json +38 -0
  106. package/skills/yapi-cli/SKILL.md +126 -0
  107. package/skills/yapi-cli/reference/auth.md +106 -0
  108. package/skills/yapi-cli/reference/cli.md +60 -0
  109. package/skills/yapi-cli/reference/commands.md +152 -0
  110. package/skills/yapi-cli/reference/group.md +77 -0
  111. package/skills/yapi-cli/reference/install.md +82 -0
  112. package/skills/yapi-cli/reference/interface.md +185 -0
  113. package/skills/yapi-cli/reference/overview.md +52 -0
  114. package/skills/yapi-cli/reference/project.md +115 -0
  115. package/skills/yapi-cli/reference/test.md +130 -0
@@ -0,0 +1,28 @@
1
+ import { YApiService, YApiAuthService, requireConfig, YAPI_HOME } from '../../services/yapi/index.js';
2
+ /** 从配置创建 YApi 服务实例 */
3
+ export function createYApiServices() {
4
+ const config = requireConfig();
5
+ const auth = new YApiAuthService(YAPI_HOME);
6
+ const api = new YApiService(config.serverUrl, () => auth.getAuthHeaders(), () => auth.getToken() ?? config.token ?? '');
7
+ return { config, auth, api };
8
+ }
9
+ /** 格式化方法/状态标签 */
10
+ export function formatMethod(method) {
11
+ const colors = {
12
+ GET: 'GET',
13
+ POST: 'POST',
14
+ PUT: 'PUT',
15
+ DELETE: 'DEL',
16
+ PATCH: 'PATCH',
17
+ HEAD: 'HEAD',
18
+ OPTIONS: 'OPT',
19
+ };
20
+ return colors[method] ?? method;
21
+ }
22
+ /** 截断字符串 */
23
+ export function truncate(text, maxLength) {
24
+ if (text.length <= maxLength)
25
+ return text;
26
+ return `${text.slice(0, maxLength - 3)}...`;
27
+ }
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/tools/yapi/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEtG,sBAAsB;AACtB,MAAM,UAAU,kBAAkB;IAKhC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,WAAW,CACzB,MAAM,CAAC,SAAS,EAChB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAC3B,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAC5C,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC/B,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,MAAM,GAA2B;QACrC,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,KAAK;KACf,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AAClC,CAAC;AAED,YAAY;AACZ,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,SAAiB;IACtD,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const CLI_VERSION = "0.0.0";
@@ -0,0 +1,2 @@
1
+ export const CLI_VERSION = '0.0.0';
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@cloudglab/yapi-cli",
3
+ "version": "0.0.1",
4
+ "private": false,
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "yapi": "dist/bin/yapi.js",
10
+ "yapi-cli": "dist/bin/yapi.js"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "skills",
15
+ "README.md",
16
+ "CHANGELOG.md"
17
+ ],
18
+ "scripts": {
19
+ "build": "rm -rf dist && node scripts/copy-skills.mjs && tsc -p tsconfig.json && node scripts/fix-bin-mode.mjs",
20
+ "dev": "tsx src/bin/yapi.ts",
21
+ "typecheck": "tsc -p tsconfig.json --noEmit",
22
+ "test": "vitest run --passWithNoTests"
23
+ },
24
+ "dependencies": {
25
+ "zod": "^3.24.1"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^22.10.2",
29
+ "@vitest/coverage-v8": "^2.1.9",
30
+ "tsx": "^4.19.2",
31
+ "typescript": "^5.7.2",
32
+ "vitest": "^2.1.8"
33
+ },
34
+ "engines": {
35
+ "node": ">=18"
36
+ },
37
+ "packageManager": "pnpm@10.24.0"
38
+ }
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: yapi-cli
3
+ description: YApi CLI 技能包 - 管理 YApi 项目/接口/分组的命令行工具
4
+ triggers:
5
+ - yapi
6
+ - yapi-cli
7
+ - YApi
8
+ - 接口管理
9
+ - 接口文档
10
+ - mock
11
+ argument-hint: "[command]"
12
+ ---
13
+
14
+ # @cloudglab/yapi-cli
15
+
16
+ ## 概览
17
+
18
+ 把 YApi 接口管理能力暴露给命令行 / 智能体使用,默认带写保护。
19
+
20
+ 建议把它当成一个"命令行技能包":先安装,再按 `reference/` 文档执行。
21
+
22
+ ## 命令选择强制规则
23
+
24
+ - 不确定命令名或参数时,先查 `reference/*.md`,不要猜参数名。
25
+ - 需要确认某条命令参数时,优先运行 `yapi help <command>`。
26
+ - 如果 CLI 返回 `未知参数`,立即运行 `yapi help <command>` 校对参数;不要换一个看起来相似但未确认的参数。
27
+ - 默认只预览(preview);写操作必须显式传 `--confirm true`。
28
+ - 如需全局禁用写操作,设置 `YAPI_DISABLE_WRITE=true`。
29
+
30
+ ## Reference 路由表
31
+
32
+ - 分组 / 我的分组 / 分组详情 / 分组成员:`reference/group.md`
33
+ - 项目 / 项目列表 / 项目详情 / 环境配置 / 项目成员 / 关注项目:`reference/project.md`
34
+ - 接口 / 接口列表 / 接口详情 / 接口 CRUD / 分类 / Mock 开关 / Mock 脚本:`reference/interface.md`
35
+ - 接口搜索:`reference/interface.md#搜索`
36
+ - 测试 / HTTP 方法测试 / 上传测试 / 自动测试:`reference/test.md`
37
+ - 用户 / 用户列表 / 用户搜索 / 头像:`reference/auth.md#用户管理`
38
+ - 认证 / 登录 / 登出 / 当前用户:`reference/auth.md`
39
+ - 配置 / 初始化 / 安装 / 更新 / 卸载 / 版本 / 自检:`reference/install.md`
40
+ - 导出 / 日志 / 集合 / 文档同步:`reference/interface.md`
41
+
42
+ ## 入口优先级
43
+
44
+ 1. 本机已安装 `yapi`:直接执行
45
+ 2. 未安装时:`npm i -g @cloudglab/yapi-cli@latest`
46
+ 3. 只能临时使用时:`npx -y @cloudglab/yapi-cli@latest`
47
+ 4. 默认只 preview;写操作必须显式确认
48
+
49
+ ## 安装 / 更新
50
+
51
+ 一键安装 CLI + skill:
52
+
53
+ ```bash
54
+ yapi install
55
+ npx -y @cloudglab/yapi-cli@latest install
56
+ ```
57
+
58
+ 更新 CLI + skill:
59
+
60
+ ```bash
61
+ yapi update
62
+ yapi update --cli-only
63
+ yapi update --skill-only
64
+ ```
65
+
66
+ 卸载:
67
+
68
+ ```bash
69
+ yapi uninstall
70
+ yapi uninstall --confirm true
71
+ ```
72
+
73
+ ## 启动方式
74
+
75
+ ```bash
76
+ yapi --help
77
+ yapi help
78
+ yapi help <command>
79
+ yapi version
80
+ yapi whoami
81
+ yapi doctor
82
+ ```
83
+
84
+ 或直接:
85
+
86
+ ```bash
87
+ npx -y @cloudglab/yapi-cli@latest
88
+ npx -y @cloudglab/yapi-cli@latest --help
89
+ ```
90
+
91
+ ## 文档入口
92
+
93
+ - `reference/overview.md`
94
+ - `reference/install.md`
95
+ - `reference/cli.md`
96
+ - `reference/commands.md`
97
+ - `reference/auth.md`
98
+ - `reference/group.md`
99
+ - `reference/project.md`
100
+ - `reference/interface.md`
101
+ - `reference/test.md`
102
+
103
+ ## 典型能力
104
+
105
+ - 查分组 / 项目 / 接口 / 分类
106
+ - 接口搜索、CRUD、Mock 开关与脚本
107
+ - 环境配置、成员管理、关注项目
108
+ - HTTP 方法测试(GET/POST/PUT/DELETE/HEAD/OPTIONS/PATCH)
109
+ - 上传测试、自动测试、接口导入导出
110
+ - 用户管理、日志查询、集合管理
111
+ - 配置初始化、安装 / 更新 / 卸载、自检
112
+
113
+ ## 写保护
114
+
115
+ 默认支持写操作;真实写入仍需要显式确认:
116
+
117
+ - `--confirm true`
118
+
119
+ 如需禁用写操作,设置:
120
+
121
+ - `YAPI_DISABLE_WRITE=true`
122
+
123
+ ## 运行时要求
124
+
125
+ - 发布产物:`Node.js >= 18`
126
+ - 开发 / 构建环境可以高于 18
@@ -0,0 +1,106 @@
1
+ # 认证 & 用户管理
2
+
3
+ ## 强制判断
4
+
5
+ 在调用任何认证或用户管理命令前,先判断用户意图:
6
+
7
+ 1. **配置初始化** → 新用户首次使用,需要 `--server` + `--token`(或后面再 login)
8
+ 2. **登录** → 区分 token 登录 vs 密码登录(LDAP/本地账号均走密码登录)
9
+ 3. **查看当前用户** → `whoami`,不需要参数
10
+ 4. **用户管理** → 管理员操作,需要确认是否有权限
11
+
12
+ ## 认证
13
+
14
+ ### 初始化配置
15
+
16
+ ```bash
17
+ yapi config-init --server https://yapi.example.com --token <token>
18
+ yapi config-init --server https://yapi.example.com --email <email> --password <password>
19
+ ```
20
+
21
+ - `--server`:YApi 服务地址(必填)
22
+ - `--token`:API Token(认证用,二选一)
23
+ - `--email` + `--password`:账号密码(认证用,二选一)
24
+ - `--projectId`:默认项目 ID(可选)
25
+
26
+ ### Token 登录
27
+
28
+ ```bash
29
+ yapi login --token <token>
30
+ yapi login-by-token --token <token> --uid <uid>
31
+ ```
32
+
33
+ `login-by-token` 需要同时传 `--uid` 用于设置 `_yapi_uid` cookie。
34
+
35
+ ### 密码登录
36
+
37
+ ```bash
38
+ yapi login --email <email> --password <password>
39
+ ```
40
+
41
+ 支持 LDAP 和本地账号。YApi 服务端统一处理认证方式。
42
+
43
+ ### 登出
44
+
45
+ ```bash
46
+ yapi logout
47
+ ```
48
+
49
+ 清除本地认证缓存,同时调用服务端登出接口。
50
+
51
+ ### 查看当前用户
52
+
53
+ ```bash
54
+ yapi whoami
55
+ ```
56
+
57
+ 优先从本地认证缓存读取,失败时回退到服务端查询。
58
+
59
+ ## 用户管理
60
+
61
+ ### 用户列表
62
+
63
+ ```bash
64
+ yapi user-list
65
+ ```
66
+
67
+ 列出所有注册用户。
68
+
69
+ ### 搜索用户
70
+
71
+ ```bash
72
+ yapi user-search --q <keyword>
73
+ ```
74
+
75
+ 支持按用户名或邮箱搜索。
76
+
77
+ ### 注册用户
78
+
79
+ ```bash
80
+ yapi user-register --username <name> --password <pass> --email <email> --confirm true
81
+ ```
82
+
83
+ ### 删除用户
84
+
85
+ ```bash
86
+ yapi user-delete --uid <uid> --confirm true
87
+ ```
88
+
89
+ ### 用户头像
90
+
91
+ ```bash
92
+ yapi user-avatar --uid <uid>
93
+ yapi user-upload-avatar --uid <uid> --imagePath <path> --confirm true
94
+ ```
95
+
96
+ ## 参数对照
97
+
98
+ | 参数名 | 类型 | 必填 | 说明 |
99
+ |--------|------|------|------|
100
+ | `server` | string | config-init | YApi 服务地址 |
101
+ | `token` | string | login 二选一 | API Token |
102
+ | `email` | string | login 二选一 | 登录邮箱 |
103
+ | `password` | string | login 二选一 | 登录密码 |
104
+ | `uid` | number | user-delete/avatar | 用户 ID |
105
+ | `username` | string | user-register | 用户名 |
106
+ | `confirm` | boolean | 写操作 | 确认执行 |
@@ -0,0 +1,60 @@
1
+ # CLI 命令参考
2
+
3
+ ## 入口
4
+
5
+ - `yapi --help` — 查看帮助
6
+ - `yapi <command> --<key> <value>` — 执行命令
7
+ - `yapi help <command>` — 查看单命令帮助
8
+ - `yapi version` — 查看版本
9
+ - `yapi doctor` — 自检
10
+ - `yapi completion --shell bash` — 生成补全脚本
11
+
12
+ ## 参数规则
13
+
14
+ - 参数名使用 kebab-case:`--project-id`、`--group-id`、`--interface-id`
15
+ - 支持 `=` 语法:`--project-id=60`
16
+ - 数组参数可重复:`--tag a --tag b`
17
+ - JSON 对象参数:`--body '{"key":"value"}'`
18
+ - 全局 `--json`:输出 JSON 格式(替代 pretty)
19
+ - 写操作需要 `--confirm true`
20
+
21
+ ## 81 个命令总览
22
+
23
+ ### 认证 & 配置(5 个)
24
+
25
+ `config-init` `login` `login-by-token` `logout` `whoami`
26
+
27
+ ### 分组(6 个)
28
+
29
+ `group-list` `group-get` `group-add` `group-up` `group-del` `member-list`
30
+
31
+ ### 项目(10 个)
32
+
33
+ `project-list` `project-get` `project-token` `env` `member` `member-change-role` `follow` `project-mock-toggle` `project-mock-script` `interface-upload`
34
+
35
+ ### 接口(15 个)
36
+
37
+ `search` `interface-list` `interface-get` `interface-create` `interface-update` `interface-delete` `interface-mock-toggle` `interface-mock-script` `category-list` `interface-up-cat-index` `interface-up-index` `request` `log` `export` `interface-download-crx`
38
+
39
+ ### 用户(6 个)
40
+
41
+ `user-list` `user-search` `user-register` `user-delete` `user-avatar` `user-upload-avatar`
42
+
43
+ ### 测试(14 个)
44
+
45
+ `test-get` `test-post` `test-put` `test-delete` `test-head` `test-options` `test-patch` `test-files-upload` `test-single-upload` `test-http-code` `test-raw` `test-response` `run-auto-test` `project-interface-data`
46
+
47
+ ### 集合(2 个)
48
+
49
+ `col-list` `col-cases`
50
+
51
+ ### 系统(8 个)
52
+
53
+ `install` `update` `uninstall` `doctor` `changelog` `completion` `install-skill` `docs-sync`
54
+
55
+ ## 扩展
56
+
57
+ - 新命令在 `src/tools/yapi/register-*.ts` 中用 `registry.tool(name, schema, handler, desc, metadata)` 注册
58
+ - 参数类型用 Zod schema:`z.string()` / `z.coerce.number()` / `z.boolean()` / `z.enum([...])`
59
+ - Handler 返回 `jsonResult({...})`,自动按 format 输出
60
+ - 元数据:`costHint`(low/medium/high)+ `nextBestTools`(相关命令推荐)
@@ -0,0 +1,152 @@
1
+ # 命令速查
2
+
3
+ ## 使用规则
4
+
5
+ - 先按用户场景选命令,再用 `yapi help <command>` 校对参数。
6
+ - 参数名以 `yapi help <command>` 输出为准;不要猜 `id`、`projectId`、`interfaceId` 这类相似参数。
7
+ - 读命令不需要 `confirm=true`;写操作(create/update/delete/upload/toggle/script)必须显式传 `--confirm true`。
8
+ - 如果命令返回 `未知参数`,立即运行 `yapi help <command>` 修正命令。
9
+ - 本机没有 `yapi` 时,用 `npx -y @cloudglab/yapi-cli@latest <command> ...`。
10
+
11
+ ## 认证 & 配置
12
+
13
+ | 场景 | 命令 | 用法 | 说明 |
14
+ | --- | --- | --- | --- |
15
+ | 初始化配置 | `config-init` | `yapi config-init --server <url> [--token <t>] [--projectId <id>]` | 首次使用必做 |
16
+ | Token 登录 | `login` | `yapi login --token <t>` | 用 token 认证 |
17
+ | 密码登录 | `login` | `yapi login --email <e> --password <p>` | LDAP/本地账号均可 |
18
+ | Token 快捷登录 | `login-by-token` | `yapi login-by-token --token <t> [--uid <uid>]` | 纯 token 登录 |
19
+ | 登出 | `logout` | `yapi logout` | 清除本地认证缓存 + 服务端登出 |
20
+ | 查看当前用户 | `whoami` | `yapi whoami` | 返回当前用户信息 |
21
+
22
+ ## 分组
23
+
24
+ | 场景 | 命令 | 用法 | 说明 |
25
+ | --- | --- | --- | --- |
26
+ | 分组列表 | `group-list` | `yapi group-list` | 列出可见分组 |
27
+ | 分组详情 | `group-get` | `yapi group-get --groupId <id>` | 查分组详细信息 |
28
+ | 创建分组 | `group-add` | `yapi group-add --groupName <name> [--groupDesc <d>] --confirm true` | 写操作 |
29
+ | 更新分组 | `group-up` | `yapi group-up --groupId <id> [--groupName <n>] [--groupDesc <d>] --confirm true` | 写操作 |
30
+ | 删除分组 | `group-del` | `yapi group-del --groupId <id> --confirm true` | 写操作 |
31
+ | 分组成员 | `member-list` | `yapi member-list --groupId <id>` | 列出分组下的成员 |
32
+
33
+ ## 项目
34
+
35
+ | 场景 | 命令 | 用法 | 说明 |
36
+ | --- | --- | --- | --- |
37
+ | 项目列表 | `project-list` | `yapi project-list [--groupId <id>] [--page <n>] [--limit <n>]` | 可按分组过滤 |
38
+ | 项目详情 | `project-get` | `yapi project-get --projectId <id>` | 查项目信息 |
39
+ | 项目 Token | `project-token` | `yapi project-token --projectId <id>` | 获取项目 token |
40
+ | 环境配置 | `env` | `yapi env --projectId <id>` | 项目环境变量 |
41
+ | 项目成员 | `member` | `yapi member --projectId <id>` | 项目成员列表 |
42
+ | 改成员角色 | `member-change-role` | `yapi member-change-role --projectId <id> --memberUid <uid> --role <role> --confirm true` | 写操作 |
43
+ | 关注项目 | `follow` | `yapi follow` | 我关注的项目列表 |
44
+ | Mock 开关 | `project-mock-toggle` | `yapi project-mock-toggle --projectId <id> [--open true] --confirm true` | 开关项目级 Mock |
45
+ | Mock 脚本 | `project-mock-script` | `yapi project-mock-script --projectId <id> [--script <s>] --confirm true` | 设置项目 Mock 脚本 |
46
+ | 导入接口 | `interface-upload` | `yapi interface-upload --projectId <id> --content <json> [--type swagger] --confirm true` | 批量导入 |
47
+
48
+ ## 接口
49
+
50
+ | 场景 | 命令 | 用法 | 说明 |
51
+ | --- | --- | --- | --- |
52
+ | 搜索接口 | `search` | `yapi search --q <keyword> [--projectId <id>] [--page <n>] [--limit <n>]` | 关键词搜索 |
53
+ | 接口列表 | `interface-list` | `yapi interface-list --projectId <id> [--status <s>] [--method <m>] [--page <n>] [--limit <n>]` | 按项目查接口 |
54
+ | 接口详情 | `interface-get` | `yapi interface-get --interfaceId <id>` | 查看接口定义 |
55
+ | 创建接口 | `interface-create` | `yapi interface-create --projectId <n> --catId <n> --title <s> --path <s> [--method GET] [--desc <s>] --confirm true` | 写操作 |
56
+ | 更新接口 | `interface-update` | `yapi interface-update --interfaceId <id> [--title <s>] [--path <s>] [--method <m>] --confirm true` | 写操作 |
57
+ | 删除接口 | `interface-delete` | `yapi interface-delete --interfaceId <id> --confirm true` | 写操作 |
58
+ | Mock 开关 | `interface-mock-toggle` | `yapi interface-mock-toggle --interfaceId <id> [--open true] --confirm true` | 开关接口级 Mock |
59
+ | Mock 脚本 | `interface-mock-script` | `yapi interface-mock-script --interfaceId <id> [--script <s>] --confirm true` | 设置接口 Mock 脚本 |
60
+ | 分类列表 | `category-list` | `yapi category-list --projectId <id>` | 项目的接口分类 |
61
+ | 分类排序 | `interface-up-cat-index` | `yapi interface-up-cat-index --catid <id> --index <n> --confirm true` | 调整分类排序 |
62
+ | 接口排序 | `interface-up-index` | `yapi interface-up-index --interfaceId <id> --index <n> --confirm true` | 调整接口排序 |
63
+ | 原始请求 | `request` | `yapi request --path <s> [--method GET] [--body <json>]` | 发送任意请求 |
64
+ | 日志 | `log` | `yapi log --interfaceId <id> [--projectId <id>]` | 查看接口更新日志 |
65
+ | 导出 | `export` | `yapi export --projectId <id> [--type json]` | 导出接口定义 |
66
+ | 下载 CRX | `interface-download-crx` | `yapi interface-download-crx` | 下载 YApi 跨域插件 |
67
+
68
+ ## 用户管理
69
+
70
+ | 场景 | 命令 | 用法 | 说明 |
71
+ | --- | --- | --- | --- |
72
+ | 用户列表 | `user-list` | `yapi user-list` | 列出所有用户 |
73
+ | 搜索用户 | `user-search` | `yapi user-search --q <keyword>` | 按关键词搜索用户 |
74
+ | 注册用户 | `user-register` | `yapi user-register --username <u> --password <p> --email <e> [--role <r>] --confirm true` | 写操作 |
75
+ | 删除用户 | `user-delete` | `yapi user-delete --uid <uid> --confirm true` | 写操作 |
76
+ | 用户头像 | `user-avatar` | `yapi user-avatar --uid <uid>` | 查看用户头像 |
77
+ | 上传头像 | `user-upload-avatar` | `yapi user-upload-avatar --uid <uid> --imagePath <path> --confirm true` | 写操作 |
78
+
79
+ ## 测试
80
+
81
+ | 场景 | 命令 | 用法 | 说明 |
82
+ | --- | --- | --- | --- |
83
+ | GET 测试 | `test-get` | `yapi test-get --url <url> [--params <json>]` | HTTP GET 请求测试 |
84
+ | POST 测试 | `test-post` | `yapi test-post --url <url> [--body <json>]` | HTTP POST 请求测试 |
85
+ | PUT 测试 | `test-put` | `yapi test-put --url <url> [--body <json>]` | HTTP PUT 请求测试 |
86
+ | DELETE 测试 | `test-delete` | `yapi test-delete --url <url>` | HTTP DELETE 请求测试 |
87
+ | HEAD 测试 | `test-head` | `yapi test-head --url <url>` | HTTP HEAD 请求测试 |
88
+ | OPTIONS 测试 | `test-options` | `yapi test-options --url <url>` | HTTP OPTIONS 请求测试 |
89
+ | PATCH 测试 | `test-patch` | `yapi test-patch --url <url> [--body <json>]` | HTTP PATCH 请求测试 |
90
+ | 文件上传 | `test-files-upload` | `yapi test-files-upload --url <url> --filePaths <p1> [--params <json>]` | 多文件上传测试 |
91
+ | 单文件上传 | `test-single-upload` | `yapi test-single-upload --url <url> --filePath <p>` | 单文件上传测试 |
92
+ | HTTP 状态码 | `test-http-code` | `yapi test-http-code --url <url>` | 检查响应状态码 |
93
+ | 原始响应 | `test-raw` | `yapi test-raw --url <url>` | 查看原始响应 |
94
+ | 响应结构 | `test-response` | `yapi test-response --url <url>` | 查看完整响应结构 |
95
+ | 自动测试 | `run-auto-test` | `yapi run-auto-test --projectId <id> [--format json]` | 运行项目自动测试 |
96
+ | 项目接口数据 | `project-interface-data` | `yapi project-interface-data --projectId <id>` | 查询项目接口测试数据 |
97
+
98
+ ## 集合
99
+
100
+ | 场景 | 命令 | 用法 | 说明 |
101
+ | --- | --- | --- | --- |
102
+ | 集合列表 | `col-list` | `yapi col-list --projectId <id>` | 项目下的测试集合列表 |
103
+ | 集合用例 | `col-cases` | `yapi col-cases --projectId <id> --colId <id>` | 集合下的测试用例 |
104
+
105
+ ## 系统
106
+
107
+ | 场景 | 命令 | 用法 | 说明 |
108
+ | --- | --- | --- | --- |
109
+ | 自检 | `doctor` | `yapi doctor` | 检查 Node/配置/网络连通性 |
110
+ | 版本 | `version` | `yapi version [--json] [--verbose]` | 查看版本详情 |
111
+ | 变更日志 | `changelog` | `yapi changelog [--limit <n>] [--version <v>]` | 查看版本变更历史 |
112
+ | 更新 | `update` | `yapi update [--cli-only] [--skill-only]` | 更新 CLI + skill |
113
+ | 安装 skill | `install-skill` | `yapi install-skill` | 安装 skill 到本地 |
114
+ | 文档同步 | `docs-sync` | `yapi docs-sync [--path <p>] [--validate]` | 从 markdown 同步文档 |
115
+ | Shell 补全 | `completion` | `yapi completion [--shell bash]` | 生成 shell 补全脚本 |
116
+
117
+ ## 常用组合
118
+
119
+ ### 查一个项目的完整上下文
120
+
121
+ ```bash
122
+ yapi project-get --projectId <id>
123
+ yapi interface-list --projectId <id> --limit 100
124
+ yapi category-list --projectId <id>
125
+ yapi env --projectId <id>
126
+ yapi member --projectId <id>
127
+ ```
128
+
129
+ ### 创建并配置新接口
130
+
131
+ ```bash
132
+ yapi category-list --projectId <id> # 确认分类 ID
133
+ yapi interface-create --projectId <id> --catId <cid> --title <t> --path <p> --confirm true
134
+ yapi interface-list --projectId <id> # 验证已创建
135
+ yapi interface-mock-script --interfaceId <iid> --script <s> --confirm true
136
+ ```
137
+
138
+ ### 查接口详情 + 日志 + Mock 状态
139
+
140
+ ```bash
141
+ yapi interface-get --interfaceId <id>
142
+ yapi log --interfaceId <id>
143
+ yapi interface-mock-toggle --interfaceId <id>
144
+ ```
145
+
146
+ ### 搜索 + 测试
147
+
148
+ ```bash
149
+ yapi search --q <keyword> --limit 20
150
+ yapi interface-get --interfaceId <id>
151
+ yapi test-get --url <url>
152
+ ```
@@ -0,0 +1,77 @@
1
+ # 分组
2
+
3
+ ## 强制判断
4
+
5
+ 先确认用户想查的是**分组**还是**项目**:
6
+
7
+ - "分组" → YApi 的 Group,顶级容器
8
+ - "项目" → YApi 的 Project,隶属于分组
9
+
10
+ 用户给分组名时,先用 `group-list` 查全部分组,匹配名称确认 `groupId`。
11
+
12
+ ## 查询
13
+
14
+ ### 分组列表
15
+
16
+ ```bash
17
+ yapi group-list
18
+ ```
19
+
20
+ 返回可见的全部分组(id / group_name / group_desc)。
21
+
22
+ ### 分组详情
23
+
24
+ ```bash
25
+ yapi group-get --groupId <id>
26
+ ```
27
+
28
+ 查分组基本信息、成员数等。
29
+
30
+ ## 写入
31
+
32
+ ### 创建分组
33
+
34
+ ```bash
35
+ yapi group-add --groupName <name> [--groupDesc <desc>] --confirm true
36
+ ```
37
+
38
+ ### 更新分组
39
+
40
+ ```bash
41
+ yapi group-up --groupId <id> [--groupName <name>] [--groupDesc <desc>] --confirm true
42
+ ```
43
+
44
+ ### 删除分组
45
+
46
+ ```bash
47
+ yapi group-del --groupId <id> --confirm true
48
+ ```
49
+
50
+ ### 分组成员
51
+
52
+ ```bash
53
+ yapi member-list --groupId <id>
54
+ ```
55
+
56
+ ## 参数对照
57
+
58
+ | 参数名 | 类型 | 必填 | 说明 |
59
+ |--------|------|------|------|
60
+ | `groupId` | number | group-get/up/del/member-list | 分组 ID |
61
+ | `groupName` | string | group-add | 分组名称 |
62
+ | `groupDesc` | string | 否 | 分组描述 |
63
+ | `confirm` | boolean | 写操作 | 确认执行 |
64
+
65
+ ## 常见链路
66
+
67
+ ```bash
68
+ # 查全部分组 → 定位目标分组 → 查看详情
69
+ yapi group-list
70
+ yapi group-get --groupId <id>
71
+
72
+ # 查分组下的项目
73
+ yapi project-list --groupId <id>
74
+
75
+ # 查分组成员
76
+ yapi member-list --groupId <id>
77
+ ```
@@ -0,0 +1,82 @@
1
+ # 安装 / 更新 / 卸载
2
+
3
+ ## 安装
4
+
5
+ 全量安装(CLI + skill + 配置):
6
+
7
+ ```bash
8
+ yapi install
9
+ yapi install --server https://yapi.example.com --token <token>
10
+ npx -y @cloudglab/yapi-cli@latest install
11
+ ```
12
+
13
+ 仅 skill:
14
+
15
+ ```bash
16
+ yapi install --skill-only
17
+ ```
18
+
19
+ 仅 CLI 配置:
20
+
21
+ ```bash
22
+ yapi install --cli-only --server https://yapi.example.com --token <token>
23
+ ```
24
+
25
+ 从源码安装 skill:
26
+
27
+ ```bash
28
+ yapi install --skill-source git
29
+ # 或
30
+ npx -y @cloudglab/yapi-cli@latest install --skill-source git
31
+ npx -y @cloudglab/yapi-cli@latest install --skill-local-path ./package
32
+ ```
33
+
34
+ ## 更新
35
+
36
+ ```bash
37
+ yapi update
38
+ yapi update --cli-only
39
+ yapi update --skill-only
40
+ yapi update --skip-config-check
41
+ ```
42
+
43
+ 更新会先检查 npm 版本,再刷新本地 skill。
44
+
45
+ ## 卸载
46
+
47
+ ```bash
48
+ yapi uninstall
49
+ yapi uninstall --confirm true # 真实卸载
50
+ yapi uninstall --confirm true --keep-config true # 保留配置
51
+ ```
52
+
53
+ ## 自检
54
+
55
+ ```bash
56
+ yapi doctor
57
+ yapi doctor --verbose # 含网络探测
58
+ yapi doctor --json # JSON 报告
59
+ ```
60
+
61
+ ## 全局安装
62
+
63
+ ```bash
64
+ npm i -g @cloudglab/yapi-cli@latest
65
+ yapi --version
66
+ yapi --help
67
+ ```
68
+
69
+ ## 配置位置
70
+
71
+ | 文件 | 路径 |
72
+ |------|------|
73
+ | CLI 配置 | `~/.yapi/config.json` |
74
+ | 认证缓存 | `~/.yapi/.yapi-auth` |
75
+ | API 缓存 | `~/.yapi/.yapi-cache/cache.json` |
76
+
77
+ ## 环境变量
78
+
79
+ | 变量 | 作用 |
80
+ |------|------|
81
+ | `YAPI_DISABLE_WRITE=true` | 禁用所有写操作(preview 模式) |
82
+ | `CI=true` | 非交互模式 |