Free & Open Source · MIT License

Open .MD Files. Stay Private. Work Offline.

Free .md file viewer and md reader. Open .md files and folders instantly in your browser — no uploads, no accounts. Works offline.

No signupNo uploadWorks offline
No file uploads
Works offline
100% open source

Read Markdown. Stay Private. Work Offline.

A free, open-source Markdown viewer that runs entirely in your browser. Drop a file or folder — nothing leaves your device.

Private by Design

Files open via the browser's FileReader API. No server ever receives your content — not even for a millisecond. Your notes, documentation, and journals stay yours.

Offline-Ready PWA

Install once, read forever. A full Workbox service worker caches every asset on first load. Open ReadLocal with zero internet. Works on desktop, Android, and iOS.

Folder-Aware Reader

Drop an entire project directory. ReadLocal recursively traverses subdirectories and renders a collapsible folder tree in the sidebar — exactly like your file manager.

Everything you need to read Markdown well

No feature bloat. Every decision was made with privacy and simplicity first.

Full GFM Support

GitHub Flavored Markdown

Tables, fenced code blocks with syntax highlighting for 180+ languages, task lists, strikethrough, blockquotes, collapsible details sections, superscript, and subscript. Exactly what GitHub renders.

  • highlight.js powers 180+ language grammars
  • Task lists with [ ] and [x] syntax
  • Collapsible <details> and <summary> tags
syntax-demo.md
GitHub Flavored Markdown
Language
Highlight
Lines
JavaScript
180+
Python
Rust
typescript
// highlight.js powers this
const viewer = ReadLocal.init();
Task list support
Strikethrough text
Collapsible <details> sections
Comfort Controls

Reading Controls

Three font sizes (S · M · L). Four column widths: 580px · 740px · 960px · Full. Warm cream light theme and deep ink dark theme. All settings auto-save to localStorage — nothing to configure, ever.

  • Font size: Small, Medium, Large
  • Column widths: Narrow to Full
  • Settings persist via localStorage
reading-preferences.md
Reading Controls
Font Size
Column Width
Theme
Your preferences, remembered

All settings auto-save to localStorage. Nothing to configure — just read.

Privacy-First

Session Persistence (Optional)

Enable "Remember Files" via the header toggle and your documents survive a browser refresh — stored locally via IndexedDB, never sent anywhere. Turn it off and nothing is stored. Default is off.

  • Opt-in only — off by default
  • IndexedDB stores file handles, not content
  • One toggle to disable completely
READLOCAL
Remember Files
Session persistence is on
Stored in IndexedDB · Never sent anywhere
📄docs/README.md
📄notes.md
📄changelog.md
↺ These files will reopen after a browser refresh
Quick Access

Favorites

Star any file for instant access at the top of the sidebar. Favorites persist across sessions as a list of IDs in localStorage — no file content is stored, just references.

  • Star any file from the sidebar
  • Favorites section always at top
  • Stored as IDs only — zero content
Sidebar
★ Favorites
README.md
notes.md
All Files
📁 docs/
📄 setup.md
📄 changelog.md
📄 ideas.md
Safe by Default

Secure Rendering

DOMPurify sanitization with a protocol-validation hook. <script>, <iframe>, inline event handlers (onclick, onerror), and data: URIs are stripped before rendering. Open any .md file safely.

  • DOMPurify strips dangerous HTML
  • Protocol allowlist: http, https, mailto
  • Safe to open files from any source
XSS Protection Active
DOMPurify sanitizationallowed
Protocol validation hookallowed
<script> tagsstripped
Inline onclick handlersstripped
data: URIsstripped
Instant Results

Real-Time Search

Instant filename and path filtering across all loaded files. Results narrow as you type — no debounce, no delay. Find any file in a large project immediately.

  • Searches filenames and full paths
  • No debounce — instant feedback
  • Works across hundreds of files
read|
3 results for "read"
📄
docs/README.md
Getting Started with <mark class="bg-teal/20 text-teal rounded px-0.5">read</mark>Local
📄
docs/setup.md
How to <mark class="bg-teal/20 text-teal rounded px-0.5">read</mark> local .md files
📄
changelog.md
<mark class="bg-teal/20 text-teal rounded px-0.5">read</mark>Local v1.2.0 released
One-Click Copy

Copy Code Block

Every fenced code block gets a copy button in the header. One click copies the entire code block to your clipboard with visual feedback — no manual selection needed.

  • Automatic on all code blocks
  • Shows 'Copied!' confirmation
  • Works offline, no clipboard API calls
example.md
bash
npm install
npm run dev
typescript
const result = render(markdown);
Every code block gets a one-click copy button
Easy Navigation

Table of Contents

Auto-generated TOC panel from all headings in your document. Click any heading to jump directly to that section. Perfect for long documentation and README files.

  • Auto-generated from h1-h6 headings
  • Smooth scroll to section
  • Highlights current reading position
Table of Contents
Contents
Introduction
Getting Started
Installation
Configuration
Features
Syntax Highlighting
API Reference
Click any heading to jump directly to it
Document Search

