Maintenance

Migración desde Claude

OpenClaw importa el estado local de Claude mediante el proveedor de migración de Claude incluido. El proveedor muestra una vista previa de cada elemento antes de cambiar el estado y oculta los secretos en los planes e informes. La ejecución independiente de openclaw migrate crea una copia de seguridad verificada; la ruta de incorporación nueva prepara la importación y solo la publica después de que la verificación se complete correctamente.

Dos formas de importar

Asistente de incorporación

El asistente ofrece Claude cuando detecta un estado local de Claude.

bash
openclaw onboard --flow import

También se puede indicar una fuente específica:

bash
openclaw onboard --import-from claude --import-source ~/.claude

CLI

Se debe usar openclaw migrate para ejecuciones mediante scripts o repetibles. Se puede consultar openclaw migrate para obtener la referencia completa.

bash
openclaw migrate claude --dry-runopenclaw migrate apply claude --yes

Se debe añadir --from <path> para importar un directorio principal o una raíz de proyecto específicos de Claude Code.

Qué se importa

Instrucciones y memoria
  • El contenido de CLAUDE.md y .claude/CLAUDE.md del proyecto se copia o se añade al AGENTS.md del espacio de trabajo del agente de OpenClaw.
  • El contenido de ~/.claude/CLAUDE.md del usuario se añade al USER.md del espacio de trabajo.
Servidores MCP

Las definiciones de servidores MCP se importan desde .mcp.json del proyecto, ~/.claude.json de Claude Code y claude_desktop_config.json de Claude Desktop cuando están presentes.

Skills y comandos
  • Las Skills de Claude que contienen un archivo SKILL.md se copian en el directorio de Skills del espacio de trabajo de OpenClaw.
  • Los archivos Markdown de comandos de Claude ubicados en .claude/commands/ o ~/.claude/commands/ se convierten en Skills de OpenClaw con disable-model-invocation: true.

Qué permanece solo en el archivo

El proveedor copia estos elementos en el informe de migración para su revisión manual, pero no los carga en la configuración activa de OpenClaw:

  • Hooks de Claude
  • Permisos de Claude y listas amplias de herramientas permitidas
  • Valores predeterminados del entorno de Claude
  • CLAUDE.local.md
  • .claude/rules/
  • Subagentes de Claude ubicados en .claude/agents/ o ~/.claude/agents/
  • Cachés, planes y directorios del historial de proyectos de Claude Code
  • Extensiones de Claude Desktop y credenciales almacenadas por el sistema operativo

OpenClaw se niega a ejecutar hooks, confiar en listas de permisos o descodificar automáticamente el estado opaco de credenciales de OAuth y Desktop. Después de revisar el archivo, se debe transferir manualmente lo que sea necesario.

Selección de la fuente

Sin --from, OpenClaw examina el directorio principal predeterminado de Claude Code en ~/.claude, el archivo de estado de muestra ~/.claude.json de Claude Code y la configuración MCP de Claude Desktop en macOS.

Cuando --from apunta a la raíz de un proyecto, OpenClaw importa únicamente los archivos de Claude de ese proyecto, como CLAUDE.md, .claude/settings.json, .claude/commands/, .claude/skills/ y .mcp.json. Durante una importación desde la raíz de un proyecto, no lee el directorio principal global de Claude.

Flujo recomendado

  • Obtener una vista previa del plan

    bash
    openclaw migrate claude --dry-run

    El plan enumera todo lo que cambiará, incluidos los conflictos, los elementos omitidos y los valores confidenciales ocultos de los campos anidados env o headers de MCP.

  • Aplicar con una copia de seguridad

    bash
    openclaw migrate apply claude --yes

    OpenClaw crea y verifica una copia de seguridad antes de aplicar los cambios.

  • Ejecutar el diagnóstico

    bash
    openclaw doctor

    El diagnóstico comprueba si existen problemas de configuración o estado después de la importación.

  • Reiniciar y verificar

    bash
    openclaw gateway restartopenclaw status

    Se debe confirmar que el Gateway funciona correctamente y que las instrucciones, los servidores MCP y las Skills importados están cargados.

  • Gestión de conflictos

    La aplicación se niega a continuar cuando el plan informa de conflictos (ya existe un archivo o valor de configuración en el destino).

    En una instalación nueva de OpenClaw, los conflictos no son habituales. Normalmente aparecen cuando se vuelve a ejecutar la importación en una configuración que ya contiene modificaciones del usuario.

    Salida JSON para automatización

    bash
    openclaw migrate claude --dry-run --jsonopenclaw migrate apply claude --json --yes

    --yes es obligatorio para migrate apply fuera de una terminal interactiva; sin este, OpenClaw devuelve un error en lugar de aplicar los cambios, por lo que los scripts y el Pipeline de CI deben proporcionar --yes explícitamente. Primero se debe obtener una vista previa con --dry-run --json y, cuando el plan sea correcto, aplicar los cambios con --json --yes.

    Solución de problemas

    El estado de Claude se encuentra fuera de ~/.claude

    Se debe proporcionar --from /actual/path (CLI) o --import-source /actual/path (incorporación).

    La incorporación se niega a importar en una configuración existente

    Las importaciones durante la incorporación requieren una configuración nueva. Se puede restablecer el estado y repetir la incorporación, o usar openclaw migrate apply claude directamente, que admite --overwrite y el control explícito de las copias de seguridad.

    Los servidores MCP de Claude Desktop no se importaron

    Claude Desktop lee claude_desktop_config.json desde una ruta específica de la plataforma. Se debe apuntar --from al directorio de ese archivo si OpenClaw no lo detectó automáticamente.

    Los comandos de Claude se convirtieron en Skills con la invocación del modelo deshabilitada

    Es intencional. Los comandos de Claude los activa el usuario, por lo que OpenClaw los importa como Skills con disable-model-invocation: true. Se puede editar el frontmatter de cada Skill para que el agente las invoque automáticamente.

    Contenido relacionado

    Was this useful?
    On this page

    On this page