Skip to content
View MDowser's full-sized avatar
🎯
Focusing
🎯
Focusing
  • Joined Oct 13, 2026

Block or report MDowser

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
MDowser/README.md
MDowser icon

🌐 MDowser: The Markdown Browser

A cleaner web should not be a privilege reserved for AI agents. People deserve it, too.

Read the web as text-first documents; without a webview, JavaScript, cookies or trackers.

⬇ Download MDowser

Download for macOS, Linux and Windows Rust 1.98+ License: MPL-2.0


The web is noisy. Reading it doesn't have to be.

Modern web pages often bring far more than the document you came to read: scripts, interfaces, trackers and layers of machinery between you and the information. AI agents are increasingly being given cleaner ways to access content. That should not mean humans are left with the clutter.

MDowser brings the plain-text web to your desktop. Enter an https:// address or open a local Markdown file, and MDowser renders the document in a fast, native interface designed for reading. No embedded web browser. No JavaScript execution. No cookies or trackers. An encrypted, bounded disk cache keeps repeat visits fast and stays under your control. Just the content, presented clearly.

MDowser is deliberately focused: one document format, one HTTP method and one network protocol. There is no web stack to run scripts or reproduce an entire website. If a host serves a Markdown document over HTTPS, MDowser can read it.

For people who write, learn, research, build and read. For anyone who wants information without the noise.

Get MDowser from GitHub Releases β†’

Why MDowser?

  • Markdown, rendered natively. CommonMark with GFM-style tables, footnotes, task lists and strikethrough, plus YAML frontmatter. Code blocks include syntax coloring and a Copy button; tables, callouts and documentation layouts are rendered by MDowser itself. HTML, JSX and ::: containers are treated as markup rather than executable application code. MDX components such as <Tabs>, <Accordion>, <Card>, <Steps>, <CodeGroup> and <Badge> β€” along with supported ::: equivalents β€” render natively, without running JavaScript. See rendering details.

  • A real desktop-browser experience. Vertical tabs, an address bar with autocomplete, favicons, encrypted local history and bookmarks, an encrypted HTTP cache for repeat visits (with clearly marked offline/saved copies), a document outline sidebar, one-key Markdown saving, zoom, light and dark themes, preferences and built-in about:home, about:history and about:licenses pages. Explore the interface.

  • Your documents, not a stripped-down text dump. Images, color emoji, CJK and right-to-left scripts, in-page anchors, footnotes and automatic links for bare URLs are supported. Image formats include PNG, JPEG, GIF, WebP, JPEG XL, AVIF, ICO and static SVG, decoded in pure Rust.

  • Privacy by design. HTTPS only β€” never plain HTTP. GET requests only. No JavaScript, webview, cookies or proxy. Responses are cached only in an encrypted, bounded store that Preferences can clear per class and "Forget on exit" disables. Local files are opened only through user input or links inside a local document. A remote page cannot specify a local file path. Read the security model.

  • Small enough to reason about. One desktop application, unsafe_code = "forbid", bounded inputs and a deliberately limited document format. Rendering is incremental: code blocks draw only visible lines, tables are fingerprinted once per document and the palette is interned. See the architecture.

Download

Ready to try MDowser? Download the latest release for your operating system from the Releases page. Each release includes the available prebuilt packages and a SHA256SUMS.txt file for checksum verification.

Choose the asset matching your system:

Platform Release asset
macOS 13 or later MDowser-<ver>-macos-universal.app.zip β€” Apple Silicon and Intel
Linux mdowser-<ver>-linux-<arch>.tar.gz, the matching .deb or .rpm, or the mdowser-<ver>.flatpak bundle
Windows (x64) mdowser-<ver>-windows-x86_64.zip
Windows on ARM mdowser-<ver>-windows-aarch64.zip

Release filenames use the version number and architecture of the build. Open Releases, select a release and download the appropriate file from its Assets section.

Platform notes

  • macOS: The .app is ad-hoc signed, not notarized. Open it once so Gatekeeper registers the block, then allow it under System Settings β†’ Privacy & Security β†’ Open Anyway. On current macOS, right-clicking and choosing Open does not bypass this restriction.
  • Linux: Install a Debian package with sudo dpkg -i mdowser_<ver>_amd64.deb (or arm64), an RPM with sudo rpm -i mdowser-<ver>-*.rpm, or the Flatpak bundle with flatpak install mdowser-<ver>.flatpak. The package installs the desktop entry, hicolor icon and AppStream metadata, so MDowser can appear in the applications menu and software center.
  • Windows: Unzip the archive and run mdowser.exe. On Windows on ARM, use the aarch64 archive; the x86_64 build can also run through emulation. The .exe is unsigned, so Windows SmartScreen may show a warning. If you choose to proceed, select More info β†’ Run anyway. See the navigation guide for registering .md files.