Find in Document

Ctrl+F style search within the current document. All matches are highlighted, and you can navigate between them with arrow buttons. The current match is emphasized.

  • Real-time highlighting as you type
  • Navigate with ↑↓ arrows or buttons
  • Match count displayed
Find in Document
privacy|
3 / 7
ReadLocal is built with privacy first in mind.
No data leaves your device — your privacy is guaranteed.
The privacy policy is simple: nothing.
Highlighted match · ↑↓ to navigate
Clean Export

Print / Export to PDF

Export your Markdown as a perfectly formatted PDF. The reading UI is hidden during export, leaving just your beautifully rendered content with all syntax highlighting intact.

  • One-click PDF export
  • Print-optimized CSS stylesheet
  • UI automatically hidden on export
report.md
UI is hidden · clean output · print-ready CSS
Power User

Multiple Tabs / Split View

Open two documents side by side with independent controls. Each pane has its own font size, column width, and theme settings — perfect for comparing documentation or referencing while writing.

  • Two panes with independent settings
  • Drag handle to resize
  • Each pane tracks its own scroll position
Split View
README.md
# Getting Started
 
Install with npm:
```bash
npm install
```
CHANGELOG.md
# Changelog
 
## v2.0.0
- Split view
- Find in doc
- Export PDF
Independent controls per pane · drag to resize

Three steps to reading .md files

No setup required. No account needed. Just drop .md files and read.

1

Drop your files

Drag any .md file or folder onto the app. Or click Add to use the file picker.

2

Browse the tree

Your folder structure with .md files appears instantly in the sidebar. Click any .md file to open it in the reading area.

3

Read in peace

Adjust font size, column width, and theme to your preference. Everything remembers itself the next time you open the app.

What stays on your device, stays on your device.

  • No file upload — FileReader API processes files 100% in-browser
  • No analytics — no Google Analytics, Mixpanel, Sentry, or pixel trackers
  • No accounts — no sign-up, no email, no user profile
  • No cookies — only localStorage for your own preferences (theme, font, width)
  • Open source — every line of code is auditable on GitHub

The only network requests ReadLocal ever makes are to load its own JS/CSS/font assets from the host server on first load. After that, everything comes from your local cache.

Roadmap

What's built and what's coming

ReadLocal is actively developed. Everything we ship is open source and privacy-first.

Completed

17 features shipped

Syntax highlighting

Core

highlight.js, 180+ languages

Recursive folder support

UX

Drag-and-drop with cycle detection

Session persistence

Privacy

IndexedDB, opt-in, privacy-respecting

Favorites

UX

Quick file access via starred list

XSS hardening

Security

DOMPurify + protocol validation hook

PWA installation

Core

Full offline caching

Error Boundary

Stability

Graceful recovery UI

Keyboard navigation

Accessibility

Full ARIA accessibility

Copy Code Block

UX

One-click copy on every fenced code block

Table of Contents

Navigation

Auto-generated from headings with smooth scroll

Frontmatter display

Enhancement

YAML front matter as styled document header

Find in Document

Search

Ctrl+F style search with highlighted matches and navigation

Print / Export to PDF

Export

One-click clean export with UI hidden

Multiple Tabs / Split View

UX

Two documents side by side with independent controls

In-Browser Editing Mode

Core

Edit markdown directly with live preview and soft line breaks

Improved Error Handling

Stability

User notifications for save failures and storage issues

Enhanced Type Safety

Stability

Comprehensive TypeScript strict mode compliance

Planned

2 features in pipeline

Local image rendering

Media

Support ./relative.png paths from dropped folders

Mermaid diagrams

Enhancement

Flowcharts, sequence diagrams, ERDs in Markdown

Have a feature request? We'd love to hear from you.

Request a Feature on GitHub

Install it. Forget the browser.

ReadLocal works as a native-feeling app on any device. No app store. No account. Install directly from your browser.

Chrome / Edge

Windows, macOS, Linux, Android

Look for the "Install ReadLocal" banner at the bottom of the page, or click the install icon in the browser's address bar.

iOS Safari

iPhone / iPad

Tap the Share button (square with upward arrow) → scroll to "Add to Home Screen" → tap Add.

Android (Samsung, Firefox, Brave)

All Android devices

Open the three-dot menu → "Add to Home Screen" or "Install App".

After installing:
  • Opens in its own window — no browser chrome, no address bar
  • Works completely offline
  • Updates silently in the background when a new version ships
Open Source

Free to use. Free to fork.
Free forever.

ReadLocal is MIT-licensed and fully open source. Self-host in three commands. No vendor lock-in. No telemetry. No subscription required.

MIT Licensed

Free for personal and commercial use

Zero Telemetry

No tracking, no phone home, ever

Self-Hostable

Deploy anywhere in 3 commands

terminal
git clone https://github.com/Imranpranto/readlocal-local-markdown-md-file-renderer.git
npm install
npm run dev