# Integración con OpenClaw

**OpenClaw** es un potente marco de agente de IA. Al instalar la habilidad MoreLogin en su espacio de trabajo de OpenClaw, su agente obtiene la capacidad de administrar completamente los perfiles del navegador y los teléfonos en la nube de forma autónoma.

## Requisitos previos

- [Node.js](https://nodejs.org/) v18 o posterior
- [OpenClaw](https://github.com/openclaw-ai/openclaw) instalado e inicializado
- Aplicación de escritorio MoreLogin ejecutándose en la misma máquina (API local en `http://localhost:40000`)


## Instalación y configuración

### 1. Instale OpenClaw (si aún no está instalado)

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

Después de la inicialización, la estructura del espacio de trabajo tiene este aspecto:

```
~/.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. Instale la habilidad MoreLogin

Clona el repositorio de habilidades oficial en el directorio de habilidades de 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
```

> **¿De dónde viene la habilidad?**
El código fuente de la habilidad está alojado en GitHub en [MoreLoginBrowser/morelogin-local-api-skill](https://github.com/MoreLoginBrowser/morelogin-local-api-skill). Este repositorio contiene el contenedor CLI y los enlaces API que OpenClaw utiliza para interactuar con MoreLogin.


### 3. Configurar las herramientas OpenClaw

Agregue la definición de la herramienta MoreLogin a su archivo `~/.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. Verificar la instalación

Ejecute una prueba rápida para confirmar que la habilidad esté instalada correctamente:

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

Si la aplicación MoreLogin se está ejecutando, debería ver una respuesta JSON con los perfiles de su navegador (o una lista vacía).

## Actualizando la habilidad

Para actualizar a la última versión:

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

Compruebe si hay cambios importantes en las [notas de la versión](https://github.com/MoreLoginBrowser/morelogin-local-api-skill/releases) antes de actualizar.

## Referencia de comandos CLI

La habilidad MoreLogin expone los comandos CLI directamente al entorno OpenClaw. El agente los invoca automáticamente durante el razonamiento, pero también puede ejecutarlos manualmente para realizar pruebas.

### Perfiles del navegador

```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
```

### Teléfonos en la nube

```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"
```

### Gestión de proxy y grupos

```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"
```

## Ejemplo mínimo de un extremo a otro

A continuación se muestra un ejemplo completo que crea un perfil de navegador, lo inicia, visita una URL a través de CDP y cierra el perfil, todo orquestado por el agente de OpenClaw.

### Mensaje de lenguaje natural

> *"Cree un nuevo perfil de navegador MoreLogin, abra google.com, tome una captura de pantalla y ciérrelo."*


### Lo que ejecuta el agente

```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
```

### Script equivalente (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);
```

## Cómo razona el agente

Cuando le pide al agente de OpenClaw que *"cree un perfil e inicie sesión en example.com"*, el agente:

1. Llame a `openclaw morelogin browser create` (o API equivalente) para obtener un `envId`.
2. Llame a `openclaw morelogin browser start` para obtener el `debugPort`.
3. Utilice una herramienta CDP (como Puppeteer/Playwright) para conectarse al `debugPort` y realizar los pasos de inicio de sesión.
4. Verifique el éxito a través de `openclaw morelogin browser status`.


## Solución de problemas

| Síntoma | Solución |
|  --- | --- |
| CODIGO_PH_0 | Asegúrese de que OpenClaw esté instalado globalmente: `npm install -g openclaw` |
| CODIGO_PH_0 | Inicie la aplicación de escritorio MoreLogin antes de ejecutar comandos |
| Falta el directorio de habilidades | Ejecute `openclaw init` para crear el espacio de trabajo y luego clone la habilidad. |
| Datos obsoletos después de la actualización | Ejecute `npm install` nuevamente en el directorio de habilidades después de `git pull` |