html2wp / Documentación de html2wp / Plugin

Plugin para Claude Code y Codex

Cómo instalar el plugin html2wp en Claude Code o Codex y usarlo para convertir un sitio en un tema de WordPress, paso a paso, hasta la revisión de las páginas terminadas. Si conviertes con la app de escritorio, los pasos están en su propia documentación.

Cuándo necesitas una clave de licencia

Para probarlo no necesitas ninguna. El plan gratuito está abierto a todo el mundo y te da tres conversiones de hasta cinco páginas cada una, más cinco repeticiones. Las dos cifras se cuentan por dirección IP. Necesitas una licencia para trabajos de clientes, para sitios de más de cinco páginas y para tiendas WooCommerce. La compras en la página de precios, y la clave llega por correo. Cómo funciona la compra.

Primera parteConfigurar el plugin

Instalación

El plugin está en dos repositorios de GitHub, uno para Claude Code y otro para Codex. Los dos tienen el mismo contenido y el mismo número de versión. Solo se diferencian en cómo los carga cada herramienta. Instala el que corresponde a tu herramienta, porque el otro no se cargaría.

HerramientaRepositorio
Claude CodeiOSDevSK/html2wp-cc-plugin
CodexiOSDevSK/html2wp-codex-plugin

Cambia a tu herramienta y ejecuta los dos comandos, uno detrás de otro:

/plugin marketplace add iOSDevSK/html2wp-cc-plugin
/plugin install html2wp@html2wp

El primer comando añade desde GitHub el catálogo de plugins (el marketplace). Después, el segundo instala html2wp desde ese catálogo. Codex necesita su propio repositorio porque encuentra los plugins a través del archivo .agents/plugins/marketplace.json, y el repositorio de Claude Code no tiene ese archivo.

Actualizaciones

El comando de actualización se llama distinto en cada herramienta. En Codex es upgrade, en Claude Code es update:

/plugin marketplace update html2wp

Activa las actualizaciones automáticas en Claude Code

Claude Code no activa las actualizaciones automáticas para catálogos de terceros. Sin ellas, solo recibes una versión nueva del plugin cuando la pides, y algunas versiones corrigen fallos de seguridad. Para activarlas, abre /plugin, elige html2wp en "Marketplaces" y activa "auto-update".

Para ver la versión instalada, ejecuta codex plugin list en Codex. En Claude Code, ve a /plugin → Marketplaces → html2wp.

Si la versión en Codex no cambió tras una actualización, Codex tiene guardada una copia antigua. Bórrala e instala el plugin otra vez:

Codex, borrar la copia antigua
rm -rf ~/.codex/plugins/cache/html2wpcodex plugin marketplace upgrade && codex plugin add html2wp@html2wp

Si eso tampoco funciona, puede que Codex tenga además otra copia más antigua de una instalación manual. El comando codex plugin marketplace list muestra todos los catálogos. Si ves ahí html2wp@<other-name>, quítala con codex plugin remove html2wp@<that-name>.

La mayor parte del trabajo ocurre en el servicio html2wp, y el servicio se actualiza solo, así que tu próxima conversión ya usa la versión nueva. Solo tienes que actualizar la parte que se ejecuta en tu equipo: las comprobaciones, los scripts y el filtro de los datos que salen. Lo que cambió en cada versión está en el historial de commits de GitHub.

Requisitos

Node.jsversión 20 o posterior
Python 3con los paquetes Playwright (chromium) y Pillow
Dockerincluido docker compose, que ejecuta el WordPress de prueba
Otras herramientasphp-cli, jq, curl, bash, tar
Sitio de destinoWordPress 6.6 o posterior

No tienes que comprobarlo tú. Cuando inicias una conversión, el plugin revisa primero tu equipo y te dice qué falta:

revisión del equipo antes de la conversión
Node.js                ok        v22.14.0
Python                 ok        3.12.4
Playwright             MISSING   mirroring, prerendering and every screenshot
Docker                 NOT RUNNING  installed, but the daemon is not up

Los paquetes que solo se instalan en tu carpeta de usuario, como Playwright o el navegador chromium, el plugin se ofrece a instalarlos por ti. Pregunta antes de cada comando. Lo que cambia todo el sistema, como Docker Desktop o un Node.js más reciente, solo lo indica, y luego espera a que lo instales tú.

Si quieres instalar los paquetes de Python a mano:

Instalación manual
python3 -m pip install playwright pillow && python3 -m playwright install chromium

Qué modelo usar

Durante una conversión la IA tiene que tomar muchas decisiones. Por ejemplo: qué página es la de inicio, por qué falló una comprobación o si un cliente notaría siquiera la diferencia entre dos capturas. Por eso la elección del modelo influye en el resultado más que cualquier otro ajuste.

HerramientaModelo recomendado
Claude CodeOpus 5, con Fable 5 como asesor.
CodexLuna con nivel de razonamiento xhigh.

La opción más barata

Codex con Luna en xhigh cuesta menos, y sus resultados están por encima de la media. Si te importa el coste de una conversión, elige esta combinación.

En Claude Code, Opus 5 hace el trabajo y a Fable 5 se le consultan las decisiones importantes, que es donde una conversión suele torcerse.

Clave de licencia

En el plan gratuito no necesitas clave, así que puedes saltarte esta sección. Si tienes una licencia, guarda la clave en tu equipo antes de la primera conversión. Solo lo haces una vez, desde cualquier carpeta:

Una vez por equipo
mkdir -p ~/.config/html2wpprintf '%s' 'YOUR-KEY' > ~/.config/html2wp/licencechmod 600 ~/.config/html2wp/licence

También puedes pasar la clave en la variable de entorno H2WP_KEY, que tiene prioridad sobre el archivo. El archivo es más seguro, porque así la clave no queda en el historial de tu terminal.

En el archivo va la clave de licencia de html2wp que recibes al comprar Pro. Una clave de Visual Edit Pro no va ahí. Esa la introduces en el plugin Visual Edit del sitio que editas, y no sirve para conversiones.

Guarda la clave antes de iniciar una conversión

Justo al empezar, el plugin calcula cuántas páginas puedes convertir. Si todavía no tiene clave, planifica la conversión con el límite gratuito de cinco páginas. Una clave añadida durante la conversión no cambia eso.

Para saber si una clave es válida, para qué puedes usarla y hasta cuándo, ejecuta npx html2wp-license YOUR-KEY. La comprobación de claves en la página de licencias explica qué significa el resultado. Qué incluye una licencia y cómo comprarla está en la página de licencias.

Segunda parteCómo transcurre una conversión

Convertir un proyecto

Abre una terminal en la carpeta del proyecto que quieres convertir e inicia ahí tu agente:

Abre tu agente en el proyecto
git clone https://github.com/YOU/YOUR-LOVABLE-PROJECTcd YOUR-LOVABLE-PROJECTcodex

Si usas Claude Code, escribe claude en lugar de codex en la última línea.

Después dale al agente una sola orden:

/html2wp:html2wp convert this project

Eso es todo. No ejecutas npm install ni npm run build, y no configuras nada. Los proyectos de Bolt, v0, shadcn o una exportación de Next.js se convierten igual. En Claude Code también puedes escribir solo /html2wp:html2wp, o pedirle a Codex que use html2wp. Entonces el plugin te pregunta qué convertir.

Los primeros minutos de una conversión

los primeros minutos
> convert this project

  Checking this machine first…
    Node.js     ok    v22.14.0
    Playwright  MISSING
  Two Python packages are missing. Shall I install them? (they go in your
  user directory, no root)

> yes

  … installed. Building the project, then prerendering it.
  7 routes found: /, /about, /pricing, /blog, /blog/launch, /contact, /faq
  Decided: /blog is the listing, /blog/launch an article, the rest are pages.
  Written to the manifest; carrying on.

En las últimas líneas el plugin anotó cómo clasificó las páginas: /blog es el listado de artículos, /blog/launch es un artículo y el resto son páginas normales. Revisa esta decisión en el sitio terminado al final.

Otras entradas

La orden convert this project convierte la carpeta en la que estás. Si los archivos están en otro sitio, escribe su ruta, por ejemplo convert ./dist.

Lo que tienesLo que escribes
Un proyecto del que se construye el sitio: Lovable, Bolt, v0, Vite, Astro, una exportación de Next.jsconvert this project
Una carpeta de archivos .html terminados, imágenes y estilosconvert ./folder-name

La entrada siempre tiene que estar en tu disco. El plugin no convierte la dirección de un sitio publicado. Necesita los archivos de los que está hecho el sitio, no lo que muestra el navegador.

Cómo se convierte un proyecto de Lovable

Una app de Lovable está hecha en React. Su index.html solo contiene un elemento vacío y un script, y la página cobra vida únicamente en el navegador. Por eso el plugin primero compila el proyecto, lo abre en un navegador real y guarda cada página como HTML terminado. También captura el contenido que solo aparece cuando se ejecutan los scripts, como acordeones abiertos o menús desplegables. Después crea el tema a partir de esas páginas. Los detalles están en la guía de Lovable a WordPress.

Qué decide por ti

Qué página es cuál

Hay una decisión que pesa más que ninguna en el resultado: qué página es la de inicio, cuál es el listado de artículos, cuáles son artículos y cuáles son productos. El plugin lo deduce del código de las páginas, lo anota y sigue sin preguntar. Solo se detiene cuando no puede decidir. Por ejemplo, cuando el sitio tiene más páginas de las que permite tu límite, o cuando dos páginas parecen la misma.

Si se equivoca, corregirlo sale barato. Corriges la clasificación y vuelves a lanzar la conversión. Eso es una repetición, y no cuenta para tu límite de conversiones.

Después funciona casi solo

Flash tarda una media hora y Full alrededor de una hora, según el número de páginas y la velocidad de tu equipo. Mientras tanto, el plugin construye el sitio, lo compara con el original y lo envía al servicio html2wp para convertirlo. Después instala el tema terminado en un WordPress temporal en Docker en tu equipo y lo prueba ahí.

La revisión que no puedes saltarte

Al final el plugin te muestra cada página junto al original en una sola imagen. Mira cada imagen y di lo que ves.

Por qué una persona tiene que revisar las páginas

Las comprobaciones automáticas comparan números, así que también dejan pasar errores que una persona vería al instante. En una conversión faltaba una sección entera más abajo en la página, pero la comparación mostró una diferencia de solo el 0,4 %, y la comprobación pasó. En ese punto el ZIP del tema ya está terminado. Esta revisión es la que te dice si puedes entregarlo.

Qué recibes

  • El tema como archivo ZIP. Lo subes a WordPress en Apariencia → Temas → Añadir nuevo → Subir tema. Si el tema iba a salir roto, el plugin no lo genera: por ejemplo, si el PHP tuviera un error de sintaxis, faltara contenido, la captura del tema tuviera un tamaño incorrecto o no se pudiera comprar nada en la tienda.
  • El informe CONVERSION-REPORT.md en la misma carpeta que el ZIP. Recoge las páginas convertidas, los menús conectados, todo lo que encontraste en la revisión, cada aviso de la conversión y lo que aún queda por hacer.
  • Un enlace a Visual Edit Lite, el editor gratuito para hacer cambios con clics. El editor no forma parte del tema, y el tema funciona sin él. Visual Edit Pro es una licencia de pago aparte.

El tema es independiente. Las páginas, el blog, los formularios, los menús, el SEO y las redirecciones forman parte de su código y funcionan sin plugins. El código es PHP, CSS y JavaScript legible. Es tuyo y no está atado a nosotros. El tema no se conecta a ningún sitio. Cómo editarlo con clics se explica en la parte de Visual Edit en la documentación de la app.

Qué sale de tu equipo

Tu equipo hace el trabajo de navegador: construir las páginas, comparar capturas y ejecutar un WordPress temporal en Docker para las comprobaciones finales. El tema en sí lo crea el servicio html2wp. Por eso el plugin le envía el sitio compilado y recibe el tema de vuelta.

Las comprobaciones del tema se ejecutan de tu lado, así que el servicio no ve sus resultados. Por eso, al final, el plugin se los envía. Es obligatorio: el servicio no inicia la siguiente conversión hasta que la anterior ha enviado sus resultados.

  • Qué se envía: los nombres de las comprobaciones, si pasaron, el número de páginas, el peor porcentaje de coincidencia y los nombres cortos de las páginas que fallaron, como about o pricing.
  • Qué no se envía: la dirección o el dominio del sitio, el código, los textos, las capturas, las rutas de archivos, la clave de licencia ni el nombre del sitio. El plugin solo envía campos predefinidos, nada más.
  • Compruébalo tú: el comando send-verdicts.sh <workspace> --dry-run muestra exactamente lo que se enviaría, pero no envía nada. Es un script corto que puedes leer.

El plugin no envía ningún otro dato, y el tema terminado no envía nada en absoluto. La descripción completa, incluido cuánto tiempo guardamos los datos, está en la página de privacidad.

Informar de un error

Si el propio conversor comete un error, infórmalo con este comando:

Error del conversor
curl -sS -X POST https://api.html2wp.dev/v1/report \ -H 'content-type: application/json' \ -d '{"subject":"what went wrong","body":"what you saw","evidence":"page keys, warnings"}'

Una persona lee cada informe. La corrección va luego al servicio, así que ayuda a todos los usuarios.

Los fallos de seguridad se informan de otra forma

No con este comando, ni como issue de GitHub. Los pasos están en la página de seguridad.