OmniViewer opens any file — JSON, MP3, PNG, CSV and more — right in your browser.
Nothing is uploaded; every byte stays on your device.
This page maps every format and the tabs each one gets, and indexes every article we've written.
Follow a link to a tool or an article, or load a file below to jump straight in.
omniviewer.org — format & feature map
Every file gets the byte-window view (EDIT for text, RAW for binary) + HEX.
Some formats get a dedicated toolkit (extra tabs),
shown in render order. Actions on any loaded file: open · download · share · close.
Every slug, tab and landing page below is a link; (sample) opens it
on a real shipped file. Generated from formats.yaml.
The last section indexes all 25 deep-dive articles.
omniviewer.org
├── (default) · any file
│ ├── EDIT
│ └── HEX
├── toolkits
│ ├── /json · .json (sample)
│ │ ├── EDIT (sample)
│ │ ├── FORMATTED (sample)
│ │ ├── YAML (sample)
│ │ ├── CSV (sample)
│ │ ├── GRAPH (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /har · .har
│ │ ├── EDIT
│ │ ├── FORMATTED
│ │ ├── YAML
│ │ ├── CSV
│ │ ├── HEX
│ │ └── STATS
│ ├── /jsonl · .jsonl .ndjson +planned .ldjson .jsonlines (sample)
│ │ ├── EDIT (sample)
│ │ ├── RECORDS (sample)
│ │ ├── CSV (sample)
│ │ ├── JSON (sample)
│ │ ├── SCHEMA (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /js · .js .mjs .cjs +planned .ts .tsx .jsx .mts .cts (sample)
│ │ ├── EDIT (sample)
│ │ ├── FORMATTED (sample)
│ │ ├── COMPRESSOR (sample)
│ │ ├── DEOBFUSCATOR (sample)
│ │ ├── OBFUSCATOR (sample)
│ │ ├── IMAGE (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /csv · .csv .tsv (sample)
│ │ ├── EDIT (sample)
│ │ ├── FORMATTED (sample)
│ │ ├── JSON (sample)
│ │ ├── SQLITE (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /mp3 · .mp3 (sample)
│ │ ├── EDIT (sample)
│ │ ├── HEX (sample)
│ │ ├── PLAYER (sample)
│ │ ├── METADATA (sample)
│ │ ├── EXPORT (sample)
│ │ ├── STATS (sample)
│ │ ├── CLEAN-METADATA-BATCH
│ │ ├── PLAYLIST
│ │ └── WAVEFORM
│ ├── /ogg · .ogg .oga .opus .spx (sample)
│ │ ├── EDIT (sample)
│ │ ├── HEX (sample)
│ │ ├── PLAYER (sample)
│ │ ├── METADATA (sample)
│ │ ├── PAGES (sample)
│ │ ├── STATS (sample)
│ │ ├── CLEAN-METADATA-BATCH
│ │ └── PLAYLIST
│ ├── /mp4 · .mp4 .m4v .m4a .mov (sample)
│ │ ├── EDIT (sample)
│ │ ├── HEX (sample)
│ │ ├── PLAYER (sample)
│ │ ├── METADATA (sample)
│ │ ├── BOXES (sample)
│ │ ├── STATS (sample)
│ │ ├── CLEAN-METADATA-BATCH
│ │ └── PLAYLIST
│ ├── /png · .png (sample)
│ │ ├── EDIT (sample)
│ │ ├── HEX (sample)
│ │ ├── PREVIEW (sample)
│ │ ├── MODIFY (sample)
│ │ ├── METADATA (sample)
│ │ ├── CHUNKS (sample)
│ │ ├── SECRET (sample)
│ │ ├── STATS (sample)
│ │ ├── CLEAN-METADATA-BATCH
│ │ └── SLIDESHOW
│ ├── /svg · .svg (sample)
│ │ ├── EDIT (sample)
│ │ ├── PREVIEW (sample)
│ │ ├── FORMATTED (sample)
│ │ ├── OPTIMIZE (sample)
│ │ ├── TREE (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /mdx · .mdx (sample)
│ │ ├── EDIT (sample)
│ │ ├── PREVIEW (sample)
│ │ ├── COMPONENTS (sample)
│ │ ├── FORMATTED (sample)
│ │ ├── TOC (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /css · .css .scss .less (sample)
│ │ ├── EDIT (sample)
│ │ ├── FORMATTED (sample)
│ │ ├── MINIFY (sample)
│ │ ├── SELECTORS (sample)
│ │ ├── COLORS (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /jpg · .jpg .jpeg .jfif .jpe (sample)
│ │ ├── EDIT (sample)
│ │ ├── HEX (sample)
│ │ ├── PREVIEW (sample)
│ │ ├── METADATA (sample)
│ │ ├── SEGMENTS (sample)
│ │ ├── STATS (sample)
│ │ ├── CLEAN-METADATA-BATCH
│ │ └── SLIDESHOW
│ ├── /heic · .heic .heif (sample)
│ │ ├── EDIT (sample)
│ │ ├── HEX (sample)
│ │ ├── PREVIEW (sample)
│ │ ├── METADATA (sample)
│ │ ├── ITEMS (sample)
│ │ ├── STATS (sample)
│ │ ├── CLEAN-METADATA-BATCH
│ │ └── SLIDESHOW
│ ├── /dmg · .dmg .smi .img .dmgpart (sample)
│ │ ├── EDIT (sample)
│ │ ├── METADATA (sample)
│ │ ├── PARTITIONS (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /gguf · .gguf (sample)
│ │ ├── EDIT (sample)
│ │ ├── ARCHITECTURE (sample)
│ │ ├── METADATA (sample)
│ │ ├── TENSORS (sample)
│ │ ├── TOKENIZER (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /wasm · .wasm (sample)
│ │ ├── EDIT (sample)
│ │ ├── WAT (sample)
│ │ ├── INTERFACE (sample)
│ │ ├── SECTIONS (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /pdf · .pdf (sample)
│ │ ├── EDIT (sample)
│ │ ├── TEXT (sample)
│ │ ├── OUTLINE (sample)
│ │ ├── METADATA (sample)
│ │ ├── IMAGES (sample)
│ │ ├── OBJECTS (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ ├── /parquet · .parquet (sample)
│ │ ├── EDIT (sample)
│ │ ├── SCHEMA (sample)
│ │ ├── ROWGROUPS (sample)
│ │ ├── TABLE (sample)
│ │ ├── HEX (sample)
│ │ └── STATS (sample)
│ └── /zip · .zip .jar .war .apk .ipa .docx .xlsx .pptx .epub .whl .xpi .crx .nupkg (sample)
│ ├── EDIT (sample)
│ ├── ENTRIES (sample)
│ ├── AUDIT (sample)
│ ├── HEX (sample)
│ └── STATS (sample)
├── landing pages
│ ├── /mp3/metadata (sample)
│ ├── /mp3/convert (sample)
│ ├── /mp3/export (sample)
│ ├── /mp3/artwork (sample)
│ ├── /mp3/player (sample)
│ ├── /mp3/hex (sample)
│ ├── /mp3/stats (sample)
│ ├── /png/metadata (sample)
│ ├── /png/resize (sample)
│ ├── /png/crop (sample)
│ ├── /png/modify (sample)
│ ├── /png/preview (sample)
│ ├── /png/chunks (sample)
│ ├── /png/secret (sample)
│ ├── /png/hex (sample)
│ ├── /png/stats (sample)
│ ├── /jpg/metadata (sample)
│ ├── /jpg/segments (sample)
│ ├── /jpg/preview (sample)
│ ├── /jpg/hex (sample)
│ ├── /jpg/stats (sample)
│ ├── /json/format (sample)
│ ├── /json/formatted (sample)
│ ├── /json/validate (sample)
│ ├── /json/graph (sample)
│ ├── /json/yaml (sample)
│ ├── /json/csv (sample)
│ ├── /json/hex (sample)
│ ├── /json/stats (sample)
│ ├── /json/edit (sample)
│ ├── /csv/formatted (sample)
│ ├── /csv/json (sample)
│ ├── /csv/sqlite (sample)
│ ├── /csv/hex (sample)
│ ├── /csv/stats (sample)
│ ├── /csv/edit (sample)
│ ├── /js/formatted (sample)
│ ├── /js/compressor (sample)
│ ├── /js/deobfuscator (sample)
│ ├── /js/obfuscator (sample)
│ ├── /js/image (sample)
│ ├── /js/hex (sample)
│ ├── /js/stats (sample)
│ ├── /js/edit (sample)
│ ├── /mp4/player (sample)
│ ├── /mp4/metadata (sample)
│ ├── /mp4/boxes (sample)
│ ├── /mp4/hex (sample)
│ ├── /mp4/stats (sample)
│ ├── /zip/entries (sample)
│ ├── /zip/extract (sample)
│ ├── /zip/audit (sample)
│ ├── /zip/hex (sample)
│ ├── /zip/stats (sample)
│ ├── /dmg/partitions (sample)
│ ├── /dmg/metadata (sample)
│ ├── /dmg/hex (sample)
│ ├── /dmg/stats (sample)
│ ├── /gguf/architecture (sample)
│ ├── /gguf/metadata (sample)
│ ├── /gguf/tensors (sample)
│ ├── /gguf/tokenizer (sample)
│ ├── /gguf/hex (sample)
│ ├── /gguf/stats (sample)
│ ├── /wasm/wat (sample)
│ ├── /wasm/interface (sample)
│ ├── /wasm/sections (sample)
│ ├── /wasm/hex (sample)
│ ├── /wasm/stats (sample)
│ ├── /heic/metadata (sample)
│ ├── /heic/items (sample)
│ ├── /heic/preview (sample)
│ ├── /heic/hex (sample)
│ ├── /heic/stats (sample)
│ ├── /ogg/metadata (sample)
│ ├── /ogg/pages (sample)
│ ├── /ogg/player (sample)
│ ├── /ogg/hex (sample)
│ └── /ogg/stats (sample)
├── groups
│ ├── text · txt log text → EDIT · READ · DIFF · HEX · STATS
│ ├── markdown · md markdown mdown mkd → EDIT · PREVIEW · FORMATTED · HTML · TOC · HEX · STATS
│ ├── yaml · yaml yml → EDIT · FORMATTED · JSON · TREE · HEX · STATS
│ ├── xml · xml rss atom xsd xsl xslt plist → EDIT · FORMATTED · JSON · TREE · XPATH · HEX · STATS
│ ├── data · json csv tsv toml jsonl ndjson har → EDIT · HEX · STATS (sample)
│ ├── markup · html htm xhtml → EDIT · FORMATTED · COMPRESSED · JSON · HEX · STATS
│ ├── audio · mp3 wav flac ogg aac → EDIT · HEX · EDIT-METADATA · CLEAN-METADATA-BATCH · PLAYLIST (sample)
│ ├── video · mp4 webm mov mkv → EDIT · HEX · EDIT-METADATA · CLEAN-METADATA-BATCH · PLAYLIST (sample)
│ ├── image · png jpg jpeg gif webp heic svg → EDIT · HEX · EDIT-METADATA · CLEAN-METADATA-BATCH · SLIDESHOW (sample)
│ └── archive · zip tar gz br zst dmg → EDIT · HEX (sample)
└── articles
├── algorithm
│ └── How we auto-detect the format of pasted text
├── css
│ └── How CSS parsing & specificity work — a dependency-free tokenizer
├── dmg
│ └── Inside a DMG: the koly trailer, block maps & how a UDIF disk image works
├── gguf
│ └── Inside a GGUF file: metadata, tensors & quantization
├── heic
│ └── Inside a HEIC file: boxes, items & HEVC
├── jpg
│ └── Inside a JPEG: markers, EXIF & the quantization tables
├── jsonl
│ └── What is a .jsonl file? JSON Lines and NDJSON explained
├── mdx
│ ├── How to audit a 20 GB MDX file
│ └── What is an MDX file? Markdown with components, explained with examples
├── mp3
│ ├── Anatomy of an MP3 file — frame headers, ID3 tags & the MPEG versions
│ ├── AAC, M4A & the licensing catch
│ └── FFmpeg in your browser
├── mp4
│ └── Inside an MP4: boxes, moov vs mdat & why your video won't stream
├── ogg
│ └── Inside an Ogg file: pages, packets & codecs
├── parquet
│ └── How to read a 20 GB Parquet file
├── pdf
│ ├── How a PDF works — objects, the cross-reference table & streams
│ ├── Extract text from a PDF — why copy-paste breaks, and how to fix it
│ └── Pull the figures, tables & metadata out of a PDF
├── png
│ ├── Inside a PNG: chunks, CRCs & the metadata your image is hiding
│ └── How the SECRET tab hides a message without changing a single byte
├── svg
│ └── Inside an SVG file: XML, paths, viewBox & a dependency-free optimizer
├── wasm
│ └── Inside a WASM module: sections & the binary format
├── xml
│ └── How to read a 20 GB XML file
├── yaml
│ └── How to read a 20 GB YAML file
└── zip
└── Inside a ZIP file
2 default tabs · 20 toolkits · 79 landing pages · 10 format groups · 25 articles