Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>omni-viewerNew to Visual Studio Code? Get it now.
omni-viewer

omni-viewer

battlecook

|
3,581 installs
| (3) | Free
| Sponsor
A VSCode extension for viewing audio, image, video, archive, csv, DBC, ARXML, A2L, ASC, BLF, MF4, Avro, ROS bag, PCAP, PCAPNG, STEP, DB3, ReqIF, excel, word, powerpoint, parquet, Shapefile, HDF5, MAT, Safetensors, ONNX, TFLite, Keras, Core ML, GGUF, jsonl, yaml, toml, markdown, LaTeX, mermaid, Plant
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

VSCode Omni Viewer

A comprehensive audio, image, PSD, video, CSV, DBC, ARXML, A2L, ASC, BLF, MF4, Avro, ROS bag, PCAP, PCAPNG, STEP, DB3, ReqIF, Excel, Word, PowerPoint, PDF, Parquet, HDF5, Safetensors, ONNX, TFLite/LiteRT, Keras, Core ML, GGUF, JSONL, LaTeX, Mermaid, PlantUML, and HWP viewer extension for VSCode and Cursor.

Sponsor

🎵 Audio Viewer Features

Audio Viewer Screenshot

Advanced Audio Player with WaveSurfer.js

  • Waveform Visualization: Real-time audio waveform display
  • Spectrogram: Frequency analysis with spectrogram view
  • Region Selection: Set start/end times for specific regions
  • Loop Playback: Repeat playback of selected regions
  • Volume Control: Real-time volume adjustment
  • Playback Speed: Multiple playback speed options
  • Audio Information: Duration, sample rate, channels, bit depth, file size, format display

Supported Audio Formats

  • MP3, WAV, PCM (raw s16le mono 16kHz), AIFF/AIF/AIFC, AMR/AWB, OGG, FLAC, AC3, AAC, M4A

Note: playback still depends on the VS Code webview browser engine supporting the underlying codec.

🖼️ Image Viewer Features

Image Viewer Screenshot

Advanced Image Viewer

  • Zoom Controls: 10% ~ 500% zoom in/out
  • Rotation: 90-degree left/right rotation
  • Flip: Horizontal/vertical flip
  • Fit to Screen: Automatic screen size fitting
  • Image Filters: Brightness, contrast, saturation, grayscale adjustments
  • Filter Presets: Normal, Bright, Dark, Vintage, B&W presets
  • Save Functionality: Save filtered images to workspace
  • Keyboard Shortcuts: Quick operation shortcuts
  • Image Information: Resolution, format, and file size information display

Supported Image Formats

  • JPG, JPEG, PNG, GIF, BMP, WebP, SVG

🖼️ PSD Viewer Features

Adobe Photoshop (PSD) Viewer

  • Layer Panel: Tree view of layers and groups (folders) with indent by depth
  • Per-Layer Visibility: Eye button to show/hide each layer independently
  • View Button: Open a single layer in a modal for closer inspection
  • Composite vs Layer-by-Layer: When all layers are visible, the full composite is shown; when any layer is hidden, the canvas is redrawn from visible layers only (leaf layers; group merged canvases are skipped to keep visibility correct)
  • Transparency: Checkerboard background for transparent areas
  • File Information: File name, file size, and document dimensions (width × height px)
  • Powered by: ag-psd for PSD parsing and canvas output

Supported PSD Formats

  • PSD (Adobe Photoshop Document)

🎬 Video Viewer Features

Video Viewer Screenshot

Advanced Video Player

  • Playback Controls: Play/pause/stop
  • Loop Regions: Set start/end times and loop playback
  • Playback Speed: 0.25x ~ 4x playback speed control
  • Skip Controls: 10-second forward/backward skip
  • Volume Control: Real-time volume adjustment
  • Keyboard Shortcuts: Spacebar, arrow keys, etc.
  • Video Information: Resolution, duration, and file size display

Supported Video Formats

  • MP4, MPEG-TS (TS/MTS/M2TS), AVI, MOV, WMV, FLV, WebM, MKV

Note: .ts files share an extension with TypeScript source files, so automatic viewer association may require using Open With instead of a default file binding.

📊 CSV Viewer Features

