battlecook3k downloadsView 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, jsonl, yaml, toml, markdown, mermaid, PlantUML, hwp, PSD and PDF files inside Obsidian.
Obsidian port of the vscode-omni-viewer extension. View (and in some cases edit) a wide range of file formats directly inside Obsidian.
| Category | Extensions |
|---|---|
| Archive | zip, rar, 7z, dmg, jar, apk, tar, tgz, gz, tbz2, bz2, txz, xz |
| Audio | mp3, wav, pcm, aiff, aif, aifc, amr, awb, ogg, flac, ac3, aac, m4a |
| Video | mp4, mts, m2ts, avi, mov, wmv, flv, webm, mkv |
| Image | jpg, jpeg, png, gif, bmp, webp, svg |
| Tabular | csv, tsv, xlsx, xls, parquet, jsonl/ndjson/jsonlines |
| Automotive / measurement | dbc, arxml, a2l, asc, blf, mf4, avro, bag (ROS), db3 (SQLite), reqif, pcap, pcapng, stp/step, h5/hdf5/he5, mat |
| Documents | pdf (view + annotate/merge/save), docx/doc, ppt/pptx, hwp/hwpx, psd, md/markdown, tex/latex/ltx |
| Data / source | safetensors, gguf, onnx, tflite/lite, keras (and Keras HDF5 models saved as h5/hdf5), mlmodel/mlpackage (Core ML), json, yaml/yml, toml, proto, mmd/mermaid, puml/plantuml/iuml |
| GIS | shp (Shapefile) |
\\input/\\include resolution. It is a partial preview, not a TeX compiler or typeset PDF.omni-viewer-shared vault folder. See the Privacy Policy for details.Obsidian core already handles some extensions (md, pdf, images, audio, video, …). For those, this plugin cannot take over the default view; use the file context menu → Open with … Viewer instead. All other extensions (csv, zip, parquet, dbc, hwp, xlsx, …) open with Omni Viewer by default.
Commands (Cmd/Ctrl-P):
Omni Viewer: Refresh viewerOmni Viewer: Share current fileOmni Viewer: Open shared linknpm install
npm run build
Then copy the following into <vault>/.obsidian/plugins/omni-viewer/:
main.jsmanifest.jsonstyles.cssThe viewer templates, bundled JavaScript, and WASM assets are embedded into main.js during npm run build, so no extra asset folders are required.
Enable Omni Viewer in Settings → Community plugins. The same bundle runs on desktop, Android, and iOS.
On Obsidian mobile, Omni Viewer uses vault APIs instead of local filesystem paths. Mobile currently supports:
Keras models open as .keras archives on mobile. Legacy Keras HDF5 models (.h5) rely on content-signature rerouting, which is a desktop-only path. Keras models are read into memory in full, so the 512 MB limit applies on both platforms; a legacy Keras HDF5 model above it stays with the HDF5 viewer, which reads metadata through the filesystem and opens at any size.
A .mlpackage is a directory bundle, so Obsidian only opens one that has been archived into a single file; a bare .mlmodel opens directly. Core ML models are read into memory in full on both platforms, so the 512 MB limit applies to each encoding.
GGUF is desktop-first: models are inspected through filesystem range reads, so on mobile only files below 512 MB open (they have to be read into memory in full).
Files created by Save As, PDF merge selection, and archive extraction stay inside the current vault. Desktop-only native helpers are intentionally unavailable on mobile: RAR/7z/DMG/system-tar extraction, ffmpeg transcoding, LibreOffice PDF fallback, and legacy DOC rendering. Browser codec support can differ between Android and iOS.
Each viewer is a FileView hosting a sandboxed iframe that renders the same self-contained HTML templates as the vscode extension. A small bridge shim emulates acquireVsCodeApi() inside the iframe, so template code runs unmodified; messages (saveChanges, savePdf, loadMoreParquet, …) are handled with Obsidian/vault APIs. vscode --vscode-* CSS variables are mapped to the active Obsidian theme at render time.
MIT