jehna/humanify

Deobfuscate Javascript code using ChatGPT

What it solves

It restores readability to minified JavaScript code. Minified code typically replaces descriptive variable and function names with short, meaningless identifiers (like a, b, c), making the code difficult for humans to understand and reverse-engineer. This tool uses AI to suggest meaningful names based on the context of the code.

How it works

The tool combines Large Language Models (LLMs) with a JavaScript Abstract Syntax Tree (AST) parser. The LLM is used solely to suggest new, descriptive identifier names based on the surrounding code context. To ensure the code remains structurally identical and functional, the actual renaming is performed at the AST level using the oxc library, which handles lexical scoping and prevents naming collisions.

Who it’s for

Developers and security researchers who need to analyze, debug, or reverse-engineer minified JavaScript files.

Highlights

  • Multi-provider support: Works with OpenAI, Gemini, Anthropic, Ollama (local), OpenRouter, and Requesty.
  • AST-level precision: Ensures that renaming preserves all references and respects lexical scoping.
  • Static binary: Distributed as a Rust-based single binary for easy installation without Node.js or Python dependencies.
  • Unix-style I/O: Supports reading from stdin and writing to stdout, allowing it to be piped with other tools like webcrack.

Related

  • Project
  • Project
  • Project
  • Project
  • Project