CSV Viewer Screenshot

Advanced CSV Viewer

  • Table Display: Clean, sortable table view of CSV data
  • Search & Filter: Real-time search across all columns
  • Column Sorting: Click headers to sort by any column (numeric/text aware)
  • Pagination: Handle large datasets with page navigation
  • Copy to Clipboard: Copy filtered data to clipboard (tab-separated format)
  • Statistics View: Display detailed file and data statistics
  • Keyboard Shortcuts: Ctrl+F for search, Ctrl+C for copy
  • File Information: Row count, column count, and file size display
  • Responsive Design: Works on different screen sizes
  • Delimiter Detection: Automatically detects comma, semicolon, tab, and pipe-delimited text formats

Supported CSV Formats

  • CSV (Comma-Separated Values)
  • TSV (Tab-Separated Values)

🚗 DBC Viewer Features

CAN Database Explorer

  • Message Overview: Browse CAN messages with ID, hexadecimal ID, DLC, transmitter, and signal count
  • Signal Table: Inspect start bit, bit length, byte order, signedness, scale, offset, range, unit, and receivers
  • Search & Filter: Search across messages/signals/comments and filter by CAN node
  • Comments & Value Tables: Shows CM_ comments and VAL_ enumerations when present
  • Raw Source View: Keep the original DBC text available beside the structured view

Supported DBC Formats

  • DBC (CAN database)

🚘 Data Explorer Viewer Features

ARXML, A2L, ASC, BLF, MF4, Avro, BAG, PCAP, PCAPNG, STEP, DB3, and ReqIF Explorer

  • ARXML Structure View: Summarizes AUTOSAR packages, named CAN-related elements, and references
  • A2L Block View: Lists ASAP2 blocks and counts key sections such as MEASUREMENT, CHARACTERISTIC, and IF_DATA
  • ASC Log Preview: Parses Vector ASCII CAN/CAN FD events into a searchable table
  • BLF Header Preview: Detects Vector BLF LOGG files and shows binary header/hex preview
  • MF4 Header Preview: Detects ASAM MDF 4 files and summarizes known MDF block markers
  • Avro Metadata Preview: Reads Avro object container metadata, codec, schema preview, and header bytes
  • ROS Bag Preview: Detects ROS bag v2 files and summarizes record operation hints with a binary preview
  • PCAP Preview: Detects classic PCAP files and summarizes global headers, link type, timestamp resolution, and packet records
  • PCAPNG Preview: Detects PCAPNG section headers and summarizes sections, interfaces, packet blocks, and block sizes
  • STEP Model Summary: Extracts ISO 10303 header fields and top entity counts from .stp/.step CAD exchange files
  • DB3 SQLite Preview: Detects SQLite 3 databases, reads sqlite_master, lists schema entries, and previews rows from table b-tree pages
  • ReqIF Summary: Extracts ReqIF header metadata, specifications, spec objects, relations, datatypes, and spec types
  • Search & Raw Preview: Search across extracted tables and inspect the original text preview for text-based formats

Supported Data Explorer Formats

  • ARXML (AUTOSAR XML)
  • A2L (ASAM MCD-2 MC / ASAP2)
  • ASC (Vector ASCII CAN log)
  • BLF (Vector Binary Logging Format header preview)
  • MF4 (ASAM MDF 4 header and block marker preview)
  • AVRO (Apache Avro object container metadata preview)
  • BAG (ROS bag v2 header and record hint preview)
  • PCAP (classic packet capture global header and packet record preview)
  • PCAPNG (packet capture next-generation section and block preview)
  • STP/STEP (ISO 10303 STEP model summary)
  • DB3 (SQLite 3 database schema and row preview)
  • REQIF (Requirements Interchange Format summary)

📊 Excel Viewer Features

Advanced Excel Viewer

  • Multi-Sheet Support: Switch between sheets via dropdown
  • Table Display: Clean table view of sheet data
  • Search & Filter: Real-time search across all columns
  • Pagination: Handle large datasets with page navigation
  • Copy to Clipboard: Copy filtered data (tab-separated)
  • Copy as JSON: Export current sheet data as JSON
  • Raw View: Toggle between table and raw JSON view
  • File Information: Sheet name, row count, column count, file size
  • Keyboard Shortcuts: Ctrl+F search, Ctrl+C copy

