# OpenClaw の統合

**OpenClaw** は、強力な AI エージェント フレームワークです。 MoreLogin スキルを OpenClaw ワークスペースにインストールすると、エージェントはブラウザ プロファイルとクラウド電話を自律的に完全に管理できるようになります。

## 前提条件

- [Node.js](https://nodejs.org/) v18 以降
- [OpenClaw](https://github.com/openclaw-ai/openclaw) がインストールされ、初期化されました
- 同じマシン上で実行されている MoreLogin デスクトップ アプリ (`http://localhost:40000` のローカル API)


## インストールとセットアップ

### 1. OpenClaw をインストールします (まだインストールされていない場合)

```bash
npm install -g openclaw
openclaw init    # Creates ~/.openclaw/workspace/
```

初期化後のワークスペース構造は次のようになります。

```
~/.openclaw/
├── workspace/
│   ├── skills/          ← Skill plugins live here
│   │   └── morelogin/   ← MoreLogin skill (you will create this)
│   ├── TOOLS.md         ← Tool configuration file
│   └── ...
└── config.yaml          ← OpenClaw global config
```

### 2.MoreLoginスキルをインストールする

公式スキル リポジトリのクローンを OpenClaw スキル ディレクトリに作成します。

```bash
# Clone the skill into the correct location
git clone https://github.com/MoreLoginBrowser/morelogin-local-api-skill.git \
  ~/.openclaw/workspace/skills/morelogin

# Install dependencies
cd ~/.openclaw/workspace/skills/morelogin
npm install
```

> **そのスキルはどこから来たのですか?**
スキルのソース コードは、GitHub の [MoreLoginBrowser/morelogin-local-api-skill](https://github.com/MoreLoginBrowser/morelogin-local-api-skill) でホストされています。このリポジトリには、OpenClaw が MoreLogin と対話するために使用する CLI ラッパーと API バインディングが含まれています。


### 3. OpenClaw ツールを構成する

MoreLogin ツール定義を `~/.openclaw/workspace/TOOLS.md` ファイルに追加します。

```markdown
### Morelogin

- Install Path: /Applications/Morelogin.app (macOS) or C:\Program Files\MoreLogin (Windows)
- Default CDP Port: 9222
- Local API: http://localhost:40000
```

### 4. インストールの確認

簡単なテストを実行して、スキルが正しくインストールされていることを確認します。

```bash
openclaw morelogin browser list --page 1 --page-size 5
```

MoreLogin アプリが実行されている場合は、ブラウザー プロファイル (または空のリスト) を含む JSON 応答が表示されるはずです。

## スキルの更新

最新バージョンに更新するには:

```bash
cd ~/.openclaw/workspace/skills/morelogin
git pull origin main
npm install
```

アップグレードする前に、[リリース ノート](https://github.com/MoreLoginBrowser/morelogin-local-api-skill/releases) で重大な変更がないか確認してください。

## CLI コマンドリファレンス

MoreLogin スキルは、CLI コマンドを OpenClaw 環境に直接公開します。エージェントは推論中にこれらを自動的に呼び出しますが、テストのために手動で実行することもできます。

### ブラウザプロファイル

```bash
# List profiles
openclaw morelogin browser list --page 1 --page-size 20

# Start a profile (Returns debugPort for CDP connection)
openclaw morelogin browser start --env-id abc123def

# View running status
openclaw morelogin browser status --env-id abc123def

# Close profile
openclaw morelogin browser close --env-id abc123def
```

### クラウドフォン

```bash
# List cloud phones
openclaw morelogin cloudphone list --page 1 --page-size 20

# Start/Stop
openclaw morelogin cloudphone start --id <cloudPhoneId>
openclaw morelogin cloudphone stop --id <cloudPhoneId>

# Get details (Includes ADB connection info)
openclaw morelogin cloudphone info --id <cloudPhoneId>

# Execute cloud phone command via ADB
openclaw morelogin cloudphone exec --id <cloudPhoneId> --command "ls /sdcard"
```

### プロキシとグループ管理

```bash
# Proxy
openclaw morelogin proxy list
openclaw morelogin proxy add --payload '{"proxyIp":"1.2.3.4","proxyPort":8000,"proxyType":0}'

# Group
openclaw morelogin group list
openclaw morelogin group create --name "US-Group"
```

## 最小限のエンドツーエンドの例

以下は、ブラウザー プロファイルの作成、起動、CDP 経由で URL へのアクセス、プロファイルを閉じる完全な例です。これらはすべて OpenClaw エージェントによって調整されます。

### 自然言語プロンプト

> *「新しい MoreLogin ブラウザ プロファイルを作成し、google.com を開いてスクリーンショットを撮り、閉じます。」*


### エージェントが実行する内容

```bash
# 1. Create a browser profile
openclaw morelogin browser create --name "demo-profile"
# → Returns: {"envId": "abc123def"}

# 2. Start the profile
openclaw morelogin browser start --env-id abc123def
# → Returns: {"debugPort": "9222", "webdriver": "/path/to/chromedriver"}

# 3. Connect via CDP (agent uses Puppeteer internally)
# The agent connects to ws://127.0.0.1:9222 and runs:
#   - page.goto("https://www.google.com")
#   - page.screenshot({path: "screenshot.png"})

# 4. Close the profile
openclaw morelogin browser close --env-id abc123def
```

### 同等のスクリプト (Node.js)

```javascript
const { execSync } = require('child_process');
const puppeteer = require('puppeteer-core');

async function main() {
  // 1. Create profile
  const createResult = JSON.parse(
    execSync('openclaw morelogin browser create --name "demo-profile"').toString()
  );
  const envId = createResult.data.envId;

  // 2. Start profile
  const startResult = JSON.parse(
    execSync(`openclaw morelogin browser start --env-id ${envId}`).toString()
  );
  const debugPort = startResult.data.debugPort;

  // 3. Connect via CDP and automate
  const browser = await puppeteer.connect({
    browserURL: `http://127.0.0.1:${debugPort}`,
    defaultViewport: null
  });
  const page = (await browser.pages())[0];
  await page.goto('https://www.google.com');
  await page.screenshot({ path: 'screenshot.png' });
  console.log('Screenshot saved.');

  // 4. Cleanup
  await browser.disconnect();
  execSync(`openclaw morelogin browser close --env-id ${envId}`);
  console.log('Profile closed.');
}

main().catch(console.error);
```

## エージェントの推論方法

OpenClaw エージェントに *「プロファイルを作成して example.com にログインする」* ように依頼すると、エージェントは次のことを行います。

1. `openclaw morelogin browser create` (または同等の API) を呼び出して `envId` を取得します。
2. `openclaw morelogin browser start` を呼び出して `debugPort` を取得します。
3. CDP ツール (Puppeteer/Playwright など) を使用して `debugPort` に接続し、ログイン手順を実行します。
4. `openclaw morelogin browser status` で成功を確認します。


## トラブルシューティング

| 症状 | 解決策 |
|  --- | --- |
| `command not found: openclaw` | OpenClaw がグローバルにインストールされていることを確認します: `npm install -g openclaw` |
| `Error: connect ECONNREFUSED 127.0.0.1:40000` | コマンドを実行する前に MoreLogin デスクトップ アプリを起動します。 |
| スキルディレクトリがありません | `openclaw init` を実行してワークスペースを作成し、スキルのクローンを作成します。 |
| 更新後のデータが古い | `git pull`の後にスキルディレクトリで`npm install`を再度実行します。 |