Important
This is the community continuation of MarkView. Upstream became feature-frozen in August 2026 and will publish no further releases; its authors have moved on to Rho MD. This fork carries MarkView forward under the same MIT license, and releases are published here. Original work © Wuko-Syn DEV / scos-lab — see LICENSE.
This fork extends MarkView for AI-generated technical Markdown while preserving its fast, local, read-only workflow.
Additional support includes GitHub alerts, emoji shortcodes, YAML front matter, definition lists, subscript/superscript, safe Lucide icon shortcodes, local Graphviz/DOT, D2, Markmap and WaveDrom diagrams, and opt-in Marp slides. Rendered diagrams carry a hover toolbar for copying or revealing their source, links and images resolve relative to the open document, and relative .md links open in a new tab inside MarkView. The toolbar's width control cycles the reading column through narrow, wide, extra wide and full width; the choice is remembered.
An AI-native Markdown reader for Windows and Linux — renders Mermaid diagrams, KaTeX math, Vega-Lite charts, and GFM tables the way modern LLMs produce them.
| Data charts (Vega-Lite) | Diagrams (Mermaid) |
|---|---|
![]() |
![]() |
| Math + tables | Release notes view |
|---|---|
![]() |
![]() |
MarkView is a reader, not an editor. Open it when you want to:
- See LLM output rendered immediately — paste a Claude / ChatGPT / Gemini reply that contains Mermaid diagrams or Vega-Lite charts and see them as visuals, not raw JSON / code blocks. No copy-pasting into a separate site.
- Read LLM-generated technical reports — KaTeX math, GFM tables, syntax-highlighted code, and diagrams render in one consistent view.
- Open a
.mdfile and just read it — release notes, README files, docs from a cloned repo. No editor UI in the way. - Glance at the data file sitting next to the doc — JSON, YAML, JSONL, CSV/TSV and config files open in the same window with the same tabs.
Alongside Markdown, MarkView opens the data and config files that usually sit beside it. They reuse the same tabs, width control, themes and file watching — there is no second app hiding inside.
| Format | Extensions | View |
|---|---|---|
| JSON | .json |
Collapsible tree, copy value or path, source toggle |
| YAML | .yaml, .yml |
Collapsible tree, multi-document aware, source toggle |
| JSONL | .jsonl, .ndjson |
Sortable table when records share a shape, tree otherwise |
| CSV / TSV | .csv, .tsv |
Sortable table, sticky header, row count, source toggle |
| Config | .toml, .ini, .env, .conf, .properties |
Read-only highlighted source |
Malformed input never blanks the window: the parse problem is reported above the content and the raw source stays readable. Tables cap at 5,000 rows and say how many were left out. MarkView does not register itself as the handler for these types — it stays the default app only for Markdown.
If you need editing, sync, plugins, or note-taking, Obsidian, Typora, and MarkText are great. MarkView is intentionally read-only and lightweight — no account, no sync, no telemetry.
| Format | Link |
|---|---|
| Installer (NSIS) | MarkView_1.4.0_x64-setup.exe |
| Installer (MSI) | MarkView_1.4.0_x64_en-US.msi |
Note: Windows SmartScreen will warn about these files because they are not code-signed. To bypass: click "More info" → "Run anyway". Alternatively, right-click the file → Properties → check "Unblock" → OK.
| Format | Link | Notes |
|---|---|---|
.deb |
MarkView_1.4.0_amd64.deb | Debian / Ubuntu, uses system WebKit |
.rpm |
MarkView-1.4.0-1.x86_64.rpm | Fedora / RHEL / openSUSE |
.AppImage |
MarkView_1.4.0_amd64.AppImage | Needs glibc 2.35 or newer (Ubuntu 22.04, Debian 12, Fedora 36 and later); bundles WebKitGTK |
# .deb
sudo dpkg -i MarkView_1.4.0_amd64.deb
# .rpm
sudo rpm -i MarkView-1.4.0-1.x86_64.rpm
# .AppImage
chmod +x MarkView_1.4.0_amd64.AppImage
./MarkView_1.4.0_amd64.AppImageReleases are published through GitHub Releases only. This fork does not publish to the Microsoft Store or Flathub; those listings belong to the upstream project and are frozen at 1.0.5. The Flatpak manifest and AppStream metainfo have been re-identified to
io.github.Scorpse.MarkView, so Flathub remains possible later.
After install, open the About panel and click "Set MarkView as default .md
handler" to bind .md files to MarkView system-wide.
| Symptom | Fix |
|---|---|
.AppImage won't launch on Ubuntu 24.04 (error while loading shared libraries: libfuse.so.2) |
sudo apt install libfuse2t64 |
.deb install fails with WebKit dependency error on older Debian / Ubuntu |
sudo apt install libwebkit2gtk-4.1-0 (or -4.0-37 on older releases) |
| "Set as default" doesn't take effect | Run manually: xdg-mime default markview.desktop text/markdown |
- Mermaid diagrams — Flowchart, sequence, state, class, ERD, gantt, pie, mindmap, timeline, journey. Each type code-splits on demand.
- Vega-Lite charts — Bar, line, scatter, heatmap, candlestick, stacked area. Any data spec an LLM can emit as JSON renders as SVG.
- KaTeX math — Inline and block, matrices, integrals, series.
- GFM — Tables, task lists, footnotes, strikethrough, autolinks.
- Syntax highlighting — 100+ languages via highlight.js.
- Table of Contents — Auto-generated from headings with scroll spy.
- Folder Browser — Browse a directory tree of
.mdfiles. - In-Document Search — Ctrl+F with highlight and navigation.
- Dark / Light Theme — Follows system preference or manual toggle. Charts re-render with theme-aware colors on switch.
- Font Size Control — Adjustable (12–28 px), persisted.
- File Watching — Auto-reloads when the file is modified externally.
- Drag & Drop — Drop
.mdfiles directly into the window. - Default
.mdHandler — One-click "Set as default" on both platforms (Windows: auto-registers via registry; Linux:xdg-mime default). - Recent Files — Last 10 opened files on the welcome screen.
- Print — Clean print output (content only).
- Token Estimation — Document stats with word count and estimated token count.
| Shortcut | Action |
|---|---|
Ctrl+O |
Open file |
Ctrl+W |
Close current tab |
Ctrl+Tab / Ctrl+Shift+Tab |
Next / previous tab |
Ctrl+F |
Search in document |
Ctrl+B |
Toggle sidebar (TOC / folder browser) |
Ctrl+P |
|
Ctrl+Shift+T |
Toggle light / dark theme |
Ctrl+= / Ctrl+- / Ctrl+0 |
Font size: increase / decrease / reset |
- Tauri 2 (Rust) — Desktop framework (WebView2 on Windows, WebKit2GTK on Linux)
- React 19 + TypeScript — Frontend UI
- Vite 6 — Build tooling
- TailwindCSS 4 — Styling
- Zustand — State management
- Unified/Remark/Rehype — Markdown processing pipeline
MarkView was born from a controlled experiment: does the format of a specification affect the quality of LLM-generated code?
We wrote the same app spec in three formats — Natural Language (NL), STL, and STLC — and gave each to a separate Google Gemini instance. Same 19 features, same tech stack, same prompt. The results:
| Metric | Natural Language | STL | STLC |
|---|---|---|---|
| Feature Completion | 8.5/19 (45%) | 13/19 (68%) | 10/19 (53%) |
| Compiles? | NO | YES | YES |
| Fully Autonomous? | NO | YES | NO |
| Human Interventions | 1+ | 0 | 1 |
STL was the only format that compiled on the first attempt with zero human intervention. The NL version didn't even compile (missing build.rs, broken regex). The STLC version compiled but missed practical details like CSS imports — correct logic, broken visuals.
-
Planning (Claude) — Claude wrote the full application specification in STL format (
plan_stl.md), encoding every feature, component, and dependency as typed semantic edges with explicit confidence scores. -
Implementation (Gemini) — The STL plan was passed to Google Gemini, which generated the complete working codebase — Rust backend, React frontend, styling, and configuration — autonomously in a single pass.
STL (Semantic Tension Language) encodes knowledge as typed, weighted semantic edges:
[MarkView] -> [Markdown_Reader] ::mod(
rule="definitional",
confidence=0.99,
intent="Render .md files into beautifully typeset documents for reading (not editing)"
)
Each edge carries:
rule— relationship type (causal, definitional, empirical, logical)confidence— certainty level (0.0–1.0).0.99= hard requirement.0.7= nice to have.intent— what this actually means in context
Natural language buries priorities between the lines. STL makes them explicit — and transferable between any AI model (Claude, Gemini, GPT) with near-zero information loss.
Learn more about STL at stl-lang.org — source and spec on GitHub.
cd markview
npm install
npm run tauri devnpm run tauri buildMIT — © 2026 Wuko-Syn DEV / scos-lab. Free to use, fork, and modify.