Supported Excel Formats

  • XLSX (Excel Workbook)
  • XLS (Excel 97-2003)

📄 Word Viewer Features

Microsoft Word (DOCX) Viewer

  • Document View: Renders .docx with docx-preview for improved layout fidelity
  • DOC Support: Opens .doc via standalone legacy HTML fallback, with LibreOffice conversion fallback only when needed
  • Native Legacy Rendering: Preserves more .doc paragraph styling, table structure, and readable legacy text decoding
  • Embedded Workbook Preview: Shows extracted worksheet tables and simple SVG chart previews when legacy .doc files contain embedded workbook data
  • Zoom Controls: Zoom in/out and reset (Ctrl+/-, Ctrl+0)
  • Print: Print document (Ctrl+P)
  • File Information: File name and file size
  • Powered by: docx-preview for DOCX rendering

Supported Word Formats

  • DOCX (Microsoft Word Document)
  • DOC (Microsoft Word 97-2003)

📽️ PowerPoint Viewer Features

Microsoft PowerPoint (PPTX/PPT) Viewer

  • Slide View: Reads .pptx and legacy .ppt files and renders slide content in order
  • Title + Bullet Extraction: Displays slide title and bullet text content
  • Legacy PPT Layout Recovery: Preserves more title/body/subtitle placement, slide sizing, and discovered shape/image positioning for .ppt
  • Packaged PDF.js Rendering: Uses bundled pdf.js assets for environments where external CDN access is blocked
  • Slide Jump: Jump to any slide from a dropdown
  • Zoom Controls: Zoom in/out and reset (Ctrl+/-, Ctrl+0)
  • File Information: File name, file size, and slide count
  • Powered by: JSZip for PPTX archive parsing

Supported PowerPoint Formats

  • PPT (Microsoft PowerPoint 97-2003)
  • PPTX (Microsoft PowerPoint Presentation)

📑 PDF Editor Features

PDF View & Edit

  • Page View: Page-by-page rendering with thumbnail sidebar
  • Zoom Controls: Zoom in/out and reset
  • Annotations: Add text/signature, select, move, and delete annotations
  • Password-Protected PDFs: Open encrypted PDFs with an in-viewer password prompt
  • Text Size Control: Choose annotation font size when inserting text
  • Page Editing: Reorder pages (drag & drop) and delete pages
  • Merge PDF: Merge another PDF into the current document
  • Save Flows: Save and Save As with state synchronization after save

Supported PDF Formats

  • PDF

🇰🇷 HWP Viewer Features

Hangul Word Processor (HWP) Viewer

  • Document View: Opens .hwp and .hwpx files directly inside Omni Viewer
  • Integrated Routing: Works with the same signature-based viewer detection flow used across the extension
  • Powered by: rhwp (@rhwp/core) for upstream parsing and rendering
  • Upstream-Friendly Integration: Runtime assets are synced from node_modules/@rhwp/core via npm run sync:rhwp, so future rhwp updates can be adopted without forking its renderer

Supported HWP Formats

  • HWP, HWPX

🧩 PlantUML Viewer Features

Browser-Based PlantUML Preview

  • Serverless Rendering: Renders PlantUML diagrams in the VS Code webview without a PlantUML server
  • Diagram / Split / Source Views: Switch between rendered preview, side-by-side source, and read-only source
  • Zoom Controls: Zoom in/out and reset
  • Light / Dark Render Modes: Toggle PlantUML output mode
  • Copy Source: Copy the original diagram text to clipboard
  • File Information: File name, file size, and line count
  • Powered by: puml-canvas-js for native JavaScript SVG rendering

Supported PlantUML Formats

  • PUML, PlantUML, IUML

📐 LaTeX Viewer Features

