{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"OpenClaw Integration","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"openclaw-integration","__idx":0},"children":["OpenClaw Integration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OpenClaw"]}," is a powerful AI Agent framework. By installing the MoreLogin skill into your OpenClaw workspace, your agent gains the ability to fully manage browser profiles and cloud phones autonomously."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":1},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://nodejs.org/"},"children":["Node.js"]}," v18 or later"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/openclaw-ai/openclaw"},"children":["OpenClaw"]}," installed and initialized"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["MoreLogin desktop app running on the same machine (Local API at ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["http://localhost:40000"]},")"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"installation--setup","__idx":2},"children":["Installation & Setup"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-install-openclaw-if-not-already-installed","__idx":3},"children":["1. Install OpenClaw (if not already installed)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"npm install -g openclaw\nopenclaw init    # Creates ~/.openclaw/workspace/\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After initialization, the workspace structure looks like this:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"~/.openclaw/\n├── workspace/\n│   ├── skills/          ← Skill plugins live here\n│   │   └── morelogin/   ← MoreLogin skill (you will create this)\n│   ├── TOOLS.md         ← Tool configuration file\n│   └── ...\n└── config.yaml          ← OpenClaw global config\n"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-install-the-morelogin-skill","__idx":4},"children":["2. Install the MoreLogin Skill"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Clone the official skill repository into the OpenClaw skills directory:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# Clone the skill into the correct location\ngit clone https://github.com/MoreLoginBrowser/morelogin-local-api-skill.git \\\n  ~/.openclaw/workspace/skills/morelogin\n\n# Install dependencies\ncd ~/.openclaw/workspace/skills/morelogin\nnpm install\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Where does the skill come from?"]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"The skill source code is hosted on GitHub at ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/MoreLoginBrowser/morelogin-local-api-skill"},"children":["MoreLoginBrowser/morelogin-local-api-skill"]},". This repository contains the CLI wrapper and API bindings that OpenClaw uses to interact with MoreLogin."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-configure-openclaw-tools","__idx":5},"children":["3. Configure OpenClaw Tools"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add the MoreLogin tool definition to your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["~/.openclaw/workspace/TOOLS.md"]}," file:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"### Morelogin\n\n- Install Path: /Applications/Morelogin.app (macOS) or C:\\Program Files\\MoreLogin (Windows)\n- Default CDP Port: 9222\n- Local API: http://localhost:40000\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4-verify-installation","__idx":6},"children":["4. Verify Installation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Run a quick test to confirm the skill is installed correctly:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"openclaw morelogin browser list --page 1 --page-size 5\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the MoreLogin app is running, you should see a JSON response with your browser profiles (or an empty list)."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"updating-the-skill","__idx":7},"children":["Updating the Skill"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To update to the latest version:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"cd ~/.openclaw/workspace/skills/morelogin\ngit pull origin main\nnpm install\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Check for breaking changes in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/MoreLoginBrowser/morelogin-local-api-skill/releases"},"children":["release notes"]}," before upgrading."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"cli-commands-reference","__idx":8},"children":["CLI Commands Reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The MoreLogin skill exposes CLI commands directly to the OpenClaw environment. The agent invokes these automatically during reasoning, but you can also run them manually for testing."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"browser-profiles","__idx":9},"children":["Browser Profiles"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# List profiles\nopenclaw morelogin browser list --page 1 --page-size 20\n\n# Start a profile (Returns debugPort for CDP connection)\nopenclaw morelogin browser start --env-id abc123def\n\n# View running status\nopenclaw morelogin browser status --env-id abc123def\n\n# Close profile\nopenclaw morelogin browser close --env-id abc123def\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"cloud-phones","__idx":10},"children":["Cloud Phones"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# List cloud phones\nopenclaw morelogin cloudphone list --page 1 --page-size 20\n\n# Start/Stop\nopenclaw morelogin cloudphone start --id <cloudPhoneId>\nopenclaw morelogin cloudphone stop --id <cloudPhoneId>\n\n# Get details (Includes ADB connection info)\nopenclaw morelogin cloudphone info --id <cloudPhoneId>\n\n# Execute cloud phone command via ADB\nopenclaw morelogin cloudphone exec --id <cloudPhoneId> --command \"ls /sdcard\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"proxy--group-management","__idx":11},"children":["Proxy & Group Management"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# Proxy\nopenclaw morelogin proxy list\nopenclaw morelogin proxy add --payload '{\"proxyIp\":\"1.2.3.4\",\"proxyPort\":8000,\"proxyType\":0}'\n\n# Group\nopenclaw morelogin group list\nopenclaw morelogin group create --name \"US-Group\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"minimal-end-to-end-example","__idx":12},"children":["Minimal End-to-End Example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Below is a complete example that creates a browser profile, launches it, visits a URL via CDP, and closes the profile — all orchestrated by the OpenClaw agent."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"natural-language-prompt","__idx":13},"children":["Natural Language Prompt"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"Create a new MoreLogin browser profile, open google.com, take a screenshot, and close it.\""]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-the-agent-executes","__idx":14},"children":["What the Agent Executes"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# 1. Create a browser profile\nopenclaw morelogin browser create --name \"demo-profile\"\n# → Returns: {\"envId\": \"abc123def\"}\n\n# 2. Start the profile\nopenclaw morelogin browser start --env-id abc123def\n# → Returns: {\"debugPort\": \"9222\", \"webdriver\": \"/path/to/chromedriver\"}\n\n# 3. Connect via CDP (agent uses Puppeteer internally)\n# The agent connects to ws://127.0.0.1:9222 and runs:\n#   - page.goto(\"https://www.google.com\")\n#   - page.screenshot({path: \"screenshot.png\"})\n\n# 4. Close the profile\nopenclaw morelogin browser close --env-id abc123def\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"equivalent-script-nodejs","__idx":15},"children":["Equivalent Script (Node.js)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const { execSync } = require('child_process');\nconst puppeteer = require('puppeteer-core');\n\nasync function main() {\n  // 1. Create profile\n  const createResult = JSON.parse(\n    execSync('openclaw morelogin browser create --name \"demo-profile\"').toString()\n  );\n  const envId = createResult.data.envId;\n\n  // 2. Start profile\n  const startResult = JSON.parse(\n    execSync(`openclaw morelogin browser start --env-id ${envId}`).toString()\n  );\n  const debugPort = startResult.data.debugPort;\n\n  // 3. Connect via CDP and automate\n  const browser = await puppeteer.connect({\n    browserURL: `http://127.0.0.1:${debugPort}`,\n    defaultViewport: null\n  });\n  const page = (await browser.pages())[0];\n  await page.goto('https://www.google.com');\n  await page.screenshot({ path: 'screenshot.png' });\n  console.log('Screenshot saved.');\n\n  // 4. Cleanup\n  await browser.disconnect();\n  execSync(`openclaw morelogin browser close --env-id ${envId}`);\n  console.log('Profile closed.');\n}\n\nmain().catch(console.error);\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-the-agent-reasons","__idx":16},"children":["How the Agent Reasons"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you ask the OpenClaw agent to ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"create a profile and log into example.com\""]},", the agent will:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openclaw morelogin browser create"]}," (or API equivalent) to get an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["envId"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openclaw morelogin browser start"]}," to get the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["debugPort"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use a CDP tool (like Puppeteer/Playwright) to connect to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["debugPort"]}," and perform the login steps."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify the success via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openclaw morelogin browser status"]},"."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"troubleshooting","__idx":17},"children":["Troubleshooting"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Symptom"},"children":["Symptom"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Solution"},"children":["Solution"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["command not found: openclaw"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ensure OpenClaw is installed globally: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["npm install -g openclaw"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Error: connect ECONNREFUSED 127.0.0.1:40000"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Start the MoreLogin desktop app before running commands"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Skill directory missing"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openclaw init"]}," to create the workspace, then clone the skill"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stale data after update"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["npm install"]}," again in the skill directory after ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["git pull"]}]}]}]}]}]}]},"headings":[{"value":"OpenClaw Integration","id":"openclaw-integration","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Installation & Setup","id":"installation--setup","depth":2},{"value":"1. Install OpenClaw (if not already installed)","id":"1-install-openclaw-if-not-already-installed","depth":3},{"value":"2. Install the MoreLogin Skill","id":"2-install-the-morelogin-skill","depth":3},{"value":"3. Configure OpenClaw Tools","id":"3-configure-openclaw-tools","depth":3},{"value":"4. Verify Installation","id":"4-verify-installation","depth":3},{"value":"Updating the Skill","id":"updating-the-skill","depth":2},{"value":"CLI Commands Reference","id":"cli-commands-reference","depth":2},{"value":"Browser Profiles","id":"browser-profiles","depth":3},{"value":"Cloud Phones","id":"cloud-phones","depth":3},{"value":"Proxy & Group Management","id":"proxy--group-management","depth":3},{"value":"Minimal End-to-End Example","id":"minimal-end-to-end-example","depth":2},{"value":"Natural Language Prompt","id":"natural-language-prompt","depth":3},{"value":"What the Agent Executes","id":"what-the-agent-executes","depth":3},{"value":"Equivalent Script (Node.js)","id":"equivalent-script-nodejs","depth":3},{"value":"How the Agent Reasons","id":"how-the-agent-reasons","depth":2},{"value":"Troubleshooting","id":"troubleshooting","depth":2}],"frontmatter":{"seo":{"title":"OpenClaw Integration"}},"lastModified":"2026-05-19T01:06:27.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/skills/openclaw","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}