A fast, lightweight Markdown viewer for Windows with theme support and a modern interface.
- Instant Preview - View Markdown files with beautiful, GitHub-style rendering
- Tabbed Interface - Open multiple documents in tabs within a single window
- Single Instance - Double-clicking .md files opens them in the existing window as new tabs
- Light & Dark Themes - Choose between Light, Dark, or Follow System theme
- Custom Title Bar - Modern styled window with integrated controls
- Drag & Drop - Simply drag
.mdfiles onto the window to view them (supports multiple files) - File Association - Register as the default handler for
.mdand.markdownfiles - Live Refresh - Quickly reload the current file to see changes
- Session Restore - Remembers open tabs, window size, position, and theme between sessions
- Keyboard Shortcuts - Full keyboard navigation support
- Rich Markdown Support - Tables, task lists, code blocks, emojis, and more
MarkSnap displaying a Markdown file with syntax highlighting and dark theme
- Windows 10/11
- .NET 8.0 Runtime or later
- WebView2 Runtime (included with modern Windows)
Download the latest release from the Releases page.
git clone https://github.com/jasona/marksnap.git
cd marksnap
dotnet build -c ReleaseThe executable will be in MarkSnap/bin/Release/net10.0-windows/.
There are several ways to open Markdown files:
- Drag and Drop - Drag any
.mdor.markdownfile onto the MarkSnap window - Open Button - Click the "Open" button in the toolbar to browse for a file
- Command Line - Run
MarkSnap.exe "path/to/file.md" - File Association - Double-click any
.mdfile (after registering MarkSnap as the default handler)
- Open MarkSnap
- Click "Set as Default" in the toolbar
- Confirm the registration
Now double-clicking any .md file will open it in MarkSnap.
- Click "Settings" in the toolbar
- Choose your preferred theme:
- Follow system setting - Automatically matches Windows light/dark mode
- Light - Light background with dark text
- Dark - Dark background with light text
- Click "Save"
Your theme preference is saved and restored on next launch.
| Shortcut | Action |
|---|---|
Ctrl+O |
Open file |
Ctrl+W |
Close current tab |
Ctrl+Tab |
Next tab |
Ctrl+Shift+Tab |
Previous tab |
F5 or Ctrl+R |
Refresh current file |
MarkSnap uses Markdig for Markdown parsing, supporting:
- CommonMark - Full CommonMark specification
- Tables - GitHub Flavored Markdown tables
- Task Lists - Interactive checkboxes
- Code Blocks - Syntax highlighting for code
- Emojis -
:emoji:shortcodes - Strikethrough -
deleted text - Autolinks - Automatic URL detection
- And more - Advanced extensions enabled
MarkSnap stores its settings in:
%LocalAppData%\MarkSnap\settings.json
Saved settings:
- Window position (X, Y)
- Window size (Width, Height)
- Maximized state
- Theme preference (Light, Dark, or System)
- Open file paths (for session restore)
- Active tab index
- Framework: WPF (.NET 8/9/10)
- Markdown Engine: Markdig
- Rendering: WebView2 (Chromium-based)
- Language: C# 12
marksnap/
├── MarkSnap/
│ ├── App.xaml # Application entry point and theme resources
│ ├── App.xaml.cs # Application startup and single-instance logic
│ ├── MainWindow.xaml # Main window UI with tabs and custom title bar
│ ├── MainWindow.xaml.cs # Window logic, tab management, and rendering
│ ├── SingleInstanceManager.cs # Mutex and named pipe IPC for single instance
│ ├── SettingsWindow.xaml # Settings dialog UI
│ ├── SettingsWindow.xaml.cs # Settings dialog logic
│ └── MarkSnap.csproj # Project configuration
└── README.md
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.