{
  "schemaVersion": "1.0",
  "item": {
    "slug": "agent-device",
    "name": "Agent Device",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/okwasniewski/agent-device",
    "canonicalUrl": "https://clawhub.ai/okwasniewski/agent-device",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/agent-device",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agent-device",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "references/permissions.md",
      "references/coordinate-system.md",
      "references/video-recording.md",
      "references/logs-and-debug.md",
      "references/snapshot-refs.md",
      "references/batching.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/agent-device"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/agent-device",
    "agentPageUrl": "https://openagent3.xyz/skills/agent-device/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agent-device/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agent-device/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Mobile Automation with agent-device",
        "body": "For exploration, use snapshot refs. For deterministic replay, use selectors."
      },
      {
        "title": "Start Here (Read This First)",
        "body": "Use this skill as a router, not a full manual.\n\nPick one mode:\n\nNormal interaction flow\nDebug/crash flow\nReplay maintenance flow\n\n\nRun one canonical flow below.\nOpen references only if blocked."
      },
      {
        "title": "Decision Map",
        "body": "No target context yet: devices -> pick target -> open.\nNormal UI task: open -> snapshot -i -> press/fill -> diff snapshot -i -> close\nDebug/crash: open <app> -> logs clear --restart -> reproduce -> logs path -> targeted grep\nReplay drift: replay -u <path> -> verify updated selectors"
      },
      {
        "title": "1) Normal Interaction Flow",
        "body": "agent-device open Settings --platform ios\nagent-device snapshot -i\nagent-device press @e3\nagent-device diff snapshot -i\nagent-device fill @e5 \"test\"\nagent-device close"
      },
      {
        "title": "2) Debug/Crash Flow",
        "body": "agent-device open MyApp --platform ios\nagent-device logs clear --restart\nagent-device logs path\n\nLogging is off by default. Enable only for debugging windows.\nlogs clear --restart requires an active app session (open <app> first)."
      },
      {
        "title": "3) Replay Maintenance Flow",
        "body": "agent-device replay -u ./session.ad"
      },
      {
        "title": "Session and navigation",
        "body": "agent-device devices\nagent-device open [app|url] [url]\nagent-device open [app] --relaunch\nagent-device close [app]\nagent-device session list\n\nUse boot only as fallback when open cannot find/connect to a ready target."
      },
      {
        "title": "Snapshot and targeting",
        "body": "agent-device snapshot -i\nagent-device diff snapshot -i\nagent-device find \"Sign In\" click\nagent-device press @e1\nagent-device fill @e2 \"text\"\nagent-device is visible 'id=\"anchor\"'\n\npress is canonical tap command; click is an alias."
      },
      {
        "title": "Utilities",
        "body": "agent-device appstate\nagent-device get text @e1\nagent-device screenshot out.png\nagent-device trace start\nagent-device trace stop ./trace.log"
      },
      {
        "title": "Batch (when sequence is already known)",
        "body": "agent-device batch --steps-file /tmp/batch-steps.json --json"
      },
      {
        "title": "Guardrails (High Value Only)",
        "body": "Re-snapshot after UI mutations (navigation/modal/list changes).\nPrefer snapshot -i; scope/depth only when needed.\nUse refs for discovery, selectors for replay/assertions.\nUse fill for clear-then-type semantics; use type for focused append typing.\niOS appstate is session-scoped; Android appstate is live foreground state.\niOS settings helpers are simulator-only; use faceid match|nonmatch|enroll|unenroll.\nIf using --save-script, prefer explicit path syntax (--save-script=flow.ad or ./flow.ad)."
      },
      {
        "title": "Security and Trust Notes",
        "body": "Prefer a preinstalled agent-device binary over on-demand package execution.\nIf install is required, pin an exact version (for example: npx --yes agent-device@<exact-version> --help).\nSigning/provisioning environment variables are optional, sensitive, and only for iOS physical-device setup.\nLogs/artifacts are written under ~/.agent-device; replay scripts write to explicit paths you provide.\nKeep logging off unless debugging and use least-privilege/isolated environments for autonomous runs."
      },
      {
        "title": "Common Mistakes",
        "body": "Mixing debug flow into normal runs (keep logs off unless debugging).\nContinuing to use stale refs after screen transitions.\nUsing URL opens with Android --activity (unsupported combination).\nTreating boot as default first step instead of fallback."
      },
      {
        "title": "References",
        "body": "references/snapshot-refs.md\nreferences/logs-and-debug.md\nreferences/session-management.md\nreferences/permissions.md\nreferences/video-recording.md\nreferences/coordinate-system.md\nreferences/batching.md"
      }
    ],
    "body": "Mobile Automation with agent-device\n\nFor exploration, use snapshot refs. For deterministic replay, use selectors.\n\nStart Here (Read This First)\n\nUse this skill as a router, not a full manual.\n\nPick one mode:\nNormal interaction flow\nDebug/crash flow\nReplay maintenance flow\nRun one canonical flow below.\nOpen references only if blocked.\nDecision Map\nNo target context yet: devices -> pick target -> open.\nNormal UI task: open -> snapshot -i -> press/fill -> diff snapshot -i -> close\nDebug/crash: open <app> -> logs clear --restart -> reproduce -> logs path -> targeted grep\nReplay drift: replay -u <path> -> verify updated selectors\nCanonical Flows\n1) Normal Interaction Flow\nagent-device open Settings --platform ios\nagent-device snapshot -i\nagent-device press @e3\nagent-device diff snapshot -i\nagent-device fill @e5 \"test\"\nagent-device close\n\n2) Debug/Crash Flow\nagent-device open MyApp --platform ios\nagent-device logs clear --restart\nagent-device logs path\n\n\nLogging is off by default. Enable only for debugging windows. logs clear --restart requires an active app session (open <app> first).\n\n3) Replay Maintenance Flow\nagent-device replay -u ./session.ad\n\nCommand Skeleton (Minimal)\nSession and navigation\nagent-device devices\nagent-device open [app|url] [url]\nagent-device open [app] --relaunch\nagent-device close [app]\nagent-device session list\n\n\nUse boot only as fallback when open cannot find/connect to a ready target.\n\nSnapshot and targeting\nagent-device snapshot -i\nagent-device diff snapshot -i\nagent-device find \"Sign In\" click\nagent-device press @e1\nagent-device fill @e2 \"text\"\nagent-device is visible 'id=\"anchor\"'\n\n\npress is canonical tap command; click is an alias.\n\nUtilities\nagent-device appstate\nagent-device get text @e1\nagent-device screenshot out.png\nagent-device trace start\nagent-device trace stop ./trace.log\n\nBatch (when sequence is already known)\nagent-device batch --steps-file /tmp/batch-steps.json --json\n\nGuardrails (High Value Only)\nRe-snapshot after UI mutations (navigation/modal/list changes).\nPrefer snapshot -i; scope/depth only when needed.\nUse refs for discovery, selectors for replay/assertions.\nUse fill for clear-then-type semantics; use type for focused append typing.\niOS appstate is session-scoped; Android appstate is live foreground state.\niOS settings helpers are simulator-only; use faceid match|nonmatch|enroll|unenroll.\nIf using --save-script, prefer explicit path syntax (--save-script=flow.ad or ./flow.ad).\nSecurity and Trust Notes\nPrefer a preinstalled agent-device binary over on-demand package execution.\nIf install is required, pin an exact version (for example: npx --yes agent-device@<exact-version> --help).\nSigning/provisioning environment variables are optional, sensitive, and only for iOS physical-device setup.\nLogs/artifacts are written under ~/.agent-device; replay scripts write to explicit paths you provide.\nKeep logging off unless debugging and use least-privilege/isolated environments for autonomous runs.\nCommon Mistakes\nMixing debug flow into normal runs (keep logs off unless debugging).\nContinuing to use stale refs after screen transitions.\nUsing URL opens with Android --activity (unsupported combination).\nTreating boot as default first step instead of fallback.\nReferences\nreferences/snapshot-refs.md\nreferences/logs-and-debug.md\nreferences/session-management.md\nreferences/permissions.md\nreferences/video-recording.md\nreferences/coordinate-system.md\nreferences/batching.md"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/okwasniewski/agent-device",
    "publisherUrl": "https://clawhub.ai/okwasniewski/agent-device",
    "owner": "okwasniewski",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/agent-device",
    "downloadUrl": "https://openagent3.xyz/downloads/agent-device",
    "agentUrl": "https://openagent3.xyz/skills/agent-device/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agent-device/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agent-device/agent.md"
  }
}