
Récupération d'identifiants JavaScript de nouvelle génération avec les LLMs.
La qualité des noms montre le ratio de noms exclusivement préférés par une évaluation Jev automatisée et non calibrée. Graphique animé → · Décomptes exacts, méthode et limites →
Essayez FlowName dans votre navigateur → — saisissez votre JavaScript, votre clé API et votre modèle ; aucune installation requise.
CLI : npx --yes --package=flowname@latest flowname input.js (définissez d'abord GEMINI_API_KEY).
FlowName est un récupérateur d'identifiants sémantiques de nouvelle génération pour JavaScript obfusqué. En utilisant une analyse statique basée sur l'AST pour regrouper les variables logiquement liées en requêtes LLM budgétisées, FlowName élimine les hallucinations par perte de contexte courantes dans les approches naïves par fenêtres de texte.
Sur deux benchmarks directs face à un outil de référence basé sur les symboles (Humanify) sur Cigar et GrobPaint, FlowName a obtenu ces résultats relatifs moyens :
Dans une seconde comparaison sur les 1 786 liaisons anonymisées de GrobPaint, FlowName a utilisé 408 appels API contre 1 786 et 29,36 % de jetons totaux en moins ; Jev, conscient du code source d'origine, a donné 512 préférences exclusives contre 274.
Explorez le résumé du benchmark et les deux rapports de noms consultables. Les jugements de Jev sont automatisés et non calibrés. Le prompt de Humanify omettait l'orthographe cible pour certaines liaisons, et les suffixes sûrs vis-à-vis des collisions peuvent affecter les scores des noms appliqués. Consultez le résumé pour la répartition du contexte et les limites.
Définissez GEMINI_API_KEY (ou FLOWNAME_API_KEY) dans votre environnement ou dans un fichier .env du répertoire courant, puis exécutez :
npx --yes --package=flowname@latest flowname input.js
Pour utiliser un autre point de terminaison compatible OpenAI, ou pour ignorer les variables d'environnement, passez tout sous forme de flags :
npx --yes --package=flowname@latest flowname input.js --base-url https://api.openai.com/v1 --model MODEL --api-key YOUR_API_KEY
Les options de ligne de commande ont la priorité, puis les variables d'environnement, puis le fichier .env ; la CLI émet un avertissement lorsqu'elles sont en désaccord. Une clé passée en tant qu'option peut être visible dans l'historique du shell et dans la liste des processus.
Vérifiez le coût avant d'engager la moindre dépense, ou essayez d'abord une petite partie d'un fichier volumineux :
flowname input.js --dry-run # planned API calls and prompt bytes; no key needed
flowname input.js --sample-requests 3 # send only the first 3 planned requests
flowname - -o - < input.js > output.js # standard input to standard output
La CLI écrit le code récupéré dans un nouveau répertoire flowname-output-TIMESTAMP-ID/output.js. Ajoutez --report pour observer chaque requête et chaque nom proposé dans un rapport HTML en direct. Aucun flag n'est requis pour le modèle Gemini par défaut. Nécessite Node.js 22.8+.
Pour le navigateur, ouvrez le playground, collez du JavaScript, fournissez votre propre clé API et lancez la récupération. Les requêtes partent directement de votre navigateur vers le fournisseur sélectionné ; Stop interrompt l'exécution.
FlowName nomme les identifiants ; il ne déballe pas les bundles ni n'annule l'obfuscation structurelle. Utilisez webcrack pour les motifs d'obfuscation pris en charge ou Wakaru pour les bundles pris en charge, puis passez le JavaScript résultant à FlowName. Il résout les liaisons lexicales, utilise des relations légères et un repli sur la même portée pour regrouper les cibles, et demande au LLM plusieurs noms par requête. Voir comment le regroupement fonctionne.
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);
Consultez le guide d'utilisation pour les options, les rapports CLI et un exemple complet de bibliothèque. L'index de la documentation couvre l'approche, l'architecture, les limitations, les travaux antérieurs et la comparaison avec Humanify.
Sous licence MIT. Consultez les notes de version.