vmos-edge-control-api

Use this skill when controlling a VMOS Edge Android cloud phone through the Android Control API. If the current session also has `vmos-edge-container-api`, use `host_ip` and resolve the target `db_id` through the container APIs first. If this skill is installed alone, prefer `cloud_ip`; if `host_ip` and `db_id` are already known, the host route can also be used. If no IP is provided and local `cbs_go` is running, default `host_ip` to `127.0.0.1`.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "vmos-edge-control-api" with this command: npx skills add vmos-dev/vmos-edge-skills/vmos-dev-vmos-edge-skills-vmos-edge-control-api

VMOS Edge Android Control

在需要通过 VMOS Edge Android Control API 控制单台安卓云机时使用这个 skill。MCP 是可选通道,不是前置依赖。

连接入口

  • 如果用户已经明确给了 host_ipcloud_ip,优先使用用户给的值
  • 如果用户没有明确给 IP,先检查本地是否存在 cbs_go 进程;存在则默认 host_ip=127.0.0.1
  • 如果用户没有明确给 IP,且本地没有 cbs_go,引导用户提供 host_ipcloud_ip,或在已知宿主机场景下提供 db_id
  • 如果当前会话里同时安装了 vmos-edge-container-api
    • 使用宿主机路由 http://{host_ip}:18182/android_api/v2/{db_id}
    • 必须先通过 container API 的 POST /container_api/v1/get_dbGET /container_api/v1/get_android_detail/{db_id} 拿到目标 db_id
  • 如果当前只有 vmos-edge-control-api
    • 默认优先使用云机直连 http://{cloud_ip}:18185/api
    • 仅支持开启了局域网模式的云机
  • 如果当前只有 vmos-edge-control-api,而当前路径要走 host_ip
    • 如果用户已经给了 db_id,直接使用 http://{host_ip}:18182/android_api/v2/{db_id}
    • 如果没有 db_id,明确说明还缺少 db_idvmos-edge-container-api
  • 如果直连 http://{cloud_ip}:18185/api/base/version_info 连不上、超时,或返回 5xx,明确说明当前云机没有暴露 Control API,或没有开启局域网模式

核心流程

  • 始终遵循 Observe -> Plan -> Act -> Verify
  • 第一次连接先查 /base/version_info
  • /base/version_info 能成功返回,就视为当前环境支持 Control API;拿不到返回再说明当前环境不支持或没有暴露接口
  • 本地检查 cbs_go 时,优先用精确匹配,例如 pgrep -x cbs_go >/dev/null 2>&1
  • 再用 /base/list_action 做能力发现:
    • 需要低成本查看当前设备支持哪些接口时,先取接口列表
    • 需要某个接口的详细用法时,再按 paths 定向查询并带上 detail
  • 观察优先级:
    • 截图接口 screenshot/formatscreenshot/rawscreenshot/data_url
    • /accessibility/dump_compact
    • /accessibility/node 的无动作查询
    • /display/info/activity/top_activity/package/list
  • 观察策略:
    • 需要看视觉布局、图标、颜色、弹窗遮挡、坐标点击位置时优先截图
    • 需要低成本获取文本、层级、bounds,或要衔接 /accessibility/node 时优先 dump_compact
    • 能同时用时,先截图理解界面,再用 dump_compact / node 做结构化定位
    • 截图回显给用户时:先用 bash/exec 的 curl -o 把截图落盘到 workspace 目录(如 ~/.openclaw/workspace/),再用 read 工具读取该文件让模型看到图片内容
    • 回图时优先把 screenshot/formatscreenshot/raw 落成文件;只有 screenshot/data_url 可用时,再 base64 解码落盘
    • 不要在文本回复里写 MEDIA: 或直接贴 base64 / data_url —— 这些不会渲染为图片
    • 如果需要把图片转发到消息渠道(Telegram 等),使用 message --media <路径> 工具发送
  • 不要把旧版无障碍导出 / 查找接口写进默认流程
  • 交互优先级:
    • 先根据截图、dump_compact/accessibility/node 规划动作
    • 结构化节点定位 / 操作优先 /accessibility/node
    • 点击 / 滑动优先 /input/click/input/swipe/input/scroll_bezier
    • 输入优先 /input/text
    • 启动应用优先 /activity/start;需要首启授权时优先 /activity/launch_app
    • 浏览器 / 网页场景优先 /activity/start_activity 打开指定浏览器;浏览器包名优先 mark.via,没有再用 com.android.chrome
    • 安装优先 /package/install_sync/package/install_uri_sync
    • 读取或修改 Settings 优先 /system/settings_get/system/settings_put
  • 每个关键动作后重新观察,不要做聚合式批量动作
  • 没有专用接口时才考虑 /system/shell

必读参考

  • 先看 references/api-reference.md 里的索引,再按模块只打开需要的 reference 文件
  • 优先先用 /base/list_action 按需确认能力,再决定要不要展开更多接口细节
  • 只有在需要精确路径、字段、示例请求时,才读取对应模块 reference
  • 如果任务是“安装、下载并打开某个第三方应用”,再读取 references/app-installation.md
  • 如果任务是“在云机浏览器里搜索、打开网页、提取网页内容”,再读取 references/browser-search-and-reading.md

安全边界

  • 删除应用、清数据、系统设置、权限修改、shell 操作前先确认用户意图
  • 没有明确要求时,不要改时区、语言、国家、Google 状态、设备信息、定位或传感器

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

obsidian

Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.

Archived SourceRecently Updated
Coding

gog

Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.

Archived SourceRecently Updated
Coding

obsidian-notes

Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.

Archived SourceRecently Updated
Coding

mcporter-cli

Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.

Archived SourceRecently Updated