Deobfuscate your JavaScript.
safe · secure · no server · works offline · fast
…or just start typing at the cursor.
safe · secure · no server · works offline · fast
…or just start typing at the cursor.
Drop a minified or packed .js file and OmniViewer’s
deobfuscator lays it back out: one statement per line, proper
indentation, and \x/\u string escapes decoded back
to readable characters. It runs entirely in your browser — no upload, no server
— so you can safely inspect a suspicious script without sending it anywhere.
It beautifies at the token level, which makes the vast majority of minified bundles readable again; it does not rename mangled variables back to their originals (that information is gone once a minifier discards it), so unusual code may need a second pass. The same drop also formats, compresses and obfuscates the code, and opens stats, raw and hex views.
It’s one lens on OmniViewer’s JavaScript File Viewer — Format & Deobfuscate .js: drop a file and every tab is one click away. OmniViewer opens every file format, entirely in your browser — no upload, no server.
No. OmniViewer is a static page with no server-side processing: your .js file is read directly by your browser, and every tab — formatting, compressor, deobfuscator, obfuscator and stats — runs locally in a Web Worker. The file never leaves your computer.
The raw and hex views are windowed — they read only the bytes needed to paint the screen — so they open files of effectively unlimited size, up to 20 GB and beyond; the engine behind them has been tested in-browser with a 40 GB file. The formatted view and the whole-file tools (compressor, deobfuscator, obfuscator, stats) transform the file in memory, so on very large files they work on a bounded prefix and tell you when they do. The parseability check above the view is skipped past a size threshold for the same reason.
The compressor shrinks a file by removing comments and unnecessary whitespace while preserving line breaks, so the code stays valid and behaves identically. The obfuscator goes further: it minifies and then rewrites every text string as \x hex escapes, so the strings are no longer human-readable — useful for making a file harder to skim, not for real security.
It beautifies minified or packed code — one statement per line, proper indentation, and string escapes decoded back to readable characters — which makes the vast majority of minified bundles readable again. It does not rename mangled variables back to their originals (that information is gone once a minifier discards it), and it works at the token level rather than fully parsing, so unusual code may need a second pass.
JavaScript the language is standardised as ECMAScript in the ECMA-262 specification, maintained by the TC39 committee at Ecma International — not as an IETF RFC. Related data formats do have RFCs; JSON, for instance, is defined in RFC 8259. OmniViewer has a dedicated JSON viewer too, at fastjsonviewer.com.
JavaScript is dynamically typed and runs directly in browsers and in Node with no build step. TypeScript adds static types and compiles down to JavaScript. Java is statically typed and runs on the JVM, and is common in enterprise and Android software. Rust is statically typed, compiles to native code and manages memory through ownership without a garbage collector, which suits systems and performance-critical work. The page above has a side-by-side table.
Brendan Eich created it at Netscape in 1995, reportedly in about ten days. It first shipped as LiveScript and was renamed JavaScript for marketing reasons; it is unrelated to Java. It was later standardised as ECMAScript, with the influential ES2015 (ES6) edition arriving in 2015 and a new edition every year since.