Tool
humanify
Rename identifiers in minified JavaScript with LLM-suggested names, applied through scope-aware AST rewriting so the program structure stays unchanged. The new names are model suggestions, not recovered original identifiers.
Requirements and limitations
- Reviewed release: v3.1.1, published 2026-07-29. Version 3 is a single Rust binary with release builds for macOS arm64/x64, Linux x64/arm64 and Windows x64; source builds use cargo install. MIT-licensed.
- Select a provider preset: OpenAI, Gemini, Anthropic, OpenRouter and Requesty need an API key, while Ollama runs a local model. humanify makes one model call per identifier with surrounding code context (500 characters by default); hosted modes send that context to the selected provider, and cost and rate limits scale with the identifier count.
- Each run processes one JavaScript file and renames identifiers only: it does not unbundle webpack output or remove control-flow obfuscation, and upstream suggests running webcrack first. Name quality depends on the model; upstream describes local models as slower and less accurate than hosted providers.
About this entry
- Type
- Tool
- Category
- JavaScript and Electron tools
- Relationship
- Foundation tool
- Targets
- Website
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- https://github.com/jehna/humanify/blob/65b90bc4743b23317f13d01894776643dbde7fdb/README.md
- https://github.com/jehna/humanify/blob/65b90bc4743b23317f13d01894776643dbde7fdb/Cargo.toml
- https://github.com/jehna/humanify/blob/65b90bc4743b23317f13d01894776643dbde7fdb/LICENSE
- https://github.com/jehna/humanify/releases/tag/v3.1.1