Try it

Open a local document:

mdowser ~/notes.md

Or read a Markdown document hosted online:

mdowser https://example.com/readme.md

You can also type a URL or file path into the address bar, or open a file from the application. Navigation stays inside MDowser, and Esc stops a load. mdowser --help prints the usage and mdowser --version the build, without opening a window.

For the URL-routing sequence, redirects and local-file rules, see Navigation.

Keyboard shortcuts

Shortcut Action
Ctrl/Cmd+T Β· Ctrl/Cmd+W New tab Β· close tab
Ctrl/Cmd+L Focus the address field
Ctrl/Cmd+R / F5 Refresh
Ctrl/Cmd+F Find in page
Ctrl/Cmd+S Save the page as Markdown in the downloads folder
Ctrl+H (Windows/Linux) Β· Cmd+Y (macOS) Open history in a new tab
Ctrl/Cmd+D Bookmark the current page
Ctrl/Cmd +/= / - / 0 Zoom in / out / reset
Ctrl/Cmd+, Open preferences

See Interface and shortcuts for the complete list.

Build from source

The Makefile handles dependencies, the host release build and packaging:

make          # dependencies + host release build + current-OS packages in dist/
make dist     # dependencies + packages for macOS, Linux and Windows in dist/
make install  # install into /usr/local (PREFIX/DESTDIR supported)
make run      # debug build and run

make and make dist install missing host dependencies first via make deps; set SKIP_SETUP=1 to skip setup. If Rust itself is not installed yet, run make deps once first (the Makefile resolves the toolchain at startup). Requirements include stable Rust β‰₯ 1.98 and a C compiler. NASM is also required on x86/x86_64 hosts; ARM64 hosts use the system toolchain and do not need it. On native Windows without make, use windows.ps1 as the equivalent entry point.

The build guide covers full requirements, the make test pipeline, multi-platform packaging and native Windows setup: Building MDowser.

Documentation

Want to understand a specific part of MDowser? Start here:

Guide What you'll find
Rendering Supported Markdown, code blocks, tables, callouts and native rendering behavior
Interface Desktop UI, preferences and all keyboard shortcuts
Navigation URL handling, redirects, local files and file associations
Building Toolchain, Makefile pipeline, packages and runtime requirements
Architecture Module map, design contracts and performance model
Security Threat model, input limits and vulnerability reporting
Contributing Getting started and code standards
Changelog Notable changes, improvements and bug fixes
Third-party notices Licenses for bundled dependencies and fonts; also available in Preferences β†’ View third-party licenses

Security by design

MDowser keeps its network and document-handling surface intentionally small:

  • https:// only, GET only, and a single Markdown content type.
  • No JavaScript execution, webview, cookies or proxy. The only persistent network state is an encrypted, bounded HTTP cache that Preferences can clear per class and "Forget on exit" disables.
  • Remote documents cannot name or load local paths; local files are opened only from user input or links in a local document.
  • Hard limits on input and decoding: 10 MiB documents, 16 MiB / 48 MP images, 1 million events, and bounded encrypted history, bookmarks and cache.
  • SVG is rasterized statically, and unsafe_code = "forbid".

These restrictions are part of the design, not optional privacy switches. Read the full threat model and security limits.

License

MDowser is distributed under the Mozilla Public License 2.0 (MPL-2.0).

Trademarks

MDowser is an independent project and is not affiliated with, endorsed by or sponsored by any product, project or service it may mention. Third-party names and marks belong to their respective owners and are used only for identification or description. Bundled dependencies are listed in Third-party notices.

Pinned Loading

  1. MDowser MDowser Public

    🌐 MDowser: The Markdown Browser. πŸ” The Markdown web, rendered natively. πŸš€ A fast, lightweight, cross-platform browser for https and local Markdown files, with no webview or JavaScript execution.

    Rust 3

  2. MDowser-Sites MDowser-Sites Public

    Curated site list for the MDowser omnibox: markdown-first sites the MDowser can open.

    2