easytouch-linux 1.0.6
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/README.md +450 -0
- package/et +0 -0
- package/install.js +19 -0
- package/package.json +43 -0
package/README.md
ADDED
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
# EasyTouch (et)
|
|
2
|
+
|
|
3
|
+
跨平台系统自动化操作工具,支持 Windows、Linux、macOS。提供 CLI 命令行和 MCP 服务器两种使用方式,支持鼠标键盘控制、屏幕截图、窗口管理、系统信息查询、浏览器操作等功能。
|
|
4
|
+
|
|
5
|
+
目前:
|
|
6
|
+
|
|
7
|
+
- [x] Windows
|
|
8
|
+
- [ ] Linux
|
|
9
|
+
- [ ] MAC(目前缺少设备验证功能)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
大家平时使用各类 AI 编程工具,写页面是不是经常碰到 AI 写的页面怎么也不满意,写出来跟设计稿差异很大,这是因为 AI 只能通过读写代码来改进代码,它看不到界面,不像人类有感官。
|
|
14
|
+
|
|
15
|
+
所以 EasyTouch 是给 AI 装上手和眼睛。
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## 功能概览
|
|
26
|
+
|
|
27
|
+
| 模块 | 功能 |
|
|
28
|
+
|------|------|
|
|
29
|
+
| 🖱️ 鼠标控制 | 移动、点击、滚动、获取位置 |
|
|
30
|
+
| ⌨️ 键盘控制 | 按键、组合键、文本输入 |
|
|
31
|
+
| 📷 屏幕操作 | 截图、获取像素颜色、多显示器支持 |
|
|
32
|
+
| 🪟 窗口管理 | 列出、查找、激活窗口 |
|
|
33
|
+
| 🖥️ 系统信息 | CPU、内存、磁盘、进程 |
|
|
34
|
+
| 📋 剪贴板 | 文本读写、文件列表 |
|
|
35
|
+
| 🌐 浏览器控制 | 启动浏览器、页面导航、元素交互、截图 |
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
提示:在 Linux 里,由于桌面环境差异很大,有些功能在某些桌面系统下可能不可用,详见 [Linux](#Linux) 环境说明。
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### 安装
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Windows
|
|
47
|
+
npm i @whuanle/easytouch-windows
|
|
48
|
+
|
|
49
|
+
# Linux
|
|
50
|
+
npm i @whuanle/easytouch-linux
|
|
51
|
+
|
|
52
|
+
# macOS
|
|
53
|
+
npm i @whuanle/easytouch-mac
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
或者从[https://github.com/whuanle/EasyTouch/releases](https://github.com/whuanle/EasyTouch/releases)下载对应平台的可执行文件,并添加环境变量。
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
执行 `et --help` 命令测试是否正常工作:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
PS E:\workspace\EasyTouch> et --help
|
|
66
|
+
EasyTouch Windows Automation Tool
|
|
67
|
+
|
|
68
|
+
Usage: et <command> [options]
|
|
69
|
+
|
|
70
|
+
Commands:
|
|
71
|
+
mouse_move --x <n> --y <n> [--relative] [--duration <ms>]
|
|
72
|
+
mouse_click [--button left|right|middle] [--double]
|
|
73
|
+
mouse_position
|
|
74
|
+
key_press --key <key>
|
|
75
|
+
type_text --text <text> [--interval <ms>] [--human]
|
|
76
|
+
screenshot [--output <path>] [--x <n>] [--y <n>] [--width <n>] [--height <n>]
|
|
77
|
+
pixel_color --x <n> --y <n>
|
|
78
|
+
window_list [--visible-only] [--filter <text>]
|
|
79
|
+
window_find [--title <text>] [--class <name>] [--pid <n>]
|
|
80
|
+
window_activate --title <text> | --handle <n>
|
|
81
|
+
window_foreground
|
|
82
|
+
os_info, cpu_info, memory_info, disk_list
|
|
83
|
+
process_list [--filter <text>]
|
|
84
|
+
clipboard_get_text, clipboard_set_text --text <text>
|
|
85
|
+
|
|
86
|
+
help Show this help
|
|
87
|
+
version Show version
|
|
88
|
+
{"success":true}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
### 浏览器操作支持
|
|
94
|
+
|
|
95
|
+
支持浏览器:`chromium` / `firefox` / `webkit` / `edge`(`edge` 走 Chromium 通道 `msedge`)。
|
|
96
|
+
|
|
97
|
+
浏览器操作建议按会话流程执行:先启动,再获取 `browserId`,后续所有命令都使用该 `browserId`。
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
et browser_launch --browser edge --headless false
|
|
101
|
+
et browser_list
|
|
102
|
+
# 使用 browserId 执行后续命令
|
|
103
|
+
et browser_navigate --browser-id browser_1 --url "https://example.com"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
### 作为 Skills 给 AI 使用
|
|
109
|
+
|
|
110
|
+
只需要执行命令安装 skills 即可。
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
npx skills add https://github.com/whuanle/EasyTouch
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
注:skills 里面不带脚本,需提前使用 `npm i @whuanle/easytouch-windows` 安装工具。
|
|
119
|
+
|
|
120
|
+

|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
### 作为 MCP 工具使用
|
|
125
|
+
|
|
126
|
+
如果只是给 AI 工具使用,建议使用 skills 即可,配置 MCP 可能会麻烦一些。
|
|
127
|
+
|
|
128
|
+
在 Claude、Cursor 等工具中,配置 MCP 的方式都是大同小异,通过 npm/bun 等方式安装的 EasyTouch,程序文件在 `$basedir/node_modules/@whuanle/easytouch-windows` 下面,。
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
在配置文件中添加:
|
|
133
|
+
|
|
134
|
+
**Windows**
|
|
135
|
+
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"mcpServers": {
|
|
139
|
+
"easytouch": {
|
|
140
|
+
"command": "C:\\path\\to\\et.exe",
|
|
141
|
+
"args": ["--mcp"]
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**NPM 安装方式**
|
|
148
|
+
|
|
149
|
+
```json
|
|
150
|
+
{
|
|
151
|
+
"mcpServers": {
|
|
152
|
+
"easytouch": {
|
|
153
|
+
"command": "npx",
|
|
154
|
+
"args": ["-y", "easytouch-windows", "--mcp"]
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Linux / macOS**
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"mcpServers": {
|
|
165
|
+
"easytouch": {
|
|
166
|
+
"command": "/path/to/et",
|
|
167
|
+
"args": ["--mcp"]
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
## CLI 命令参考
|
|
178
|
+
|
|
179
|
+
### 鼠标控制
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# 移动鼠标(绝对坐标)
|
|
183
|
+
et mouse_move --x 100 --y 200
|
|
184
|
+
|
|
185
|
+
# 相对移动
|
|
186
|
+
t mouse_move --x 50 --y -30 --relative
|
|
187
|
+
|
|
188
|
+
# 平滑移动(500ms 动画)
|
|
189
|
+
et mouse_move --x 100 --y 200 --duration 500
|
|
190
|
+
|
|
191
|
+
# 左键单击(默认)
|
|
192
|
+
et mouse_click
|
|
193
|
+
|
|
194
|
+
# 右键双击
|
|
195
|
+
t mouse_click --button right --double
|
|
196
|
+
|
|
197
|
+
# 向上滚动3格
|
|
198
|
+
t mouse_scroll --amount 3
|
|
199
|
+
|
|
200
|
+
# 水平滚动
|
|
201
|
+
t mouse_scroll --amount 3 --horizontal
|
|
202
|
+
|
|
203
|
+
# 获取当前位置
|
|
204
|
+
t mouse_position
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### 键盘控制
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# 按下单个键
|
|
211
|
+
t key_press --key "enter"
|
|
212
|
+
|
|
213
|
+
# 组合键
|
|
214
|
+
t key_press --key "ctrl+c"
|
|
215
|
+
t key_press --key "alt+tab"
|
|
216
|
+
t key_press --key "win+d"
|
|
217
|
+
|
|
218
|
+
# 输入文本
|
|
219
|
+
t type_text --text "Hello World"
|
|
220
|
+
|
|
221
|
+
# 模拟人工打字(带随机间隔)
|
|
222
|
+
t type_text --text "Hello World" --human --interval 50
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### 屏幕操作
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# 全屏截图
|
|
229
|
+
t screenshot --output screenshot.png
|
|
230
|
+
|
|
231
|
+
# 区域截图
|
|
232
|
+
t screenshot --x 100 --y 100 --width 800 --height 600 --output region.png
|
|
233
|
+
|
|
234
|
+
# 获取像素颜色
|
|
235
|
+
t pixel_color --x 100 --y 200
|
|
236
|
+
|
|
237
|
+
# 列出显示器
|
|
238
|
+
t screen_list
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### 窗口管理
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
# 列出可见窗口
|
|
245
|
+
t window_list
|
|
246
|
+
|
|
247
|
+
# 按标题过滤
|
|
248
|
+
t window_list --filter "Chrome"
|
|
249
|
+
|
|
250
|
+
# 查找窗口
|
|
251
|
+
t window_find --title "记事本"
|
|
252
|
+
|
|
253
|
+
# 激活窗口
|
|
254
|
+
t window_activate --title "记事本"
|
|
255
|
+
|
|
256
|
+
# 获取前台窗口
|
|
257
|
+
t window_foreground
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### 系统信息
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# 操作系统信息
|
|
264
|
+
et os_info
|
|
265
|
+
|
|
266
|
+
# CPU 信息
|
|
267
|
+
et cpu_info
|
|
268
|
+
|
|
269
|
+
# 内存信息
|
|
270
|
+
et memory_info
|
|
271
|
+
|
|
272
|
+
# 磁盘列表
|
|
273
|
+
et disk_list
|
|
274
|
+
|
|
275
|
+
# 进程列表
|
|
276
|
+
et process_list --filter "chrome"
|
|
277
|
+
|
|
278
|
+
# 锁定屏幕
|
|
279
|
+
et lock_screen
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### 剪贴板
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
# 获取文本
|
|
286
|
+
et clipboard_get_text
|
|
287
|
+
|
|
288
|
+
# 设置文本
|
|
289
|
+
et clipboard_set_text --text "Hello World"
|
|
290
|
+
|
|
291
|
+
# 清空
|
|
292
|
+
et clipboard_clear
|
|
293
|
+
|
|
294
|
+
# 获取文件列表
|
|
295
|
+
et clipboard_get_files
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
### 浏览器控制
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
使用 `et browser_launch --browser` 命令启动浏览器后(匿名模式),使用 `et browser_list` 获取浏览器实例列表,之后可以使用不同的命令控制浏览器,最后可以自行关闭或使用 `et browser_close` 关闭浏览器。
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
# 列出浏览器实例
|
|
310
|
+
et browser_list
|
|
311
|
+
|
|
312
|
+
# 启动 Chromium(无头模式)
|
|
313
|
+
et browser_launch --browser chromium --headless
|
|
314
|
+
|
|
315
|
+
# 启动 Edge(有界面)
|
|
316
|
+
et browser_launch --browser edge --headless false
|
|
317
|
+
|
|
318
|
+
# 打开页面
|
|
319
|
+
et browser_navigate --browser-id <id> --url "https://example.com"
|
|
320
|
+
|
|
321
|
+
# 导航控制
|
|
322
|
+
et browser_go_back --browser-id <id>
|
|
323
|
+
et browser_go_forward --browser-id <id>
|
|
324
|
+
et browser_reload --browser-id <id>
|
|
325
|
+
|
|
326
|
+
# 点击元素
|
|
327
|
+
et browser_click --browser-id <id> --selector "#submit"
|
|
328
|
+
|
|
329
|
+
# 输入内容
|
|
330
|
+
et browser_fill --browser-id <id> --selector "input[name='q']" --value "EasyTouch"
|
|
331
|
+
|
|
332
|
+
# 滚动页面(按像素)
|
|
333
|
+
et browser_scroll --browser-id <id> --x 0 --y 800 --behavior smooth
|
|
334
|
+
|
|
335
|
+
# 下拉选择
|
|
336
|
+
et browser_select --browser-id <id> --selector "#city" --values "beijing"
|
|
337
|
+
|
|
338
|
+
# 文件上传(多个文件用逗号分隔)
|
|
339
|
+
et browser_upload --browser-id <id> --selector "input[type='file']" --files "a.txt,b.txt"
|
|
340
|
+
|
|
341
|
+
# 页面截图
|
|
342
|
+
et browser_screenshot --browser-id <id> --output page.png --full-page true
|
|
343
|
+
|
|
344
|
+
# 执行脚本
|
|
345
|
+
et browser_evaluate --browser-id <id> --script "document.title"
|
|
346
|
+
|
|
347
|
+
# 读取页面信息
|
|
348
|
+
et browser_page_info --browser-id <id>
|
|
349
|
+
|
|
350
|
+
# Cookie 管理
|
|
351
|
+
et browser_get_cookies --browser-id <id>
|
|
352
|
+
et browser_set_cookie --browser-id <id> --name token --value abc --domain example.com --path / --http-only true --secure true --same-site lax
|
|
353
|
+
et browser_clear_cookies --browser-id <id>
|
|
354
|
+
|
|
355
|
+
# 执行本地 JS/TS Playwright 测试脚本
|
|
356
|
+
et browser_run_script --script-path "./tests/example.spec.ts" --browser edge --headless true
|
|
357
|
+
|
|
358
|
+
# 透传 Playwright CLI 参数(CSV)
|
|
359
|
+
et browser_run_script --script-path "./tests/login.spec.ts" --browser chromium --extra-args "--reporter=list,--workers=1"
|
|
360
|
+
|
|
361
|
+
# 文本断言(自动化测试)
|
|
362
|
+
et browser_assert_text --browser-id <id> --selector "h1" --expected-text "Example Domain" --exact-match true
|
|
363
|
+
|
|
364
|
+
# 关闭浏览器
|
|
365
|
+
et browser_close --browser-id <id>
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
### MCP Tools
|
|
371
|
+
|
|
372
|
+
| Tool | 描述 |
|
|
373
|
+
|------|------|
|
|
374
|
+
| `mouse_move` | 移动鼠标 |
|
|
375
|
+
| `mouse_click` | 点击鼠标 |
|
|
376
|
+
| `mouse_position` | 获取鼠标位置 |
|
|
377
|
+
| `key_press` | 按下按键 |
|
|
378
|
+
| `type_text` | 输入文本 |
|
|
379
|
+
| `screenshot` | 截图 |
|
|
380
|
+
| `pixel_color` | 获取像素颜色 |
|
|
381
|
+
| `window_list` | 列出窗口 |
|
|
382
|
+
| `window_find` | 查找窗口 |
|
|
383
|
+
| `window_activate` | 激活窗口 |
|
|
384
|
+
| `system_info` | 系统信息 |
|
|
385
|
+
| `process_list` | 进程列表 |
|
|
386
|
+
| `clipboard_get_text` | 获取剪贴板文本 |
|
|
387
|
+
| `clipboard_set_text` | 设置剪贴板文本 |
|
|
388
|
+
| `browser_launch` | 启动浏览器 |
|
|
389
|
+
| `browser_navigate` | 页面导航 |
|
|
390
|
+
| `browser_click` | 点击页面元素 |
|
|
391
|
+
| `browser_fill` | 填充输入框 |
|
|
392
|
+
| `browser_find` | 查找页面元素 |
|
|
393
|
+
| `browser_get_text` | 获取页面文本 |
|
|
394
|
+
| `browser_screenshot` | 浏览器截图 |
|
|
395
|
+
| `browser_evaluate` | 执行页面脚本 |
|
|
396
|
+
| `browser_wait_for` | 等待元素状态 |
|
|
397
|
+
| `browser_assert_text` | 断言页面或元素文本 |
|
|
398
|
+
| `browser_page_info` | 获取页面信息 |
|
|
399
|
+
| `browser_go_back` / `browser_go_forward` / `browser_reload` | 页面导航控制 |
|
|
400
|
+
| `browser_scroll` | 页面/元素滚动 |
|
|
401
|
+
| `browser_select` | 下拉选择 |
|
|
402
|
+
| `browser_upload` | 文件上传 |
|
|
403
|
+
| `browser_get_cookies` / `browser_set_cookie` / `browser_clear_cookies` | Cookie 管理 |
|
|
404
|
+
| `browser_run_script` | 执行 JS/TS Playwright 测试脚本 |
|
|
405
|
+
| `browser_close` | 关闭浏览器 |
|
|
406
|
+
| `browser_list` | 列出浏览器实例 |
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
更多 MCP 使用文档见 [skills/SKILLS.md](skills/SKILLS.md)
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
## 平台说明
|
|
415
|
+
|
|
416
|
+
### Windows
|
|
417
|
+
- 完全支持所有功能
|
|
418
|
+
- 部分功能可能需要管理员权限
|
|
419
|
+
|
|
420
|
+
### Linux
|
|
421
|
+
- 官方验证环境:Ubuntu Desktop(22.04 / 24.04)
|
|
422
|
+
- 其他发行版和桌面环境为 best-effort,建议先用测试脚本验证
|
|
423
|
+
- 建议在图形界面环境中使用(优先 X11 会话)
|
|
424
|
+
- 有些功能可能需要 sudo 管理员权限
|
|
425
|
+
|
|
426
|
+
Linux 依赖可手动安装(Ubuntu):
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
# 基础依赖(推荐)
|
|
430
|
+
sudo apt install xdotool xclip xsel imagemagick gnome-screenshot
|
|
431
|
+
|
|
432
|
+
# Wayland 补充依赖(按需)
|
|
433
|
+
sudo apt install ydotool wl-clipboard grim
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
安装后可执行脚本测试兼容性:
|
|
437
|
+
|
|
438
|
+
```bash
|
|
439
|
+
node scripts/test-easytouch.js --cli-only --verbose
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### macOS
|
|
443
|
+
- 需要授予辅助功能权限(系统设置 → 隐私与安全性 → 辅助功能)
|
|
444
|
+
- 截图功能需要屏幕录制权限
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
## 许可证
|
|
449
|
+
|
|
450
|
+
MIT License
|
package/et
ADDED
|
Binary file
|
package/install.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
|
|
6
|
+
const binaryPath = path.join(__dirname, 'et');
|
|
7
|
+
|
|
8
|
+
try {
|
|
9
|
+
if (!fs.existsSync(binaryPath)) {
|
|
10
|
+
console.error(`❌ EasyTouch binary not found: ${binaryPath}`);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
fs.chmodSync(binaryPath, 0o755);
|
|
15
|
+
console.log(`✓ Set executable permission: ${binaryPath}`);
|
|
16
|
+
} catch (error) {
|
|
17
|
+
console.error(`❌ Failed to set executable permission: ${error.message}`);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "easytouch-linux",
|
|
3
|
+
"version": "1.0.6",
|
|
4
|
+
"description": "Linux system automation tool with MCP support",
|
|
5
|
+
"author": "MaomiAgent Team",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"main": "et",
|
|
8
|
+
"bin": {
|
|
9
|
+
"et": "et"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"postinstall": "node install.js"
|
|
13
|
+
},
|
|
14
|
+
"os": [
|
|
15
|
+
"linux"
|
|
16
|
+
],
|
|
17
|
+
"cpu": [
|
|
18
|
+
"x64"
|
|
19
|
+
],
|
|
20
|
+
"keywords": [
|
|
21
|
+
"linux",
|
|
22
|
+
"automation",
|
|
23
|
+
"mcp",
|
|
24
|
+
"mouse",
|
|
25
|
+
"keyboard",
|
|
26
|
+
"screenshot",
|
|
27
|
+
"window-management"
|
|
28
|
+
],
|
|
29
|
+
"mcp": {
|
|
30
|
+
"transport": "stdio",
|
|
31
|
+
"command": "et",
|
|
32
|
+
"args": ["--mcp"]
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"et",
|
|
36
|
+
"install.js",
|
|
37
|
+
"SKILL.md"
|
|
38
|
+
],
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "https://github.com/whuanle/EasyTouch"
|
|
42
|
+
}
|
|
43
|
+
}
|