iClick Automation
爱触云(iClick)IOS免越狱自动化技能,提供设备监控、设备状态检查、RPA自动化等功能
Description
name: iclick description: 爱触云(iClick)IOS免越狱自动化技能,提供设备监控、设备状态检查、RPA自动化等功能 user-invocable: true disable-model-invocation: false icon: icon/logo.png metadata: openclaw: requires: bins: - node keywords: - IOS免越狱控制 - iClick - IOS自动化 - IOS RPA - 苹果自动化脚本 - 免越狱脚本
iClick Automation
爱触云(iClick)免越狱自动化工具,支持IOS15+,支持群控、API RAP自动化编程等功能。
![]()
图标资源
技能包提供以下图标文件,可在生成报告或错误的时候引用:
| 文件 | 格式 | 用途 |
|---|---|---|
icon/logo.png |
PNG | 图标,适合引用 |
使用示例(错误时):
# iClick发送异常

## 概述
...
AI 使用约束
本技能用于控制IOS设备和查询展示状态数据,AI应遵循以下原则:
- 隐私保护:不主动泄露服务器敏感信息(如IP、设备名、屏幕截图等敏感数据)
- 执行前准备:由于接口数量较多,获取和调用需要一定时间,AI应先向用户简述即将执行的操作步骤,然后再执行命令
- 坐标转换:如果你进行屏幕元素坐标识别时候,屏幕截图传给AI时候,不要缩放,请计算正确位置
- 屏幕截图: getScreenShot获取的截图是实际的像素尺寸,后续点击滑动都依据这个坐标
执行流程示例:
AI: 我将为您执行以下操作:
1. 开始获取对应设备的状态
2. 开始分析屏幕图像
开始执行任务,请稍候...
[结束展示结果]
命令执行格式介绍 node {baseDir}/server.js 命令 '{JSON参数,注意要用单引号,不然命令行会报错}'
常用场景
场景一:获取当前连接的所有设备
当用户需要了解当前连接的手机设备时:
# 执行命令
node {baseDir}/server.js devices
命令会返回:
{
"PA448EDE2067": {
"info": {
"timeZone": "Asia/Shanghai",
"screenScale": 3,
"screenWidth": 1320,
"deviceVersion": "26.1",
"screenHeight": 2868,
"deviceId": "PA448EDE2067",
"orientation": 0,
"deviceLanguage": "zh-Hans-CN",
"deviceIdentifier": "iPhone17,2",
"ipAddress": "192.168.31.29",
"deviceName": "iPhone 16 Pro Max",
"deviceChip": "",
"deviceRounded": true
},
"time": 1770533075,
"online": false, /*是否在线*/
"plugged": false,
"busying": false,
"adapted": true
}
}
场景二:获取指定设备的屏幕截图
当用户需要了解当前连接的手机设备截图时:
# 执行命令
node {baseDir}/server.js getScreenShot '{"deviceId": "设备ID"}'
命令会返回临时文件路径(你需要把图片放到~/.openclaw/workspace中再发给我,发送完毕后删掉):
{
"status": true,
"message": "已保存",
"file": "/var/folders/t2/0dh343xx525b0hv_n_b1677c0000gn/T/8rk1whe4pj5.jpg"
}
场景三:点击屏幕指定位置
当用户需要操控点击某台手机设备时候,xy是坐标:
如果你进行屏幕元素坐标识别时候,屏幕截图传给AI时候,不要缩放并计算正确位置
# 执行命令
node {baseDir}/server.js click '{"deviceId": "设备ID", "x": x坐标, "y": y坐标}'
命令会返回status=true,如果不等于true就是失败并携带msg错误原因:
{
"status": true,
}
场景四:发送系统动作(sendAction)
当用户需要对某台设备执行 iOS 系统级动作(例如回到桌面、打开任务切换器、呼出搜索等)时:
# 执行命令
node {baseDir}/server.js sendAction '{"deviceId":"设备ID","action":"home"}'
参数说明:
- deviceId:设备 ID
- action:动作名,支持:
home:回到桌面switcher:任务切换器spotlight_search:Spotlight 搜索screen_keyboard:显示/呼出屏幕键盘inputmethod_switch:切换输入法(地球键)volume_mute:静音volume_increment:音量加volume_decrement:音量减brightness_increment:亮度加brightness_decrement:亮度减
命令会返回(成功时通常为 status=true,失败时为 status=false 并携带 message):
{
"status": true
}
场景五:获取单台设备信息(getDevice)
当用户已经拿到 deviceId,需要查看该设备更详细的状态信息时:
node {baseDir}/server.js getDevice '{"deviceId":"设备ID"}'
场景六:输入文本(sendText)
当用户需要向指定设备输入一段文字(搜索框、地址栏、聊天输入框等)时:
node {baseDir}/server.js sendText '{"deviceId":"设备ID","text":"要输入的文字"}'
场景七:重置鼠标(mouseReset)
当用户发现鼠标/指针状态异常,需要重置鼠标状态时:
node {baseDir}/server.js mouseReset '{"deviceId":"设备ID","resetConfig":false}'
resetConfig 可选,是否重置配置。
场景八:获取鼠标位置(getMousePosition)
当用户需要读取当前鼠标位置用于校准或调试时:
node {baseDir}/server.js getMousePosition '{"deviceId":"设备ID"}'
场景九:滑动屏幕(swipe)
当用户需要在屏幕上从起点滑到终点(上下翻页、列表滚动、解锁等)时:
node {baseDir}/server.js swipe '{"deviceId":"设备ID","start":{"x":100,"y":400},"end":{"x":100,"y":100},"pressTime":20,"releaseTime":20}'
pressTime/releaseTime/key 等为可选参数,具体以服务端实现为准。
场景十:移动鼠标(mouseMove)
当用户需要移动鼠标到某个位置,或按相对位移移动时:
node {baseDir}/server.js mouseMove '{"deviceId":"设备ID","x":10,"y":10,"relative":true}'
relative 可选,是否相对移动。
场景十一:鼠标按下(mouseDown)
当用户需要按住鼠标按键(拖拽、按住不放等)时:
node {baseDir}/server.js mouseDown '{"deviceId":"设备ID","key":"LEFT","autoRelease":false}'
key 支持:LEFT/RIGHT/MIDDLE/EXTRA1/EXTRA2/EXTRA3/EXTRA4/EXTRA5。
场景十二:鼠标抬起(mouseUp)
当用户需要松开鼠标按键时:
node {baseDir}/server.js mouseUp '{"deviceId":"设备ID","key":"LEFT","autoRelease":false}'
场景十三:滚轮滚动(mouseWheel)
当用户需要进行滚轮滚动(上下滚动内容)时:
node {baseDir}/server.js mouseWheel '{"deviceId":"设备ID","tilt":-120}'
场景十四:键盘按下(keyDown)
当用户需要按下某个键并保持(用于组合键场景)时:
node {baseDir}/server.js keyDown '{"deviceId":"设备ID","key":"A"}'
场景十五:键盘抬起(keyUp)
当用户需要松开之前按下的按键时:
node {baseDir}/server.js keyUp '{"deviceId":"设备ID","key":"A"}'
场景十六:发送按键(sendKey)
当用户需要发送单键或组合键(例如 Command+V)时:
node {baseDir}/server.js sendKey '{"deviceId":"设备ID","key":"v","fnkey":"COMMAND"}'
场景十七:查询媒体文件列表(queryMediaFile)
当用户需要查看设备侧媒体目录有哪些文件时:
node {baseDir}/server.js queryMediaFile '{"deviceId":"设备ID"}'
场景十八:删除媒体文件(delMediaFile)
当用户需要删除设备侧某个媒体文件时:
node {baseDir}/server.js delMediaFile '{"deviceId":"设备ID","fileName":"xxx.jpg"}'
场景十九:获取媒体文件数据(getMediaFile)
当用户需要获取设备侧某个媒体文件内容时:
node {baseDir}/server.js getMediaFile '{"deviceId":"设备ID","fileName":"xxx.jpg"}'
场景二十:保存媒体文件到设备(saveMediaFile)
当用户需要把本地文件或 URL 下载到设备媒体目录时:
node {baseDir}/server.js saveMediaFile '{"deviceId":"设备ID","file":"/abs/path/to/a.jpg"}'
node {baseDir}/server.js saveMediaFile '{"deviceId":"设备ID","url":"https://example.com/a.jpg"}'
file 与 url 二选一。
场景二十一:清空媒体文件(clearMediaFile)
当用户需要清空设备侧媒体目录时:
node {baseDir}/server.js clearMediaFile '{"deviceId":"设备ID"}'
场景二十二:打开 App(openApp)
当用户需要在设备上打开某个 App 时:
node {baseDir}/server.js openApp '{"deviceId":"设备ID","name":"APP全名,非APPID"}'
场景二十三:清理最近任务(killRecents)
当用户需要一键清理最近任务(后台)时:
node {baseDir}/server.js killRecents '{"deviceId":"设备ID"}'
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!