mobilerun-official

Give your OpenClaw agent hands on a real Android phone. Tap, swipe, type, take screenshots, read the UI accessibility tree, and manage apps — all through the official Mobilerun API (mobilerun.ai). Your agent can automate any Android app: social media, testing, data collection, or anything you'd do manually. Uses YOUR API key (stored securely via MOBILERUN_API_KEY env var) and YOUR device (personal phone via Portal APK or cloud device). No data leaves your control.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "mobilerun-official" with this command: npx skills add pelae1/mobilerun-official

Mobilerun

Control real Android phones through an API -- tap, swipe, type, take screenshots, read the UI tree, manage apps, and more.

Before You Start

Do NOT ask the user for an API key or to set up a device before checking. Always probe first:

  1. Resolve the API key:

    • The key is provided via the MOBILERUN_API_KEY environment variable (set by OpenClaw during skill loading)
    • If the key is not available, ask the user to set it in their OpenClaw config or provide it when prompted
  2. Test the API key and check for devices in one call: Call GET /devices with the user's key to check device availability:

    • 200 with a device in state: "ready" = good to go, skip all setup, just do what the user asked
    • 200 but no devices or all state: "disconnected" = device issue (see step 3)
    • 401 = key is bad, expired, or revoked -- ask the user to check their dashboard
  3. Only if no ready device: tell the user the device status and suggest a fix:

    • No devices at all = user hasn't connected a phone yet, guide them to Portal APK (see setup.md)
    • Device with state: "disconnected" = Portal app lost connection, ask user to reopen it
  4. Confirm device is responsive (optional, only if first action fails): Call GET /devices/{deviceId}/screenshot — if this returns a PNG image, the device is working.

Key principle: If the API key is set and a device is ready, go straight to executing the user's request. Don't walk them through setup they've already completed.

Quick Reference

GoalEndpoint
See the screenGET /devices/{id}/screenshot
Read UI elementsGET /devices/{id}/ui-state?filter=true
TapPOST /devices/{id}/tap -- {x, y}
SwipePOST /devices/{id}/swipe -- {startX, startY, endX, endY, duration}
Type textPOST /devices/{id}/keyboard -- {text, clear}
Press keyPUT /devices/{id}/keyboard -- {key} (Android keycode)
Go backPOST /devices/{id}/global -- {action: 1}
Go homePOST /devices/{id}/global -- {action: 2}
Open appPUT /devices/{id}/apps/{packageName}
List appsGET /devices/{id}/apps

All endpoints use base URL https://api.mobilerun.ai/v1 with the user's API key in the Authorization header (see setup.md for auth details).

Detailed Documentation

  • setup.md -- Authentication, API key setup, device connectivity, troubleshooting
  • phone-api.md -- Phone control API: screenshot, UI state, tap, swipe, type, app management
  • subscription.md -- Plans, pricing, credits, device types, and when to recommend upgrades

Common Patterns

Observe-Act Loop: Most phone control tasks follow this cycle:

  1. Take a screenshot and/or read the UI state
  2. Decide what action to perform
  3. Execute the action (tap, type, swipe, etc.)
  4. Observe again to verify the result
  5. Repeat

Finding tap coordinates: Use GET /devices/{id}/ui-state?filter=true to get the accessibility tree with element bounds, then calculate the center of the target element to get tap coordinates.

Typing into a field:

  1. Check phone_state.isEditable -- if false, tap the input field first
  2. Optionally clear existing text with clear: true
  3. Send the text via POST /devices/{id}/keyboard

Error Handling

ErrorLikely causeWhat to do
401Invalid or expired API keyAsk user to verify key in their Mobilerun dashboard
Empty device listNo device connectedGuide user to connect via Portal APK (see setup.md)
Device disconnectedPortal app closed or phone lost networkAsk user to check phone and reopen Portal
Billing/plan error on POST /devicesFree plan, cloud devices need subscriptionTell user to check plans in their dashboard (see subscription.md)
Action returns error on valid deviceDevice may be busy, locked, or unresponsiveTry taking a screenshot first to check state
403 with "limit reached"Plan limit hit (e.g. max concurrent devices)User needs to terminate a device or upgrade (see subscription.md)

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.

Automation

ZeeLin Twitter/X AutoPost

ZeeLin Twitter/X 自动发推 + 回关 + 涨粉运营 — 通过 openclaw browser / Browser Relay 操作网页版 Twitter/X,无需 API Key。用户先在自己的浏览器登录并挂上 Relay,Agent 负责撰写推文并发布、一键回关粉丝、蓝V互关(认证关注者回关)...

Registry SourceRecently Updated
8601Profile unavailable
Automation

Twitter Web AutoPoster

通过浏览器工具自动操作网页版 Twitter/X,完成热点爬取、推文撰写和一键发布。支持全自动模式(无需用户确认)和手动确认模式。

Registry SourceRecently Updated
5480Profile unavailable
Automation

AutoClaw Browser Automation

Complete browser automation skill with MCP protocol support and Chrome extension

Registry SourceRecently Updated
1K0Profile unavailable
Automation

Check Bookings Phone

检查携程旅行app预售订单的日期可用性。通过ADB连接Android设备,自动化操作携程app,遍历"未使用 预售订单"中的每个订单,查询指定日期范围内每天的预约状态(可约、约满、补差价等)。当用户提到检查携程订单、查看预售订单可用日期、查酒店预约状态时触发此skill。

Registry SourceRecently Updated
4460Profile unavailable