ProgrammedByGod80 downloadsOpen 1000+ file formats in your vault: EPUB, FB2, MOBI, DjVu, CBZ/CBR comics, DOCX, XLSX, PPTX, RTF, ODT, SQLite, ZIP/RAR/7z archives, EML/MSG email, STL/OBJ 3D models, fonts, GPX/KML maps and code. Read-only, offline.
A read-only reader and file viewer for Obsidian that opens more than 1000 file extensions right inside the vault: books, comics, documents, spreadsheets, databases, presentations, web pages, email, notes, diagrams, maps, 3D models, fonts, archives, code and much more.
❤️ Universal Reader is free and made by one person. If it saves you time, please support its development on Boosty — even a small donation helps keep the plugin growing.
💡 Have an idea, found a bug, or a file that won't open? Open an issue — every suggestion is read. Details below in Feedback and ideas.
universal-reader-x.y.z.zip (the full version).<your vault>/.obsidian/plugins/. To find this folder, open Obsidian → Settings → Community plugins → click the 📁 folder icon next to "Installed plugins".Alpha. The plugin never changes your files, but please back up your vault or try it on a test vault first.
The full list, with a toggle for every format, is in the plugin settings.
Some things it can do with any file:
PDF is still opened by Obsidian's own viewer. KeePass databases are shown as information only, never with passwords.
Settings → Community plugins → Browse → search for Universal Reader (or just a format, e.g. epub, docx, djvu) → Install → Enable.
The catalog version already includes the popular formats: Word, Excel, PowerPoint, TIFF, HEIC (iPhone photos), DjVu, RAR, SQLite and 3D models.
Some formats need large libraries (several to tens of megabytes each), so they are not part of the catalog version. These include 7z, RTF, sheet music, CAD (STEP/IGES/Rhino/IFC), HDF5 scientific data and Flash. When you open such a file, the reader shows a "Library pack needed" panel with a download button.
universal-reader-libs-x.y.z.zip from Releases.<your vault>/.obsidian/plugins/universal-reader/. You should end up with a libs folder next to main.js.The settings tab shows whether the pack is installed and whether it is up to date.
Download universal-reader-x.y.z.zip from Releases. Unpack it into <your vault>/.obsidian/plugins/, then enable the plugin in Settings → Community plugins.
Your feedback shapes the plugin. Write in Issues (English or Russian is fine) if you:
Code contributions are welcome too. Fork the repository, make your changes and open a pull request. See Building from source below.
If you find the plugin useful, you can support its development on Boosty ❤️
The plugin works fully offline:
The only link to the internet is the "Download from GitHub" button. It opens this repository's releases page in your browser, and only when you click it.
Reading positions are stored in reader/library.json inside your vault. You can change the folder in the settings.
The interface is in English by default. Russian can be selected in the settings under "Language / Язык".
If another plugin already opens an extension (for example, an EPUB reader or Excalidraw), Universal Reader gives way and tells you once. The settings then show a "Conflicts with other plugins" list, where you can choose which plugin opens each such extension.
npm install
node build.mjs dist # → dist/main.js, manifest.json, styles.css, libs/
node readme.mjs dist/README.txt en
src/: plugin code.libs-src/: entry points for the libraries. Popular ones are built into main.js; the rest go into libs/.i18n/: build-time translation. Interface strings are written in Russian in the source, i18n/transform.mjs wraps them, and i18n/en.json holds the English translations.vendor/: foliate-js and DjVu.js.GPL-3.0-or-later. The plugin includes code under GPL licenses: uniorg (GPL-3.0+), DjVu.js (GPL-2.0+), and format layouts derived from Calibre (GPL-3.0).
Bundled libraries: foliate-js (MIT), DjVu.js (GPL-2.0+), JSZip (MIT), mammoth (BSD-2), rtf.js (MIT), SheetJS (Apache-2.0), node-unrar-js (MIT, unRAR license), 7z-wasm (LGPL), UTIF.js (MIT), pptx-preview, asciidoctor.js (MIT), uniorg (GPL-3.0+), opentype.js (MIT), libheif-js (LGPL-3.0), ag-psd (MIT), sql.js (MIT), abcjs (MIT), bz2 (MIT), fflate (MIT), fzstd (MIT), xz-decompress (MIT), lz4js (ISC), hyparquet (MIT), apache-arrow (Apache-2.0), mdb-reader (MIT), textile-js (MIT), djot (MIT), msgreader (Apache-2.0), viz.js / Graphviz (EPL), OpenSheetMusicDisplay (BSD-3), @jsquash/jxl (Apache-2.0), bpmn-js (bpmn.io license), three.js (MIT), dxf-parser (MIT), hwp.js (Apache-2.0), roughjs (MIT), h5wasm / HDF5 (BSD), Verovio (LGPL-3.0), occt-import-js and OpenCascade (LGPL-2.1), rhino3dm (MIT), web-ifc (MPL-2.0), Ruffle (MIT / Apache-2.0). The SAS format reader follows the description in pandas (BSD-3).