{
  "schemaVersion": "1.0",
  "item": {
    "slug": "morelogin",
    "name": "MoreLogin",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/MoreLoginBrowser/morelogin",
    "canonicalUrl": "https://clawhub.ai/MoreLoginBrowser/morelogin",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/morelogin",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=morelogin",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "USAGE.md",
      "QUICKSTART.md",
      "index.js",
      "INSTALL.md",
      "API-CONTRACT.md",
      "README.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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/morelogin"
    },
    "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/morelogin",
    "agentPageUrl": "https://openagent3.xyz/skills/morelogin/agent",
    "manifestUrl": "https://openagent3.xyz/skills/morelogin/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/morelogin/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "MoreLogin Local API Skill",
        "body": "Manage browser profiles and cloud phones via MoreLogin official Local API, supporting full lifecycle control, automation connections (CDP/ADB), and resource management (proxy/group/tag/app/file)."
      },
      {
        "title": "Official Sources",
        "body": "Local API documentation: https://guide.morelogin.com/api-reference/local-api\nBase URL: http://127.0.0.1:40000\nRequirements: MoreLogin Desktop v2.15.0+, logged-in local account"
      },
      {
        "title": "Trigger Scenarios",
        "body": "Prefer this Skill when:\n\nUser mentions MoreLogin, envId, uniqueId, cloudphone\nCreating/starting/closing browser profiles\nRefreshing fingerprints, clearing cache, or deleting profiles\nCloud phone power on/off, ADB, app management, file upload\nAPI management of proxy, groups, tags"
      },
      {
        "title": "Pre-flight Checklist",
        "body": "Before any operation:\n\nConfirm MoreLogin desktop app is running and logged in.\nConfirm API is reachable: http://127.0.0.1:40000.\nConfirm requests originate from localhost (Local API does not support remote access).\nFor cloud phone command execution, confirm ADB is available (adb installed)."
      },
      {
        "title": "Execution Principles",
        "body": "Treat local-api.yaml + API-CONTRACT.md as the canonical parameter source before constructing payloads.\nDo not infer field names from memory; verify required keys/types first (especially id vs ids, object vs array bodies).\nUse POST by default (except tag query GET /api/envtag/all).\nUniform request header: Content-Type: application/json.\nCheck code first: 0 means success, non-zero use msg for error handling.\nPrefer envId for resource lookup; fall back to uniqueId when missing (browser profiles).\nFor batch endpoints (/batch), always pass arrays and record changed objects."
      },
      {
        "title": "Browser Profile",
        "body": "EndpointPurposePOST /api/env/create/quickQuick create profilePOST /api/env/create/advancedAdvanced create (full fingerprint params)POST /api/env/fingerprint/refreshRefresh device fingerprintPOST /api/env/startStart profile and return debug infoPOST /api/env/closeClose running profilePOST /api/env/statusGet run status and debug infoPOST /api/env/pagePaginated profile listPOST /api/env/detailGet single profile detailPOST /api/env/removeLocalCacheClear local cache (cookies/localStorage etc.)POST /api/env/removeToRecycleBin/batchBatch delete to recycle bin"
      },
      {
        "title": "Cloud Phone",
        "body": "EndpointPurposePOST /api/cloudphone/createCreate cloud phonePOST /api/cloudphone/powerOnPower onPOST /api/cloudphone/powerOffPower offPOST /api/cloudphone/pagePaginated listPOST /api/cloudphone/infoGet detail (including ADB info)POST /api/cloudphone/edit/batchBatch edit configPOST /api/cloudphone/delete/batchBatch deletePOST /api/cloudphone/newMachineOne-click new devicePOST /api/cloudphone/updateAdbEnable/disable ADB"
      },
      {
        "title": "Cloud Phone File & App",
        "body": "EndpointPurposePOST /api/cloudphone/uploadFileUpload file to cloud phonePOST /api/cloudphone/uploadUrlQuery upload statusPOST /api/cloudphone/setKeyBoxSet KeyboxPOST /api/cloudphone/app/installInstall appPOST /api/cloudphone/app/pageQuery app market listPOST /api/cloudphone/app/installedListQuery installed appsPOST /api/cloudphone/app/startStart appPOST /api/cloudphone/app/restartRestart appPOST /api/cloudphone/app/stopStop appPOST /api/cloudphone/app/uninstallUninstall app"
      },
      {
        "title": "Proxy / Group / Tag",
        "body": "EndpointPurposePOST /api/proxyInfo/pageQuery proxy listPOST /api/proxyInfo/addAdd proxyPOST /api/proxyInfo/updateUpdate proxyPOST /api/proxyInfo/deleteDelete proxyPOST /api/envgroup/pageQuery groupsPOST /api/envgroup/createCreate groupPOST /api/envgroup/editEdit groupPOST /api/envgroup/deleteDelete groupGET /api/envtag/allGet all tagsPOST /api/envtag/createCreate tagPOST /api/envtag/editEdit tagPOST /api/envtag/deleteDelete tag"
      },
      {
        "title": "Workflow A: Browser Profile Automation",
        "body": "Get envId from create/quick or page.\nCall start to launch the profile.\nCall status to verify run state and debugPort.\nUse CDP (Puppeteer/Playwright) for automation.\nCall close when done."
      },
      {
        "title": "Workflow B: Cloud Phone Automation",
        "body": "Call page or create to obtain cloud phone id.\nCall powerOn to start.\nCall info to get ADB connection params.\nCall updateAdb when needed to enable ADB.\nRun supported cloud phone management endpoints only (no direct command execution).\nCall powerOff when done."
      },
      {
        "title": "Quick Examples (Official API)",
        "body": "# 1) Quick create browser profile\ncurl -X POST \"http://127.0.0.1:40000/api/env/create/quick\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"browserTypeId\":1,\"operatorSystemId\":1,\"quantity\":1}'\n\n# 2) Start profile\ncurl -X POST \"http://127.0.0.1:40000/api/env/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"envId\":\"<envId>\"}'\n\n# 3) Cloud phone power on\ncurl -X POST \"http://127.0.0.1:40000/api/cloudphone/powerOn\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"id\":\"<cloudPhoneId>\"}'\n\n# 4) Query cloud phone detail (including ADB info)\ncurl -X POST \"http://127.0.0.1:40000/api/cloudphone/info\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"id\":\"<cloudPhoneId>\"}'"
      },
      {
        "title": "CLI Usage (This Project)",
        "body": "Prefer project-wrapped commands; fall back to curl when needed:\n\nEntry equivalence note: openclaw morelogin ... and node bin/morelogin.js ... are fully equivalent (same arguments, same behavior, same exit code). Use either one based on your runtime environment.\n\n# Browser profile\nopenclaw morelogin browser list\nopenclaw morelogin browser start --env-id <envId>\nopenclaw morelogin browser status --env-id <envId>\nopenclaw morelogin browser close --env-id <envId>\n\n# Cloud phone\nopenclaw morelogin cloudphone list\nopenclaw morelogin cloudphone start --id <cloudPhoneId>\nopenclaw morelogin cloudphone info --id <cloudPhoneId>\n\n## Response & Error Handling\n\nParse responses with the following structure:\n\n```json\n{\n  \"code\": 0,\n  \"msg\": null,\n  \"data\": {},\n  \"requestId\": \"...\"\n}\n\nHandling rules:\n\ncode == 0: Proceed, extract data.\ncode != 0: Output msg, mark failed step, suggest next fix.\nFor start/powerOn operations, call status/info again before subsequent steps to confirm."
      },
      {
        "title": "Security & Limits",
        "body": "Local API listens on localhost only; no remote access.\nCan be called only when MoreLogin account is logged in.\nDo not expose account, proxy passwords, ADB keys, or other sensitive data in logs or code.\nDouble-check target ID lists before batch delete, cache clear, or app uninstall."
      },
      {
        "title": "Security Notice",
        "body": "This skill no longer provides local ADB/SSH connection methods (adb-connect, adb-disconnect, adb-devices).\n\nCommand execution safeguards:\n\nRestricted to local automation context (localhost workflows and local API).\nRemote cloud phone exec is disabled by default and must be explicitly enabled.\nexec command content is validated against a safe allowlist and blocks shell metacharacters.\nGeneric api passthrough is endpoint-allowlisted by default."
      },
      {
        "title": "When Not to Use This Skill",
        "body": "MoreLogin is not installed, not running, or not logged in.\nRequirements are for regular browser automation (no MoreLogin environment isolation).\nRequirements depend on remote access to Local API over the network."
      },
      {
        "title": "Related Files",
        "body": "bin/morelogin.js\nlib/api.js\nlocal-api.yaml\nAPI-CONTRACT.md\nREADME-OFFICIAL-API.md"
      }
    ],
    "body": "MoreLogin Local API Skill\n\nManage browser profiles and cloud phones via MoreLogin official Local API, supporting full lifecycle control, automation connections (CDP/ADB), and resource management (proxy/group/tag/app/file).\n\nOfficial Sources\nLocal API documentation: https://guide.morelogin.com/api-reference/local-api\nBase URL: http://127.0.0.1:40000\nRequirements: MoreLogin Desktop v2.15.0+, logged-in local account\nTrigger Scenarios\n\nPrefer this Skill when:\n\nUser mentions MoreLogin, envId, uniqueId, cloudphone\nCreating/starting/closing browser profiles\nRefreshing fingerprints, clearing cache, or deleting profiles\nCloud phone power on/off, ADB, app management, file upload\nAPI management of proxy, groups, tags\nPre-flight Checklist\n\nBefore any operation:\n\nConfirm MoreLogin desktop app is running and logged in.\nConfirm API is reachable: http://127.0.0.1:40000.\nConfirm requests originate from localhost (Local API does not support remote access).\nFor cloud phone command execution, confirm ADB is available (adb installed).\nExecution Principles\nTreat local-api.yaml + API-CONTRACT.md as the canonical parameter source before constructing payloads.\nDo not infer field names from memory; verify required keys/types first (especially id vs ids, object vs array bodies).\nUse POST by default (except tag query GET /api/envtag/all).\nUniform request header: Content-Type: application/json.\nCheck code first: 0 means success, non-zero use msg for error handling.\nPrefer envId for resource lookup; fall back to uniqueId when missing (browser profiles).\nFor batch endpoints (/batch), always pass arrays and record changed objects.\nAPI Capability Mapping\nBrowser Profile\nEndpoint\tPurpose\nPOST /api/env/create/quick\tQuick create profile\nPOST /api/env/create/advanced\tAdvanced create (full fingerprint params)\nPOST /api/env/fingerprint/refresh\tRefresh device fingerprint\nPOST /api/env/start\tStart profile and return debug info\nPOST /api/env/close\tClose running profile\nPOST /api/env/status\tGet run status and debug info\nPOST /api/env/page\tPaginated profile list\nPOST /api/env/detail\tGet single profile detail\nPOST /api/env/removeLocalCache\tClear local cache (cookies/localStorage etc.)\nPOST /api/env/removeToRecycleBin/batch\tBatch delete to recycle bin\nCloud Phone\nEndpoint\tPurpose\nPOST /api/cloudphone/create\tCreate cloud phone\nPOST /api/cloudphone/powerOn\tPower on\nPOST /api/cloudphone/powerOff\tPower off\nPOST /api/cloudphone/page\tPaginated list\nPOST /api/cloudphone/info\tGet detail (including ADB info)\nPOST /api/cloudphone/edit/batch\tBatch edit config\nPOST /api/cloudphone/delete/batch\tBatch delete\nPOST /api/cloudphone/newMachine\tOne-click new device\nPOST /api/cloudphone/updateAdb\tEnable/disable ADB\nCloud Phone File & App\nEndpoint\tPurpose\nPOST /api/cloudphone/uploadFile\tUpload file to cloud phone\nPOST /api/cloudphone/uploadUrl\tQuery upload status\nPOST /api/cloudphone/setKeyBox\tSet Keybox\nPOST /api/cloudphone/app/install\tInstall app\nPOST /api/cloudphone/app/page\tQuery app market list\nPOST /api/cloudphone/app/installedList\tQuery installed apps\nPOST /api/cloudphone/app/start\tStart app\nPOST /api/cloudphone/app/restart\tRestart app\nPOST /api/cloudphone/app/stop\tStop app\nPOST /api/cloudphone/app/uninstall\tUninstall app\nProxy / Group / Tag\nEndpoint\tPurpose\nPOST /api/proxyInfo/page\tQuery proxy list\nPOST /api/proxyInfo/add\tAdd proxy\nPOST /api/proxyInfo/update\tUpdate proxy\nPOST /api/proxyInfo/delete\tDelete proxy\nPOST /api/envgroup/page\tQuery groups\nPOST /api/envgroup/create\tCreate group\nPOST /api/envgroup/edit\tEdit group\nPOST /api/envgroup/delete\tDelete group\nGET /api/envtag/all\tGet all tags\nPOST /api/envtag/create\tCreate tag\nPOST /api/envtag/edit\tEdit tag\nPOST /api/envtag/delete\tDelete tag\nStandard Workflows\nWorkflow A: Browser Profile Automation\nGet envId from create/quick or page.\nCall start to launch the profile.\nCall status to verify run state and debugPort.\nUse CDP (Puppeteer/Playwright) for automation.\nCall close when done.\nWorkflow B: Cloud Phone Automation\nCall page or create to obtain cloud phone id.\nCall powerOn to start.\nCall info to get ADB connection params.\nCall updateAdb when needed to enable ADB.\nRun supported cloud phone management endpoints only (no direct command execution).\nCall powerOff when done.\nQuick Examples (Official API)\n# 1) Quick create browser profile\ncurl -X POST \"http://127.0.0.1:40000/api/env/create/quick\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"browserTypeId\":1,\"operatorSystemId\":1,\"quantity\":1}'\n\n# 2) Start profile\ncurl -X POST \"http://127.0.0.1:40000/api/env/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"envId\":\"<envId>\"}'\n\n# 3) Cloud phone power on\ncurl -X POST \"http://127.0.0.1:40000/api/cloudphone/powerOn\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"id\":\"<cloudPhoneId>\"}'\n\n# 4) Query cloud phone detail (including ADB info)\ncurl -X POST \"http://127.0.0.1:40000/api/cloudphone/info\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"id\":\"<cloudPhoneId>\"}'\n\nCLI Usage (This Project)\n\nPrefer project-wrapped commands; fall back to curl when needed:\n\nEntry equivalence note: openclaw morelogin ... and node bin/morelogin.js ... are fully equivalent (same arguments, same behavior, same exit code). Use either one based on your runtime environment.\n\n# Browser profile\nopenclaw morelogin browser list\nopenclaw morelogin browser start --env-id <envId>\nopenclaw morelogin browser status --env-id <envId>\nopenclaw morelogin browser close --env-id <envId>\n\n# Cloud phone\nopenclaw morelogin cloudphone list\nopenclaw morelogin cloudphone start --id <cloudPhoneId>\nopenclaw morelogin cloudphone info --id <cloudPhoneId>\n\n## Response & Error Handling\n\nParse responses with the following structure:\n\n```json\n{\n  \"code\": 0,\n  \"msg\": null,\n  \"data\": {},\n  \"requestId\": \"...\"\n}\n\n\nHandling rules:\n\ncode == 0: Proceed, extract data.\ncode != 0: Output msg, mark failed step, suggest next fix.\nFor start/powerOn operations, call status/info again before subsequent steps to confirm.\nSecurity & Limits\nLocal API listens on localhost only; no remote access.\nCan be called only when MoreLogin account is logged in.\nDo not expose account, proxy passwords, ADB keys, or other sensitive data in logs or code.\nDouble-check target ID lists before batch delete, cache clear, or app uninstall.\nSecurity Notice\n\nThis skill no longer provides local ADB/SSH connection methods (adb-connect, adb-disconnect, adb-devices).\n\nCommand execution safeguards:\n\nRestricted to local automation context (localhost workflows and local API).\nRemote cloud phone exec is disabled by default and must be explicitly enabled.\nexec command content is validated against a safe allowlist and blocks shell metacharacters.\nGeneric api passthrough is endpoint-allowlisted by default.\nWhen Not to Use This Skill\nMoreLogin is not installed, not running, or not logged in.\nRequirements are for regular browser automation (no MoreLogin environment isolation).\nRequirements depend on remote access to Local API over the network.\nRelated Files\nbin/morelogin.js\nlib/api.js\nlocal-api.yaml\nAPI-CONTRACT.md\nREADME-OFFICIAL-API.md"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/MoreLoginBrowser/morelogin",
    "publisherUrl": "https://clawhub.ai/MoreLoginBrowser/morelogin",
    "owner": "MoreLoginBrowser",
    "version": "1.0.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/morelogin",
    "downloadUrl": "https://openagent3.xyz/downloads/morelogin",
    "agentUrl": "https://openagent3.xyz/skills/morelogin/agent",
    "manifestUrl": "https://openagent3.xyz/skills/morelogin/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/morelogin/agent.md"
  }
}