Browser extension · VS Code extension

Markdown,
read properly.

Browsers show .md files as a wall of raw text. Markscope turns every Markdown URL into a navigable, well-typeset document with an outline, search, diagrams and math, and it never runs code from the document.

  • MIT licensed
  • No telemetry
  • No server
  • AI optional, off by default
Deploy runbookRead · Edit · Source

Deploy runbook

Warning Drain the queue first.
  • Tag the release
  • Roll out to 5%
build ship
Same file. Left: what the browser shows. Right: Markscope.

01

A reader built for the docs developers live in

READMEs, ADRs, runbooks, specs, changelogs. Open them from the web, from GitHub, or straight from disk.

Markscope rendering a document with a sidebar outline, table of contents and Read, Edit and Source views
Outline and scrollspy. GitHub-compatible anchors, inline [[toc]], J/K heading jumps.
Mermaid and Graphviz diagrams rendered in a document
Diagrams and math. Mermaid, Graphviz and KaTeX, loaded only when a document uses them.
The command palette listing commands, headings and recent documents
Command palette. ⌘K for commands, headings, recents and every file in a folder.
Edit view with live preview next to the document doctor panel
Edit and doctor. Live preview, save back to disk, and a check for broken anchors and missing images.
Dark theme showing callouts and syntax-highlighted code blocks
Light and dark. OKLCH themes, highlighted code with copy buttons and language badges.

02

Everything in the box

Reading

  • GitHub-flavored Markdown: tables, task lists, footnotes, emoji
  • Alerts (> [!NOTE]) and ::: details containers
  • Front matter as a collapsible table
  • Relative .md links open in place, at the right anchor
  • Image lightbox and click-to-load for third-party images
  • Find in document with /

Workflow

  • Auto-detects .md, .mdx, .markdown and more over http(s) and file://
  • Opens GitHub, GitLab and Bitbucket blob pages as Markdown
  • Live reload with ETag and Last-Modified, keeps your place
  • Open folder: browse a project's docs with Back and Forward
  • Edit with live preview, ⌘S saves to the file
  • Recents, favorites, focus mode

Export

  • Self-contained HTML with no network requests, diagrams and math included
  • Print or save as PDF with a print-tuned light layout
  • The original Markdown, byte for byte
  • Document stats: words, reading time, render time

AI, if you want it

  • Summarize, outline, review, explain a selection or code block
  • Ask questions about the document, generate a Mermaid diagram
  • Anthropic, OpenAI, or any local or OpenAI-compatible endpoint
  • Bring your own key. Requests go straight to your provider

03

A Markdown file can't attack you here

Many Markdown viewers inject rendered HTML into the web page itself, so a crafted file can run script in that page. Markscope never renders in the page.

  1. Content script

    Reads the page's plain text and hands it off. It never renders anything, so its attack surface is tiny.

  2. Service worker

    Validates every message and its sender. A content script can only hand off its own top-frame URL.

  3. Render worker

    markdown-it, highlighting and math run off the main thread, so large documents stay responsive.

  4. DOMPurify

    One trust boundary. No scripts, event handlers, forms, frames or <style>. URLs pass a scheme allowlist.

  5. Viewer page

    An extension page with script-src 'self'. Even a sanitizer bypass has nothing it can execute.

No analytics. No telemetry. No server. Your documents stay in your browser.

The only time text leaves your machine is when you run an AI action, and only to the provider you configured, after you confirm. Keys are never synced or exported and are bound to the endpoint they were saved for. This page follows the same rule: no scripts, no web fonts, no third-party requests.

04

Install in a minute

Store listings are in review. Until they’re live, load the release build directly.

Chrome Web StoreChrome, Edge, Brave, ArcIn review
Firefox Add-onsFirefox 140+In review
VS Code MarketplaceVS CodeAvailable
Open VSXVSCodium, Cursor, WindsurfComing soon
  1. Download markscope-1.2.0-chrome.zip and unzip it.
  2. Open chrome://extensions (or edge://extensions) and turn on Developer mode.
  3. Click Load unpacked and choose the unzipped folder.
  4. For local files, open the extension's Details and allow access to file URLs.

Or build from source Node.js ≥ 20

git clone https://github.com/AbdallahSaeed/markscope
cd markscope
npm install
npm run build   # → dist/chrome

A Firefox build (npm run build:firefox) is available and experimental.