humanify is a command-line tool that deobfuscates minified JavaScript code using large language models.
The tool addresses the problem of reading and maintaining minified JavaScript by leveraging LLMs to suggest meaningful identifier names while preserving code structure. It works by making one LLM call per identifier in the code, using the oxc parser to operate at the abstract syntax tree level. This ensures the rewritten code remains structurally identical to the input while only renaming obfuscated variables and functions.
Developers should choose this tool when they need to understand minified JavaScript files and want to avoid manual renaming. It suits projects where code readability is important but the original source is unavailable. The tool supports multiple LLM providers including OpenAI, Google Gemini, Anthropic, and locally-hosted Ollama models, allowing users to balance cost and privacy. For budget-conscious users, Gemini's free tier and Ollama provide no-cost options, though free OpenRouter models are heavily rate-limited. The tool integrates well with deobfuscators like webcrack through Unix-style stdin/stdout piping. Token usage scales with the number of identifiers and context window size, with a typical medium-sized minified file costing between $0.10 and $1.00 on OpenAI's small models.
The project is written in Rust and distributed as a single static binary with no external dependencies, making installation straightforward. Development has shifted toward supporting multiple LLM providers with configurable models and base URLs. The tool offers fine-grained control through options like context window size, JSON mode strategies, and verbose output for debugging. Recent work has expanded beyond the original ChatGPT integration to include Anthropic, Ollama, and OpenRouter support, reflecting responsiveness to user needs for cost and privacy alternatives.