Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Any Viewer

tingketingke137 downloads

Insert and preview any file type (Word, Excel, PowerPoint, HTML) in notes, with a file card fallback.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates6

English | 中文

An Obsidian plugin to insert and preview any file type inside your notes — Word, Excel, PowerPoint, HTML, CSV and more. Unsupported formats get a neat file card that opens with the system default app.

Package name obsidian-any-viewer, plugin ID any-viewer.

Supported file types

Inline embeds + tab view

Format Rendering
.docx High-fidelity rendering (styles, page breaks, headers/footers) via docx-preview
.xlsx .xlsm Real cell styling: fills (incl. theme colors & tint), fonts, borders, alignment, merged cells, column widths, row heights, number formats via exceljs
.xls .csv .tsv Table rendering with sheet tabs via SheetJS
.pptx Slide rendering (great for image-based decks) via pptx-preview
.html .htm Sandboxed iframe (srcdoc with inlined stylesheets; script execution configurable)

File card fallback

Any other type Obsidian doesn't natively render (.zip, .exe, .psd, .sketch, …) becomes a file card: type icon + filename + size.

  • Click → open with the system default app
  • Shift+click → reveal in the system file manager (desktop only)

Left untouched

Images, audio, video, PDF, Markdown and Canvas are rendered by Obsidian itself.

Usage

Easy insertion (any type)

  • Command palette → Any Viewer: 插入本地文件(任意类型), or click the paperclip ribbon icon
  • Paste a copied file with Ctrl/Cmd+V, or drag & drop it into the editor
  • Files are stored in the vault (location configurable) and an ![[file]] embed is inserted at the cursor; name conflicts are auto-numbered

Embeds & sizing

Write ![[filename.ext]] in a note to preview it inline:

Syntax Effect
![[report.xlsx]] Default size (full width, default height from settings)
![[report.xlsx|300]] Card sized to 300px wide; content keeps natural size and scrolls inside
![[doc.docx|x400]] Height only: 400px tall
![[doc.docx|300x400]] 300px wide + 400px tall

Display syntax (fragments)

Pick which part of the file to show — combines freely with the sizing syntax (fragment before the \|, size after):

Syntax Effect
![[deck.pptx#page=3]] Only slide 3 (single page ≡ 3~3)
![[deck.pptx#page=3~10]] Slides 3–10, stacked (3~ = to the last slide)
![[doc.docx#page=2]] Only page 2 (same range forms as pptx)
![[book.xlsx#Sheet2]] Start on the named worksheet (tab bar stays)
![[book.xlsx#A1:D10]] Only that cell range
![[book.xlsx#Sheet2!A1:D10]] Named worksheet + range
![[book.xlsx#5:20]] Only rows 5–20
![[page.html#header]] Scroll to the element with that id

Range rules: - works like ~; reversed ranges normalize automatically (8~3 → 3~8); the end clamps to the last page; an out-of-bounds start falls back to the whole file. The embed header shows a badge ("Pages 3–10"). Fragments scope the inline embed only (a worksheet/range fragment hides the sheet tab bar) — opening the file in a tab shows the whole document and auto-scrolls to the fragment position (like Obsidian's native PDF embeds).

Embeds have a header bar: click the filename or double-click the content to open the file in a tab; header buttons open a tab or the system app.

Tab view

Clicking .docx/.xlsx/.xls/.csv/.tsv/.pptx/.html/.htm files in the explorer opens them in a full-height preview pane.

Coexisting with other plugins

  • Extensions claimed by other plugins are skipped automatically (with a notice); inline embeds keep working
  • Turning a format off in settings makes this plugin completely hands-off that type (view registration and embeds — restart required), leaving it to plugins like styled-ms-office-viewer or CodeSpace

Installation

Manual

  1. Download main.js, styles.css, manifest.json from the latest release
  2. Put them in <your vault>/.obsidian/plugins/any-viewer/
  3. Restart Obsidian → Settings → Community plugins → enable Any Viewer

BRAT

BRAT → Add Plugin → paste this repository's Git URL.

Privacy, cost & network access

  • Free, no paywall: Any Viewer is MIT-licensed freeware — no paid features, no ads, no license keys, no upsells. Nothing here requires payment, now or later.
  • No network access: files are parsed and rendered entirely on your device. The plugin itself makes zero network requests — no telemetry, no analytics, no AI calls; your documents never leave your vault.
  • One caveat: HTML embeds render local .html files inside a sandboxed iframe. If such a file itself references external URLs (CDN fonts / scripts / images), those assets are loaded by the embedded page — governed by Obsidian's CSP and the "Allow scripts in HTML" setting (on by default, can be turned off).

Building from source

npm install
npm run build     # produces main.js

Known limitations

  • Legacy binary formats (.doc, .ppt) can't be previewed inline (file card instead); they still open with the system app
  • In HTML embeds, external <script src> may be blocked by Obsidian's CSP; inline scripts run fine
  • "Open with system app / reveal in file manager" is desktop-only
  • .pptx preview is static — animations and media don't play
  • Compared to WASM-based viewers (e.g. styled-ms-office-viewer), docx/pptx fidelity is lower; both can coexist — tabs for them, inline embeds for Any Viewer

Acknowledgements

  • Rendering: docx-preview, exceljs, SheetJS, pptx-preview
  • HTML sandbox approach adapted from mnaoumov/obsidian-embed-html
  • Research phase referenced obsidian-file-link, Styled MS Office Viewer and other community plugins

License

MIT


HealthExcellent
ReviewSatisfactory
About
Insert and preview any file type directly inside notes — Word, Excel, PowerPoint, HTML, CSV/TSV and more. Render DOCX with styles and page breaks, XLSX/XLSM with real cell styling and sheet tabs, PPTX slides and sandboxed HTML; fallback files become clickable file cards that open in a tab or the system app, with adjustable inline sizing.
AttachmentsFiles
Details
Current version
0.5.0
Last updated
2 days ago
Created
Last week
Updates
6 releases
Downloads
137
Compatible with
Obsidian 1.13.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
tingketingke
GitHubtingke
  1. Community
  2. Plugins
  3. Attachments
  4. Any Viewer

Related plugins

Custom Attachment Location

Customize attachment location with variables($filename, $data, etc) like Typora.

Pixel Perfect Image

Pixel perfect 100% image resizing, copy to clipboard, show image in Finder/Explorer, and much more.

File Cleaner Redux

Helps with cleaning up empty files and unused attachments in the vault.

Janitor

Perform cleanup tasks on your vault.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

Advanced URI

Control everything with URI.

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)

Local REST API with MCP

Unlock your automation needs by interacting with your notes over a secure REST API.

ChatGPT MD

A seamless integration of ChatGPT, OpenRouter.ai and local LLMs via Ollama into your notes.