Structure and Math Preview (Not a TeX Compiler)

  • Partial Render by Design: Shows document structure and formulas, not typeset output — no TeX engine is involved, and the preview says so on screen
  • Section Outline: Navigate \part … \subparagraph from a sidebar; selecting an entry scrolls the preview
  • Math Rendering: Inline ($…$, \(…\)) and display ($$…$$, \[…\], equation, align, gather, …) formulas rendered with KaTeX, progressively as they approach the viewport
  • Preamble Macros: \newcommand, \DeclareMathOperator, and \let definitions are passed to the math engine
  • Tables and Theorems: tabular/array/longtable with column alignment and \multicolumn, plus \newtheorem environments
  • Cross-References: \ref becomes a control that scrolls to the labelled block; \url/\href open externally
  • Nothing Silently Dropped: TikZ, \includegraphics, and \input targets stay visible as their own source with a badge explaining why they were not rendered
  • Preview / Split / Source Views: Edit the source with undo/redo and save in place (Ctrl/Cmd+S) or to a copy
  • Powered by: omni-viewer-core for parsing and rendering, with KaTeX for formulas

Supported LaTeX Formats

  • TEX, LATEX, LTX

Note: external file references are not resolved, and BibTeX, cross-reference numbering, and TikZ drawing are out of scope.

📄 JSONL Viewer Features

JSONL Viewer Screenshot

Interactive JSONL Editor

  • Line-by-Line Editing: Direct inline editing of JSON lines with syntax validation
  • Hover Popup: JSON popup display on line hover with formatted syntax highlighting
  • Click-to-Edit Popup: Click popup content to edit JSON directly in formatted view
  • Real-time Validation: Instant JSON validation with visual feedback (valid/invalid indicators)
  • Data Synchronization: Seamless sync between popup edits and original lines
  • Syntax Highlighting: Color-coded JSON syntax for better readability
  • Error Handling: Clear error messages for invalid JSON format

Supported JSONL Formats

  • JSONL (JSON Lines) - Each line contains a valid JSON object

📊 Parquet Viewer Features

Parquet Viewer Screenshot

Advanced Parquet Viewer

  • Table Display: Clean, table view of Parquet data
  • Search & Filter: Real-time search across all columns
  • Column Sorting: Click headers to sort by any column (numeric/text aware)
  • Pagination: Handle large datasets with page navigation
  • Copy to Clipboard: Copy filtered data to clipboard (tab-separated format)
  • Keyboard Shortcuts: Ctrl+F for search, Ctrl+C for copy
  • File Information: Row count, column count, and file size display
  • Responsive Design: Works on different screen sizes

Supported Parquet Formats

  • Parquet

🧬 HDF5 Viewer Features

Hierarchical Data Format 5 (.h5, .hdf5, .he5)

  • Structure Tree: Walks the file hierarchy and lists every group and dataset path
  • Dataset Details: Shows each dataset's shape (dimensions) and datatype (e.g. Float64, Integer32)
  • Superblock Summary: Reports superblock version, offset/length sizes, and root group address
  • Format Coverage: Reads superblock versions 0–3, including classic symbol-table groups and version-2 object headers with compact links
  • Header Preview: Hex/ASCII dump of the file header for inspection

🧠 Safetensors Viewer Features

Model Tensor Metadata (.safetensors)

  • Tensor Inventory: Lists tensor names, data types, shapes, parameter counts, and byte sizes
  • Model Summary: Shows total tensor and parameter counts, data types, metadata keys, and file size
  • Metadata View: Displays the optional Safetensors metadata map in a searchable table
  • Validation Warnings: Reports malformed headers, unsupported data types, and inconsistent tensor byte ranges
  • Search and Export: Filters tensor/metadata rows and copies the parsed model as JSON
  • Efficient Large-File Access: Reads only the Safetensors prefix and JSON header instead of loading tensor payloads
  • Powered by: omni-viewer-core 0.17.0 for random-access Safetensors parsing

🕸️ ONNX Viewer Features

Neural Network Graph (.onnx)

  • Model Summary: Shows node, initializer, input, output, and function counts alongside the IR version, producer, and file size
  • Graph View: Lists the computation graph's inputs, outputs, and value info with resolved tensor types, shapes, and dimension denotations
  • Node Inspector: Shows each node's operator, domain, inputs, outputs, and attributes, including nested subgraphs and attribute tensors
  • Tensor Inventory: Lists initializers with data type, shape, element count, byte size, and embedded/external storage location
  • Opsets and Metadata: Reports imported opset domains and versions plus the model's metadata properties
  • Validation Warnings: Reports truncated, malformed, or unsupported protobuf structures instead of failing silently
  • Weights Stay on Disk: Parses the ModelProto for topology and metadata only — tensor payloads are skipped, never decoded into memory
  • Powered by: omni-viewer-core 0.17.0 for the dependency-free ONNX protobuf reader and viewer

