REA: qué es y qué no es la herramienta de moda para "clonar" aplicaciones
REA es un servidor MCP y una CLI que le dan a tu agente de IA herramientas de ingeniería inversa. Se ha hecho famoso como "el repo para clonar apps", pero lo que hace es otra cosa. Te explico qué es, cómo instalarlo y qué no es.
- Javi Mata
- 11 min de lectura
Tabla de contenido
- Qué es REA
- Cómo funciona
- Qué puede analizar
- Cómo se instala
- Si usas Claude Code: ojo con el alcance
- Diagnóstico, actualización y desinstalación
- Un primer uso
- De dónde sale lo de “clonar”
- Qué no es REA
- No es un botón de “copiar app”
- No es un bot que maneja el navegador por ti
- No es un permiso legal
- No es un sandbox
- No es infalible
- No es para analizar tu propio repositorio
- No te da licencias de herramientas comerciales
- No cualquier repo llamado “rea” es el oficial
- Para qué sí lo usaría
- Conclusión
- Fuentes
Si estos días has visto en redes que “con REA tu agente clona cualquier app”, vale la pena separar lo que dice la gente de lo que dice el proyecto. REA (Reverse Engineer Anything) es un repositorio de GitHub que, al 20 de octubre de 2026, pasaba de 340,000 estrellas, y en su sitio oficial hay un prompt de ejemplo que dice literalmente “Clone this website for me”. De ahí viene la fama.
Leí el README, el aviso de uso responsable, la política de seguridad, la guía de instalación y el sitio rea.tools. Todo lo que sigue corresponde a la versión 6.7.0 del paquete rea-agents, publicada en npm el 18 de octubre de 2026. El proyecto saca versiones muy seguido, así que revisa el CHANGELOG si lees esto más adelante.
Qué es REA
La definición del propio sitio: hacer ingeniería inversa es “aprender cómo funciona un software inspeccionando el programa mismo”. REA le da a tu agente de IA (Claude Code, Codex, Cursor y otros) las herramientas para hacerlo sin tener el código fuente.
En la práctica son tres piezas que vienen en el paquete npm rea-agents:
- Un servidor MCP que tu agente llama para inspeccionar un binario, una app de Electron, un APK o una página web.
- Una CLI (
rea) con los mismos flujos, para usarla desde la terminal sin agente. - Una skill llamada
reverse-engineer-anythingcon las instrucciones de investigación para el agente.
REA no trae su propio descompilador para todo: se apoya en herramientas que ya existen. Para binarios nativos usa Hopper, Ghidra o IDA; para sitios web, un navegador de la familia Chrome; para JavaScript, Electron y .NET hace el análisis estático por su cuenta. El código es TypeScript con licencia MIT, el repositorio se creó el 14 de abril de 2026 y el paquete se publicó por primera vez en npm el 12 de julio de 2026.
Cómo funciona
El flujo que describe el README es este:
- Le haces una pregunta a tu agente sobre un programa (“¿cómo funciona la búsqueda en esta app?”).
- El agente llama a REA por MCP para inspeccionar el objetivo y rastrear el código relevante.
- REA devuelve hallazgos con su evidencia: pseudocódigo, ensamblador, módulos, referencias, observaciones en tiempo de ejecución y lo que no pudo determinar.
- El agente usa esos hallazgos para explicarte el comportamiento o para escribir y probar una implementación propia.
El análisis corre en tu máquina. Pero ojo con un matiz que el FAQ aclara: tu agente recibe los resultados, y ahí aplica la política de datos de tu proveedor del modelo.
Qué puede analizar
La tabla del README es larga. Estos son los objetivos más comunes y lo que piden:
| Objetivo | Qué devuelve REA | Qué necesitas |
|---|---|---|
| Binarios nativos | Pseudocódigo, ensamblador, strings, símbolos, llamadas y referencias | Hopper, Ghidra o IDA |
| JavaScript / Electron | Módulos, imports, source maps, rutas, IPC y add-ons nativos | Node.js y npm (en Linux, un ps compatible con procps) |
| Sitios web | Estructura de la página, scripts, observaciones de red y capturas de pantalla | Un navegador de la familia Chrome |
| Ensamblados .NET | Metadatos, instrucciones CIL y dependencias nativas declaradas | Nada extra (solo análisis estático) |
| APKs de Android | Declaraciones del manifiesto, clases, métodos descompilados y referencias | JADX y un JDK completo |
| Firmware | Regiones, resultados de extracción y entrega al análisis nativo | Binwalk o Unblob en Linux |
| Binarios de Go y Rust | Versión del compilador, módulos o crates embebidos | Nada extra |
| Bases de datos SQLite | Tablas, columnas, índices, vistas y filas de ejemplo | Node.js 24.x (>=24.15) o 26+ |
El análisis estático de JavaScript y .NET solo lee los archivos, sin ejecutar la aplicación. La captura en tiempo de ejecución sí ejecuta o interactúa con el objetivo, con los permisos de tu usuario.
Cómo se instala
Necesitas Node.js 22.x (>=22.19), 24.x (>=24.11) o 26+, más npm. Luego:
npx rea-agents setup
El asistente te deja elegir a qué agentes conectarlo, te muestra un plan con las rutas exactas que va a modificar (con respaldo de la configuración existente) y no escribe nada hasta que lo apruebas. Si quieres análisis nativo con Hopper, la instalación de Hopper es una aprobación aparte. Al terminar, reinicia tu agente.
Para ver el plan sin aplicar nada, la skill documenta esta forma (cambia codex por el ID de tu cliente, por ejemplo claude_code):
npx -y rea-agents@latest setup --client codex --dry-run --json
Si usas Claude Code: ojo con el alcance
Este detalle me parece importante. Según la guía de instalación, el setup registra REA en mcpServers.rea de ~/.claude.json e instala la skill en ~/.claude/skills, así que todos los proyectos que abras con Claude Code pueden llamar a REA. Si solo lo quieres en un proyecto, la guía propone no correr el setup para Claude Code y registrarlo con alcance local desde la carpeta del proyecto:
claude mcp add --scope local rea -- npx -y rea-agents@6.7.0 mcp
Esa vía no instala la skill, y la guía recomienda evitar --scope project porque escribe un .mcp.json en el repositorio que puede acabar en un commit. Si no tienes claro qué es cada scope, lo expliqué en cómo conectar servidores MCP a Claude Code.
Diagnóstico, actualización y desinstalación
Estos comandos usan la CLI rea, que se instala de forma global con npm install --global rea-agents:
rea doctor --json
rea update
rea uninstall
rea uninstall --purge-data
rea doctor --json solo lee. rea uninstall quita los registros y la skill de REA, y --purge-data borra además su caché y estado en ~/.rea. Hopper, Node.js y tus capturas no se tocan.
Un primer uso
Sin agente, puedes analizar una app de JavaScript o Electron ya extraída (o su archivo ASAR). Este es el comando del README:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
Con agente, el prompt de ejemplo del README es:
Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.
Si quieres probar con algo controlado, el sitio tiene una primera investigación guiada con una app de notas de ejemplo que puedes descargar.
De dónde sale lo de “clonar”
Tiene origen oficial. En la portada de rea.tools, en la sección “Try a larger project”, hay dos prompts de ejemplo:
Use REA to inspect https://rea.tools/. Clone this website for me.
Use REA to reconstruct this game from its executable. Recover the gameplay logic in C and test it against the original.
Y el README abre con la idea de “¿ves una función que te gusta en otra app? Pídele a tu agente que la investigue con REA […] y construya una versión para tu proyecto”.
Dos matices que se pierden en redes. El sitio que el ejemplo propone clonar es el del propio proyecto, y su código está en la carpeta website/ del mismo repositorio con licencia MIT (salvo algunos recursos de terceros, que conservan su propia licencia). Y en el ejemplo del dinosaurio de Chrome que muestra la portada, REA encuentra la regla de velocidad del juego original (empieza en 6, sube 0.001 por actualización hasta 13). El dibujo, el salto y las colisiones del minijuego, en cambio, se escribieron desde cero. Eso es lo que hace REA: extrae cómo funciona algo, y el código nuevo lo escribe tu agente.
Qué no es REA
No es un botón de “copiar app”
REA devuelve evidencia, no una copia lista para usar. En binarios nativos te da pseudocódigo y ensamblador, no el código fuente original. La guía de exportación de scripts web lo dice claro: los scripts capturados de un sitio “no establecen ejecución ni un sitio web completo”. Lo que sale de REA es material para que el agente escriba algo nuevo.
No es un bot que maneja el navegador por ti
La observación de sitios web con el protocolo de DevTools (CDP) se describe como “una capacidad pasiva de ingeniería inversa, no una superficie general de automatización o control remoto del navegador”. Se conecta a un Chrome que tú arrancas con un perfil aparte y el puerto de depuración en loopback. Hay un modo de escenarios con Playwright que sí ejecuta acciones, pero solo las que declaras.
No es un permiso legal
El DISCLAIMER del proyecto dice que REA es para investigación de seguridad, análisis de malware, CTFs, educación, interoperabilidad, preservación de software y auditar software que te pertenece o que tienes autorización para examinar. También enumera lo que el proyecto no apoya:
- saltarse DRM, verificaciones de licencia, anti-cheat u otras protecciones técnicas;
- desarrollar trampas para juegos o alterar servicios en línea;
- evadir autenticación, protección contra bots o controles de acceso sin autorización;
- copiar software propietario o reproducir su código y recursos protegidos;
- evadir las políticas de uso de los proveedores de modelos de IA;
- revender o compartir cuentas o acceso a APIs de IA.
Y añade algo que conviene leer dos veces: obtener una salida parecida a código fuente o un informe de análisis no te da derechos sobre el programa original ni sobre esa salida, y la ingeniería inversa puede estar restringida en tu país o por la licencia del software que analizas.
No es un sandbox
La política de seguridad lo dice tal cual: “Esto no es un sandbox”. Al abrir un binario no confiable, el análisis lo hace el proveedor que elegiste (Ghidra, Hopper…) con los permisos de tu usuario. El aviso del proyecto pide usar un entorno adecuado para objetivos no confiables; mi recomendación concreta es una máquina virtual o un usuario aparte.
No es infalible
El aviso del proyecto advierte que la descompilación, la reconstrucción, las heurísticas y el análisis con IA pueden ser incompletos o incorrectos. Por diseño, REA separa observaciones, inferencias y lo que no pudo resolver. Si tu agente te da una conclusión sin esa separación, pídele la evidencia.
No es para analizar tu propio repositorio
La skill de REA indica que, para analizar un repositorio con el código fuente completo, el agente debe usar sus herramientas normales y no REA. REA tiene sentido cuando solo tienes el programa ya compilado o empaquetado.
No te da licencias de herramientas comerciales
IDA Pro, los descompiladores de Hex-Rays, Hopper y JEB se tienen que conseguir legalmente. REA no da licencias ni claves, y el README dice expresamente que las copias crackeadas y las claves robadas no están autorizadas.
No cualquier repo llamado “rea” es el oficial
El README avisa que las fuentes oficiales son morluto/rea, rea.tools y el paquete npm rea-agents, y que un nombre parecido o un README copiado no hacen oficial una descarga. Con un proyecto tan popular, mi recomendación es instalar solo por npx rea-agents y desconfiar de forks que prometen “versiones mejoradas”.
Para qué sí lo usaría
Esto ya es opinión mía, no del proyecto:
- Entender apps de escritorio que ya usas, sobre todo las de Electron: qué endpoints llaman, cómo pasan datos entre ventanas, qué guardan en disco.
- Interoperabilidad: conectar tu sistema con un programa cerrado del que no hay documentación.
- Aprender: los casos del sitio (la calculadora de Windows, el sonido de DX-Ball, el portapapeles de Notion) son buenas clases de ingeniería inversa con evidencia.
- Investigar un comportamiento para luego diseñar tu propia versión, sin copiar código ni recursos. Si el resultado va a un producto comercial, la guía de instalación menciona la “separación clean-room”: que la implementación se haga en un entorno que no pueda leer REA, el objetivo ni los resultados del análisis, aislado con otra cuenta o un contenedor. Si estás en ese caso, mi recomendación es consultarlo con un abogado antes de empezar.
Lo que no haría: apuntarlo al sitio o a la app de un competidor para “sacar una copia”. Técnicamente REA no te la da, y el propio proyecto dice que no apoya ese uso.
Conclusión
REA es una herramienta seria de ingeniería inversa que pone Ghidra, Hopper, IDA, el análisis de JavaScript y la observación del navegador al alcance de tu agente, con evidencia en cada conclusión. Lo de “clonar apps” es una simplificación: REA te dice cómo funciona algo, y lo que construyas con eso, y si tienes derecho a construirlo, sigue siendo cosa tuya.
Fuentes
- Repositorio morluto/rea (README)
- README en español
- DISCLAIMER.md
- SECURITY.md
- Guía de instalación
- Observación de sitios web con CDP
- Exportación de scripts de sitios web
- Skill reverse-engineer-anything
- CHANGELOG (versión 6.7.0, 18 de octubre de 2026)
- Sitio oficial rea.tools
- FAQ de REA
- Guías de REA
- Primera investigación guiada
- Paquete rea-agents en npm
Etiquetas:
Compartir: