Nexa Markdown Viewer
v0.4.0A desktop viewer that displays Markdown from local folders and GitHub in GitHub style
Available on every desktop OS
Free code signing for Windows builds by SignPath.io (certificate by SignPath Foundation) has been applied for. Current Windows builds are not yet signed.
Install
Windows
winget — one-line install (recommended)
winget install SosomLab.NexaMarkdownViewer Installs the latest v0.4.0 (PR #449305 · merged 2026-10-09). Upgrade: winget upgrade SosomLab.NexaMarkdownViewer · Uninstall: winget uninstall SosomLab.NexaMarkdownViewer
Chocolatey — one-line install
choco install nexa-markdown-viewer Installs the latest v0.4.0 (approved 2026-11-03 · 25 days after submission). Upgrade: choco upgrade nexa-markdown-viewer · Uninstall: choco uninstall nexa-markdown-viewer
- Or download the
NexaMarkdownViewer_<version>_x64-setup.exefile from GitHub Releases. - Run the downloaded installer and follow the setup wizard.
If a SmartScreen warning appears, click "More info → Run anyway". Chocolatey moderation takes close to a month each time (0.2.1: 32 days · 0.3.3: 33 days · 0.4.0: 25 days) not because of a problem with the package, but because antivirus scans flag the unsigned executable as a false positive (Flagged Warning), which sends it down the human-review path — this is expected to go away once code signing is applied. For detailed usage, see the user guide.
macOS
Homebrew — one-line install (recommended)
brew install --cask kiros33/tap/nexa-markdown-viewer Up to date with the latest v0.4.0. The Cask removes the quarantine attribute automatically during installation, so the app launches right away without a security warning. It is a universal build for both Apple Silicon and Intel. Uninstall: brew uninstall --cask nexa-markdown-viewer
Register the Homebrew tap (first time only)
brew tap kiros33/tap Tap repository: kiros33/homebrew-tap. Not needed if you use the one-line install above.
Install with Homebrew (after registering the tap)
brew install --cask nexa-markdown-viewer Upgrade: brew upgrade --cask nexa-markdown-viewer
- Or download
..._universal.dmgfrom GitHub Releases and drag the app into the Applications folder.
Linux
Register the APT repository — Debian · Ubuntu (first time only)
sudo curl -fsSLo /usr/share/keyrings/sosomlab-archive-keyring.gpg https://pkg.sosomlab.com/sosomlab-archive-keyring.gpg
sudo curl -fsSLo /etc/apt/sources.list.d/sosomlab.sources https://pkg.sosomlab.com/apt/sosomlab.sources Registers the SosomLab signed package repository (pkg.sosomlab.com). Skip this if you already registered it for another SosomLab app.
Install with APT (recommended)
sudo apt update && sudo apt install nexa-markdown-viewer Latest v0.4.0. After this, sudo apt upgrade brings you new versions. Uninstall: sudo apt remove nexa-markdown-viewer
Register the DNF repository — Fedora · RHEL family (first time only)
sudo curl -fsSLo /etc/yum.repos.d/sosomlab.repo https://pkg.sosomlab.com/rpm/sosomlab.repo Skip this if you already registered it for another SosomLab app.
Install with DNF
sudo dnf install nexa-markdown-viewer Upgrade: sudo dnf upgrade nexa-markdown-viewer · Uninstall: sudo dnf remove nexa-markdown-viewer
AppImage — no installation needed
chmod +x NexaMarkdownViewer_*_amd64.AppImage
./NexaMarkdownViewer_*_amd64.AppImage Download the .AppImage from Releases, make it executable, and run it directly. It works on any distribution and needs no separate installation. (If you get an error that FUSE is missing, add the --appimage-extract-and-run option or install your distribution's fuse package.)
Debian · Ubuntu (.deb)
sudo apt install ./NexaMarkdownViewer_*_amd64.deb Installing with apt install ./<file> instead of dpkg -i also installs the dependent packages automatically. Uninstall: sudo apt remove nexa-markdown-viewer
Fedora · RHEL (.rpm)
sudo dnf install ./NexaMarkdownViewer-*.x86_64.rpm Resolves the dependent packages as well. Uninstall: sudo dnf remove nexa-markdown-viewer
Only x86_64 (amd64) builds are provided. Webview rendering requires WebKitGTK 4.1 (libwebkit2gtk-4.1-0 / webkit2gtk4.1), which is installed automatically with deb and rpm. If you get webview-related errors with the AppImage, install this package yourself. An environment with glibc 2.35+ (the Ubuntu 22.04 or later family) is recommended.
A light, fast cross-platform Markdown viewer built on Tauri. Read documents from local files and remote GitHub repositories in GitHub style, and get around them easily with Mermaid diagrams, rich-text copy, a table of contents, navigation history, and export. Tokens are kept in the OS keychain, and locally the app reads only folders you open yourself. (Windows · macOS · Linux)
Screenshots
Key Features
- GitHub-style rendering Supports GFM (tables, checkboxes, strikethrough, autolinks) and light/dark themes, with per-language syntax highlighting in code blocks.
- GitHub remote repository integration Connect to public repositories without signing in, and to private ones with a PAT. Tokens are stored in the operating system keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service), and when a document changes online, a "🔄 Update available" badge tells you.
- Safe document viewing Dangerous HTML in documents, such as scripts and iframes, is filtered out by the same rules as GitHub, and locally the app reads only folders you open yourself. Large documents over 300,000 characters are shown as source first.
- Multi-root explorer Register and manage local folders and GitHub repositories together as collapsible roots, and refresh, open, or remove them quickly from the right-click context menu.
- Mermaid diagram rendering Mermaid code blocks in a document are drawn as diagrams. They follow VS Code-style light/dark colors and fit the window width from the start so the whole diagram is visible. The toolbar's [−][zoom%][+][1:1][Fit] and drag to pan let you inspect large diagrams at any size.
- Open directly via file association Associate .md, .markdown, .mdown, and .mkd files with this app and they open with a double-click. This works through launch arguments on Windows and file association (Info.plist) on macOS.
- MD / TX view toggle Switch between the rendered document (MD) and the Markdown source (TX) in one click. In TX mode you can select and copy the source as is.
- Rich-text copy Copy from the rendered view and it pastes into Word, PowerPoint, or Hangul with heading sizes, tables, and code backgrounds intact. The right-click menu also offers Copy text only and Copy entire document.
- Content zoom (50~300%) Zoom text, images, and tables at the same ratio. Supports Ctrl +/−/0, Ctrl+wheel, and the % control in the history bar, and the setting is remembered.
- Table of contents and navigation history Move quickly between documents with a table of contents (ToC) built from headings, navigation history at file#anchor level, and breadcrumbs.
- Panel layout switching Resize the explorer and table of contents panels freely, and toggle between VS Code-style and Eclipse-style layouts.
- Wiki-style document links Relative .md links and images are resolved automatically, and external links open in the default browser. File names containing Korean characters or spaces and anchors to Korean headings are followed as is.
- Plain-text and code viewer Non-Markdown files are also displayed in a monospaced font, with the size adjustable using Ctrl/⌘ +/−. Choose which file types to show in Preferences.
- HTML and PDF export Easily export documents as HTML with inlined styles or as print-based PDF.
- Preferences and extensible structure Remembers preferences such as file types to show and fonts, along with recent documents and the theme, and abstracts sources and rendering so it can be extended easily.
About
Nexa Markdown Viewer is a cross-platform desktop viewer that displays Markdown documents from local folders and remote repositories just as they look on GitHub. It is built on Tauri 2 (the native webview), so the installer is small and the app runs light.
It goes beyond a simple viewer, with what you need to navigate documents: a table of contents (ToC) panel, navigation history at file#anchor level, wiki-style links between documents, Mermaid diagrams, and HTML and PDF export.
It does more than display documents, too. Copy from the rendered view and it pastes into Word, PowerPoint, or Hangul with heading sizes, tables, and code backgrounds intact, and the MD/TX toggle lets you view or copy the Markdown source as is.
v0.4.0 strengthens security further. HTML in documents is filtered by the same rules as GitHub, the app reads only local folders you open yourself, and GitHub tokens are stored in the operating system keychain. Large documents over 300,000 characters are shown as source first so the app does not freeze.
It is designed with sources (local, GitHub, and so on) and rendering abstracted, and is planned to expand with math (KaTeX) and GitHub Alerts, document search (word, regex, and full grep), automatic refresh when files change, portable builds that need no installation, and Bitbucket/GitLab integration.
On macOS you can install the latest v0.4.0 with one line through Homebrew, and on Linux through the SosomLab package repository (APT/DNF). On Windows, winget and Chocolatey install the same v0.4.0 with one line. It runs on macOS 12+, Windows 10+, and major Linux distributions (x86_64) with no separate runtime to install.
Windows builds are planned to be code signed with a certificate that the SignPath Foundation provides free of charge to open-source projects (application in progress). Until signing is in place, a security warning may appear on first launch. macOS builds are not yet notarized, so a warning may appear if you download the app directly, but installing with Homebrew Cask lets it launch right away without a warning.
Release Notes
v0.4.0 2026-10-09 Security hardening (HTML filter, user-opened folders only, token in OS keychain), fix for links to Korean file names, large-document protection, 6.2MB executable, Linux APT/DNF repository.
Security
- HTML filter for documents + CSP —
<script>,<iframe>,<style>,<form>, event attributes, andjavascript:links in documents from untrusted repositories are removed by the same rules as GitHub, and a Content Security Policy is enabled. Footnotes and jumps to raw HTML anchors still work. - Reads only folders you open yourself — only folders opened with Open Folder/File, file association, or a launch argument are allowed. Folders registered in earlier versions are migrated automatically on first launch, and symbolic links pointing outside an opened folder are not opened.
- Restricted export paths — the app writes only to the path you choose in the save dialog.
- GitHub token stored in the OS keychain — macOS Keychain · Windows Credential Manager · Linux Secret Service. An existing file-based token is moved on first launch and deleted; if no keychain is available, the token is kept only while the app is running. (On macOS, choose Always Allow in the keychain prompt the first time the app accesses GitHub after updating.)
Fixed
- Links, images, and anchors with file names containing Korean characters or spaces did not open — the app now handles
[name](name.md)links and#headinganchors written in Korean,?raw=truequeries, and repository-root-relative links starting with/. - When documents were opened in quick succession, a previous document arriving late could overwrite the screen.
- After moving to another document, the new-version indicator of the previous document could appear.
- The app quit when a launch argument contained a non-UTF-8 file name (Linux).
Improved
- Large-document protection — documents over 300,000 characters are shown as source first, and Render in the notice banner displays the Markdown (fixes a freeze of about 9 seconds on a 500KB document).
- Executable reduced from 16.0MB → 6.2MB — installers are smaller too: dmg 6.8MB · exe 3.1MB · deb/rpm 3.9MB.
- Open folder in the explorer folder right-click menu shows the folder in the file manager.
Distribution
- New Linux APT/DNF repository (pkg.sosomlab.com) — install and update with
sudo apt install nexa-markdown-viewer/sudo dnf install nexa-markdown-viewer. - 0.4.0 published on every channel — Homebrew and APT/DNF on release day, winget when PR #449305 was merged on 2026-10-09, and Chocolatey (0.3.4 was skipped) when 0.4.0 was approved on 2026-11-03 (25 days).
v0.3.4 2026-08-11 Expanded folders now stay as they are when you refresh the explorer.
Fixed
- Refreshing collapsed all expanded folders — the tree's expansion state lived only in the screen elements, so it disappeared on refresh. The expansion state is now kept and saved per workspace, so refreshing reloads only the contents and leaves open folders as they are. Local folders and GitHub repositories behave the same, and the expansion state is restored when you relaunch the app.
Distribution
- winget v0.3.4 published — PR #415385 was merged on 2026-08-11, so
winget install SosomLab.NexaMarkdownViewerinstalls the latest version. Homebrew is also up to date. - On Chocolatey, v0.3.3 was approved on 2026-09-01 (33 days after submission). v0.3.4, held back to avoid a double queue, was skipped, and v0.4.0 was submitted later.
v0.3.3 2026-07-28 The content uses the full window width — no more right margin beside wide tables and diagrams.
Improved
- Content uses the full width — removed the limit that held the content to a centered 920px. When you widen the window, tables and diagrams extend to the full width with no right margin (the same behavior as the VS Code preview).
Distribution
- v0.3.3 published on both Homebrew and winget — you can install the latest version from either channel right away.
v0.3.2 2026-07-26 Added diagram view modes and fixed zoom and pan not working properly.
Added
- Diagram view modes — the toolbar now has
[−] [zoom%] [+] [1:1] [Fit]. 1:1 shows the natural size and lets you drag to pan, and Fit returns to the width where the whole diagram is visible. Clicking zoom% resets to 100%.
Fixed
- Diagram zoom in (+) did not work — fixed the cause, where the enlarged width was immediately reset to the original size. The display area's height is now fixed so the content is not pushed down when you zoom in.
- Dragging to pan reset the zoom level — removed the behavior that redrew the diagram on every move. As a bonus, dragging is noticeably smoother.
Improved
- Zoom controls repositioned — zoom moved to the left of the MD/TX toggle. The MD/TX button stays in place even when the zoom buttons disappear in TX, so your click target does not shift as you switch modes.
v0.3.1 2026-07-25 Mermaid diagram sizing fix — the whole diagram is visible from the start.
Fixed
- Wide diagrams were cut off — they now fit the window width on opening so the whole diagram is visible (similar to VS Code). Zooming out no longer leaves margins or clipping, and "Reset" returns to fit-to-width.
- The text size inside diagrams is fixed at 16px to stay in proportion with the content.
Docs
- README installation section reorganized — package manager instructions (macOS Homebrew · Windows winget) come first, and Linux (deb · rpm · AppImage) was added to the direct download table.
v0.3.0 2026-07-25 Renderer expansion (Mermaid, zoom), view and copy UX, and improved GitHub organization repository support.
Added
- Mermaid diagram rendering —
mermaidcode fences are displayed as diagrams (lazy loading, light/dark theme sync, original code shown on syntax errors). - Mermaid VS Code style + zoom/pan — applies VS Code light/dark colors and fonts, and supports zoom out/zoom in/reset buttons at the top right, drag to pan, and Ctrl+wheel zoom.
- MD / TX view mode toggle — a segmented button to the left of refresh (MD by default). TX shows the Markdown source as plain text and supports selecting and copying, auto-scroll at the edges while dragging, and Ctrl/⌘ +/− font size.
- Rich-text copy — copying from the MD rendered view pastes into Word, PowerPoint, or Hangul exactly as rendered (heading sizes, tables, code backgrounds, and so on).
- Content right-click menu — Copy (keep formatting) · Copy text only · Copy entire document · Select all.
- Content zoom (zoom %) — adjusts text, images, and tables at a consistent scale (50~300%). Supports the −/%/+ control in the history bar, Ctrl +/−/0, and Ctrl+wheel, and the setting is kept.
Fixed
- Mitigated organization repositories not appearing in the "My repositories" list — organization lists are now fetched and merged (with duplicates removed), and the token creation guidance was revised. (Organization repositories require a classic PAT (repo) + SSO authorization, or the organization as Resource owner.)
Distribution
- Homebrew Cask updated to v0.3.0 — get the latest version right away with
brew upgrade --cask nexa-markdown-viewer. - winget version update submitted — the
SosomLab.NexaMarkdownViewer0.3.0 manifest was submitted to microsoft/winget-pkgs (under review). Chocolatey new package registration is awaiting moderation.
v0.2.1 2026-06-28 Improved font selection, adjusted macOS icon padding, and a Wiki user guide.
Added
- Improved plain-text/code font selection — direct entry (multiple fallbacks separated by commas), adding from the installed font list, and preview.
- GitHub Wiki user guide — includes real screen captures for each feature.
Fixed
- Adjusted the app icon to the standard macOS padding, fixing it looking larger than other apps in the Dock.
Distribution
- First Homebrew Cask registration —
brew install --cask kiros33/tap/nexa-markdown-viewer. - First winget registration — the
SosomLab.NexaMarkdownViewerpackage was merged into microsoft/winget-pkgs.
v0.2.0 2026-06-27 GitHub remote integration (M3) and major UX improvements to the explorer, settings, and export.
Added
- GitHub remote repository integration — PAT sign-in (not needed for public repositories), token stored locally with AES-256-GCM encryption, adding repositories from the list your account can access, tree browsing and document viewing, and resolution of relative images and document links.
- Online update detection + refresh — compares the document's blob sha on window focus and shows a "🔄 Update available" badge.
- Navigation history (file#anchor) — ←/→ navigation, breadcrumbs, 1-click jumps from history grouped by file, and scroll position restored on back/forward.
- Multi-root explorer + right-click context menu — register local folders and GitHub repositories together as collapsible roots, and refresh, open, or remove them right away.
- Preferences window — file types to show (global + per-repository override), plain-text font and default size.
- Plain-text and code viewer and export window (PDF, HTML), panel resizing and toggling.
- Linux builds (deb · rpm · AppImage) added — automated releases for 3 OSes: Windows, macOS, and Linux.
Fixed
- A bug where previous content remained when switching to a file with the same name (e.g. README.md) in a different repository.
- A bug where folders were not recognized because of a Rust↔JS field name mismatch.
- The tree and content flickered or were needlessly re-requested on file clicks, window focus, and tab switches.
v0.1.0 2026-06-27 First public build — a local Markdown viewer (M1).
Added
- GitHub-style rendering — GFM (tables, checkboxes, strikethrough, autolinks), light/dark themes.
- Per-language syntax highlighting (synced with the theme).
- Table of contents (ToC) panel — heading extraction and click to jump.
- Local folder explorer, wiki-style document links, HTML and PDF export.
Terms & Policies
No terms or policy documents are registered.
Contact: [email protected]