📱 TFLite / LiteRT Viewer Features

TensorFlow Lite Model Graph (.tflite, .lite)

  • Model Summary: Shows schema/runtime version, subgraph, operator, tensor, buffer, signature, and constant-weight counts
  • Subgraph Graph: Visualizes operator and tensor flow for each subgraph, including control-flow references
  • Tensor Inspector: Displays types, shapes, buffer locations, quantization parameters, sparsity, and byte-size information
  • Operator Details: Shows builtin and custom operator codes, versions, inputs/outputs, intermediates, and decoded options
  • Model Metadata: Lists signatures, metadata entries, external buffers, and model information in searchable panels
  • Validation Warnings: Surfaces malformed FlatBuffers, custom operators, Select TensorFlow fallbacks, and externally stored buffers
  • Weights Stay Unparsed: Reads the TFL3 FlatBuffer structure without decoding tensor payloads
  • Powered by: omni-viewer-core 0.17.0 for dependency-free TFLite/LiteRT parsing and rendering

🧱 Keras Viewer Features

Keras Model Architecture (.keras, Keras .h5)

  • Both Save Formats: Reads the Keras 3 .keras archive and the legacy save_format='h5' model saved by Keras 2
  • Model Summary: Shows layer count, total parameters, weight bytes, and the Keras version the model was saved with
  • Layer Table: Lists every layer with its class, activation, built input shape, dtype, trainable flag, parameter count, and weight count, flattening nested sub-models by depth
  • Layer Inspector: Expands a layer into its full config, inbound connections, and the weights matched to it
  • Weight Inventory: Lists each weight's store path, shape, dtype, element count, and byte size
  • Training Configuration: Shows the compiled optimizer, loss, and metrics along with the archive's metadata and members
  • Validation Warnings: Reports missing or unreadable configs, unmatched weights, and unknown layouts instead of failing the parse
  • Weights Stay Undecoded: Walks the HDF5 weight store for shapes and dtypes only — no weight payload is decoded or sent into the webview. The model is inspected in memory, so a file above 512 MB is left to the HDF5 viewer or the Archive viewer instead
  • Powered by: omni-viewer-core 0.17.0 for Keras archive and HDF5 model parsing and rendering

🍎 Core ML Viewer Features

