
Recuperación de identificadores JavaScript de nueva generación con LLMs.
Prueba FlowName en tu navegador → — introduce tu JavaScript, tu clave de API y tu modelo; no requiere instalación.
CLI: npx --yes --package=flowname@latest flowname input.js (configura primero GEMINI_API_KEY).
FlowName es un Recuperador Semántico de Identificadores de nueva generación para JavaScript ofuscado. Mediante el uso de análisis estático basado en AST para agrupar variables lógicamente relacionadas en solicitudes LLM con presupuesto limitado, FlowName elimina las alucinaciones por pérdida de contexto comunes en los enfoques ingenuos de ventanas de texto.
En una comparativa directa contra una herramienta líder basada en símbolos (Humanify) sobre un ámbito ofuscado de 411 enlaces, FlowName ofreció:
Explora las 411 comparaciones de nombres en el informe HTML. La comparación 155 frente a 37 es un juicio Jev automatizado y sin calibrar; esta ejecución de un solo programa no puede establecer una ventaja general en la calidad de los nombres. Consulta las notas de la comparativa.
Configura GEMINI_API_KEY (o FLOWNAME_API_KEY) en tu entorno y luego ejecuta:
npx --yes --package=flowname@latest flowname input.js
La CLI escribe el código recuperado en un nuevo directorio flowname-output-TIMESTAMP-ID/output.js. Añade --report para ver cada solicitud y cada nombre propuesto en un informe HTML en vivo. No se requieren flags para el modelo Gemini predeterminado; la CLI no carga .env automáticamente. Requiere Node.js 22.8+.
Para el navegador, abre el playground, pega el JavaScript, proporciona tu propia clave de API y comienza la recuperación. Las solicitudes van directamente desde tu navegador al proveedor seleccionado; Stop interrumpe la ejecución.
FlowName nombra identificadores; no desempaqueta bundles ni revierte la ofuscación estructural. Usa webcrack para los patrones de ofuscación compatibles o Wakaru para los bundles compatibles, y luego pasa el JavaScript resultante a FlowName. Resuelve enlaces léxicos, usa relaciones ligeras y un fallback del mismo ámbito para agrupar objetivos, y pide al LLM varios nombres por solicitud. Mira cómo funciona el agrupamiento.
npm install flowname
import { readFile } from 'node:fs/promises';
import { recoverNames, createProvider } from 'flowname';
const sourceCode = await readFile('./input.js', 'utf8');
const provider = createProvider({
provider: 'gemini',
model: 'gemini-3.5-flash-lite',
apiKey: process.env.GEMINI_API_KEY,
});
const result = await recoverNames(sourceCode, { provider });
console.log(result.code);
Consulta la guía de uso para ver las opciones, los informes de la CLI y un ejemplo completo de biblioteca. El índice de documentación cubre el enfoque, la arquitectura, las limitaciones, el trabajo previo y la comparación con Humanify.
Licenciado bajo MIT. Consulta las notas de la versión.