Apple Core ML Models (.mlmodel, .mlpackage)

  • Both Encodings: Reads a bare .mlmodel specification and an .mlpackage archive, telling the two apart by their bytes rather than their name. A .mlpackage written to disk as a folder is a directory rather than a file, so open the Data/com.apple.CoreML/*.mlmodel inside it, or a zipped copy of the package
  • Model Summary: Shows the specification version with the iOS/macOS release it requires, the model type, and function, graph, operation, input, and output counts
  • Prediction Interface: Lists every input, output, state, and training input with its feature type — image 224 × 224 RGB, multiArray FLOAT32[1, 3, 224, 224] — along with shape flexibility, optional flags, and descriptions, across all functions for multi-function models
  • Graph Explorer: Walks ML Program operations with their named operands, attributes, and nested blocks; pre-Core ML 5 neural network layers with resolved layer types; and pipeline stages, with control-flow targets linked between graphs
  • Weight Inventory: Resolves each blob-backed tensor to its file, offset, byte count, and quantization, and reports inline tensors by size — plus a per-weight-file view of reference counts and whether the package actually carries the file
  • Custom & Updatable Ops: Flags operations needing a class registered with the runtime and layers marked for on-device update
  • Package Contents: Shows the Manifest.json items and archive members of an .mlpackage, including the path of the spec that was parsed
  • Weights Stay Undecoded: Never decodes a single parameter — blob references become offsets and byte counts, so no weight payload reaches the webview. The model is inspected in memory, so a file above 512 MB is left to the Archive viewer
  • Powered by: omni-viewer-core 0.17.0 for dependency-free Core ML protobuf parsing and rendering

🦙 GGUF Viewer Features

Quantized Model Metadata (.gguf)

  • Model Summary: Shows GGUF version, architecture, tensor and parameter counts, quantization type, and metadata key count
  • Tensor Inventory: Lists tensor names, dtypes, shapes, element counts, and both relative and absolute data offsets
  • Metadata Table: Displays every metadata key with its GGUF value type, with previews in place of oversized arrays and strings
  • Structure View: Shows byte order, tensor data offset, and the parsed file layout
  • Validation Warnings: Reports header, EOF, and admission-limit problems for malformed or hostile files
  • Efficient Large-File Access: Range-reads only the metadata and tensor-index prefix — a multi-gigabyte model opens without reading its weights
  • Powered by: omni-viewer-core 0.17.0 for GGUF parsing and the viewer

🧭 Smart File Detection

  • Signature-Based Routing: Detects common file signatures before opening and can reroute mislabeled files to the matching Omni Viewer
  • Broader Format Sniffing: Recognizes common PDF, image, audio, video, Parquet, Office, CSV-style, and JSONL content beyond filename extensions

🚀 Installation and Usage

Install from Marketplace

Marketplaces:

  • VSCode Marketplace - Official VSCode Marketplace
  • Open VSX Registry - Open Source VSX Registry

If you are using jetbrains ide, check out this repository

🌐 Other Platforms

Omni Viewer is also available on web and mobile platforms:

  • Web: Web App
  • Android: Google Play
  • iOS: App Store

Development Setup

  1. Install Dependencies

    npm install
    
  2. Compile TypeScript

    npm run compile
    
  3. Package Extension

    npm run vscode:prepublish
    

Privacy & Data Use (Planned Share Feature)

Omni Viewer does not currently enable this share upload flow in the released extension.
The following policy describes the planned behavior for a future share feature release.

Open VSX listing privacy details: open-vsx-listing-privacy.md

  • What data will be uploaded
    • The file selected by the user for sharing (single file)
    • File metadata such as filename, content type, file size, file type, and optional viewer metadata (for example selected region/range)
    • Request source platform (for example vscode)
  • Purpose
    • Create a temporary share link and allow limited-time download/view access
  • Planned storage location
    • Temporary server-side processing
    • Cloud storage for shared files
    • Database storage for share metadata
  • Planned retention / expiration
    • Default share link lifetime: 5 minutes
    • After expiration, share access will be denied (410)
    • Expired objects/metadata may be removed by backend lifecycle jobs
  • Planned access model
    • Upload endpoint will require authenticated client request (API key-based)
    • Download endpoint will be link-based with non-guessable share IDs
    • Optional maximum access-count policy may be applied per share

Privacy Policy: https://omni-viewer-web.web.app/privacy

📝 License

MIT License

📞 Support

If you encounter any issues or have feature requests, please contact us through GitHub Issues.

Known Issues

  • Large file handling optimization needed

📊 Performance Notes

File Size Limitations

  • Audio/Video/Image Files:

    • Maximum file size limit: 50MB per file
    • Recommended file size: < 50MB for optimal performance
    • Audio files are loaded as Base64 for WebView compatibility
  • Text-based Files (CSV, JSONL, Parquet):

    • Maximum file size limit: 500MB per file
    • Recommended file size: < 200MB for optimal performance
    • Large files may take time to load initially
    • Memory usage scales with file size

Parquet File Specific Limitations

  • File Size Restrictions:
    • Files ≥ 150MB: Cannot be opened. Clear error message will be displayed.
    • Files 50MB - 150MB: Only the first 10,000 rows are displayed with a warning message showing total row count.
    • Files < 50MB: All rows are displayed without any limitations.
  • Row Limit: For files between 50MB and 150MB, only the first 10,000 rows are loaded for display to prevent memory issues
  • Memory Considerations:
    • Parquet files are converted to JSON format for display, which can significantly increase memory usage
    • Large files may take time to load initially
    • For best performance, keep files under 50MB for full data access

General Notes

  • Large files may take time to load initially
  • Memory usage scales with file size
  • For best performance, keep files under recommended sizes
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft