Repository navigation
Releases: VagueDustin/FATE
Release list
v1.14.0: Clean code copies, hot exit, files kept as they were, safer documents
Work that can't be lost, files kept exactly as they were, and a preview that keeps documents in their place
1.14.0 is the result of a full review of FATE: every problem it found is fixed, and the features it suggested are in. The complete list is in the changelog; these are the ones you'll notice.
Copy code and paste it straight into a terminal. Every code block in a Markdown document has a Copy button that copies its exact text, without the trailing newline that ran a pasted command straight away. Copying a selection no longer brings the theme with it: code copies as plain text, prose as clean text that Word, Outlook and Teams format their own way, and maths as its TeX source. The LaTeX repair pass also left tab-indented code and My\ Documents rewritten in what you copied; it now touches only maths.
Nothing you type is lost. Unsaved changes, Untitled tabs included, are backed up as you type and come back after a crash. Clicking a relative link in a document, or pressing Ctrl+R, used to replace the whole app and every tab with it; neither can now. Unsaved Markdown edits survive switching between Edit and the reading view and changes to the file on disk, where a bar now offers Reload, Keep mine or Compare. Saves are atomic, and a clean Ctrl+S writes nothing.
Files keep their line endings, encoding and indentation. CRLF stays CRLF, UTF-16 and Windows-1252 files open and save as themselves, and tabs stay tabs. The status bar shows all three and changes them in a click. UTF-16 files, such as PowerShell 5.1's output, used to be refused as binary.
Documents stay in their place. A document can't restyle or cover the app, navigate it away, or load images from the internet until you allow it (per document, or always in Settings → Markdown). An image written as //server/share/x.png could make Windows send your sign-in hash to that server just by opening the file; FATE now treats it as a web image. On Linux, FATE no longer downloads a spell-check dictionary from Google on first launch.
New: an application menu (press Alt) with Open Recent and the Windows Jump List; right-click menus for text and for tabs; command palette modes (: go to line, @ symbols, # search all open tabs); find in the reading view; links between documents that open in tabs; an Edit mode whose preview scrolls with you; a Follow mode for logs; spell check while editing Markdown; and highlighting for PowerShell, batch and Dockerfile code blocks.
Fixed, among many others: square roots and vector arrows in maths, Mermaid diagrams that vanished when the window regained focus, diffs that were never syntax highlighted, Escape closing the document you were typing in, and duplicate tabs that multiplied on every launch.
Smaller and safer to install. Every package is much smaller: the app's own archive inside each one shrinks from 211 MB to 13 MB. Uninstalling the .deb no longer breaks apt update, upgrading the .rpm no longer removes the FATE command (this upgrade puts it back), and uninstalling on Windows removes FATE's file associations for your account too. The Microsoft Store package opens .markdown, .txt and code files as well.
Install
- Windows:
FATE-Setup-1.14.0.exe. Existing installs update themselves. - Ubuntu / Debian / Mint / Pop!_OS:
FATE-1.14.0-amd64.deb, or add the repository once:sudo curl -fsSL -o /usr/share/keyrings/fate-archive-keyring.gpg https://github.com/VagueDustin/FATE/releases/download/apt/fate-archive-keyring.gpg sudo curl -fsSL -o /etc/apt/sources.list.d/fate.sources https://github.com/VagueDustin/FATE/releases/download/apt/fate.sources sudo apt update && sudo apt install fate - Fedora / RHEL:
FATE-1.14.0-x86_64.rpm, or:sudo curl -fsSL -o /etc/yum.repos.d/fate.repo https://github.com/VagueDustin/FATE/releases/download/repodata/fate.repo sudo dnf install fate - Arch / Manjaro / EndeavourOS / CachyOS: build
fate-editor-binfromaur/withmakepkg -si. - Snap Store:
sudo snap install fate: snapd keeps it updated. Addsudo snap connect fate:removable-mediaonce to edit files on USB sticks and other removable drives. - Any Linux:
FATE-1.14.0-x86_64.AppImage:chmod +xand run; it updates itself. AppImages need FUSE 2 (sudo pacman -S fuse2on Arch,sudo apt install libfuse2t64on Ubuntu 24.04 and later).
v1.13.4: Linux desktop fixes, Arch package, DOMPurify update
Linux desktop fixes, a package for Arch, and a sanitiser update
The taskbar recognises FATE's window on Linux. Every desktop entry said StartupWMClass=FATE - Formatted Article & Text Editor, but FATE's window reports itself as fate-markdown-viewer, so desktops could not match the running window to its launcher: a generic icon in the taskbar, and pinning and grouping misbehaved. The .deb, .rpm, AppImage and snap now name the window's real app id.
FATE no longer becomes the default for SVG images. FATE declared image/svg+xml, so on a system with no explicit SVG default, double-clicking an image could open it in the editor. SVG source still opens through Open With → FATE.
A package for Arch Linux. The repository's aur/ folder holds a PKGBUILD for fate-editor-bin, which repackages the released .deb for Arch, Manjaro, EndeavourOS and CachyOS. It installs to /opt/fate-editor with a fate-editor launcher; FATE's own updater stays off and the status bar says updates come from pacman. It is not on the AUR yet. Until it is, build it from a clone:
git clone https://github.com/VagueDustin/FATE.git
cd FATE/aur && makepkg -si
Security. DOMPurify, the Markdown sanitiser, moves to 3.4.16, and the build tooling picks up updates including the fix for a fast-uri advisory. npm audit reports zero findings.
Install
- Windows:
FATE-Setup-1.13.4.exe. Existing installs update themselves. - Ubuntu / Debian / Mint / Pop!_OS:
FATE-1.13.4-amd64.deb, or add the repository once:sudo curl -fsSL -o /usr/share/keyrings/fate-archive-keyring.gpg https://github.com/VagueDustin/FATE/releases/download/apt/fate-archive-keyring.gpg sudo curl -fsSL -o /etc/apt/sources.list.d/fate.sources https://github.com/VagueDustin/FATE/releases/download/apt/fate.sources sudo apt update && sudo apt install fate - Fedora / RHEL:
FATE-1.13.4-x86_64.rpm, or:sudo curl -fsSL -o /etc/yum.repos.d/fate.repo https://github.com/VagueDustin/FATE/releases/download/repodata/fate.repo sudo dnf install fate - Arch / Manjaro / EndeavourOS / CachyOS: build
fate-editor-binfromaur/withmakepkg -si(above). - Snap Store:
sudo snap install fate: snapd keeps it updated. Addsudo snap connect fate:removable-mediaonce to edit files on USB sticks and other removable drives. - Any Linux:
FATE-1.13.4-x86_64.AppImage:chmod +xand run; it updates itself. AppImages need FUSE 2 (sudo pacman -S fuse2on Arch,sudo apt install libfuse2t64on Ubuntu 24.04 and later).
v1.13.3: snap removable-media fix, Discord removed
Snap fixes for removable drives, and Discord Rich Presence removed
Snap: files on removable drives no longer disappear silently. The snap declares the removable-media interface, but the Snap Store does not connect it on install, and FATE treated the resulting "permission denied" exactly like "no such file": Open with → FATE on a document on a USB stick or a second disk did nothing at all. FATE now recognises the confinement case and shows the one command that fixes it:
sudo snap connect fate:removable-media
It checks first whether the interface is already connected, so it never gives stale advice. Saving to such a path reports the same in the status bar, and hidden files in your home folder (which snap confinement never allows) get an honest explanation instead of a generic error. The same applies to any permission error on any platform: it is now reported, not swallowed.
Discord Rich Presence is gone entirely. FATE no longer talks to a Discord client at all: the dependency, the IPC channel, the Settings entry and the privacy-policy section are all removed. The only connection FATE makes is the GitHub update check on installs that update themselves. PRIVACY.md is updated accordingly, and now also states that apt, dnf, Snap and Flatpak installs make no update checks of their own.
Install
- Windows:
FATE-Setup-1.13.3.exe. Existing installs update themselves. - Ubuntu / Debian / Mint / Pop!_OS:
FATE-1.13.3-amd64.deb, or add the repository once:sudo curl -fsSL -o /usr/share/keyrings/fate-archive-keyring.gpg https://github.com/VagueDustin/FATE/releases/download/apt/fate-archive-keyring.gpg sudo curl -fsSL -o /etc/apt/sources.list.d/fate.sources https://github.com/VagueDustin/FATE/releases/download/apt/fate.sources sudo apt update && sudo apt install fate - Fedora / RHEL:
FATE-1.13.3-x86_64.rpm, or:sudo curl -fsSL -o /etc/yum.repos.d/fate.repo https://github.com/VagueDustin/FATE/releases/download/repodata/fate.repo sudo dnf install fate - Snap Store:
sudo snap install fate: snapd keeps it updated. Addsudo snap connect fate:removable-mediaonce to edit files on USB sticks and other removable drives. - Any Linux:
FATE-1.13.3-x86_64.AppImage:chmod +xand run; it updates itself.
v1.13.2: apt, dnf, and the store pipeline
apt install fate, dnf install fate, and the road to Flathub and the Snap Store
Package repositories. FATE now publishes a signed apt repository and signed dnf repodata with every release, served from GitHub Releases. Installing the .deb or .rpm registers the repository automatically, so a one-off download turns into apt upgrade / dnf upgrade keeping FATE current from then on. Both paths are tested on every release by installing fate from the live repositories in Debian and Fedora containers.
Snap and Flatpak. A strict-confinement snap (fate) is built on every release; a Flatpak manifest (com.vaguedustin.fate) repackages the released .deb on Electron's Flathub base and is built and linted on every release. Store listings follow as the submissions go through.
Installs that have an owner no longer update themselves. Flatpak, Snap, apt and dnf each deliver updates on their own schedule; FATE recognises those installs and stays out of the way, the same way the Microsoft Store build does. The status-bar button says who is in charge and opens the release notes. The Windows installer and the AppImage still update themselves.
Install
- Windows:
FATE-Setup-1.13.2.exe. Existing installs update themselves. - Ubuntu / Debian / Mint / Pop!_OS:
FATE-1.13.2-amd64.deb, or add the repository once:sudo curl -fsSL -o /usr/share/keyrings/fate-archive-keyring.gpg https://github.com/VagueDustin/FATE/releases/download/apt/fate-archive-keyring.gpg sudo curl -fsSL -o /etc/apt/sources.list.d/fate.sources https://github.com/VagueDustin/FATE/releases/download/apt/fate.sources sudo apt update && sudo apt install fate - Fedora / RHEL:
FATE-1.13.2-x86_64.rpm, or:sudo curl -fsSL -o /etc/yum.repos.d/fate.repo https://github.com/VagueDustin/FATE/releases/download/repodata/fate.repo sudo dnf install fate - Any Linux:
FATE-1.13.2-x86_64.AppImage:chmod +xand run; it updates itself. - Snap (sideload):
sudo snap install --dangerous fate_1.13.2_amd64.snapuntil the Snap Store listing is live.
dnf repository (repodata, not a release)
Repodata for the FATE dnf repository; the packages are the versioned releases. This is marked as a prerelease on purpose: it must never become the 'latest' release. To install: see the README, Linux → Fedora / RHEL.
apt repository (index files, not a release)
Index files for the FATE apt repository; the packages are the versioned releases. This is marked as a prerelease on purpose: it must never become the 'latest' release. To install: see the README, Linux → Ubuntu / Debian.
v1.13.1: security update, local images fixed
Security update, and local images in Markdown finally work
Every open Dependabot alert resolved: sixty of them. They spanned the whole dependency tree: Electron/Chromium itself, electron-updater and its runtime, DOMPurify (the Markdown sanitiser), js-yaml, fast-uri, and electron-builder's toolchain. Every fix was available within the existing version ranges, so the application is otherwise unchanged. Electron 42.3.3 → 42.11.3, electron-updater 6.8.3 → 6.8.9, DOMPurify 3.4.8 → 3.4.15. npm audit reports zero findings. Please upgrade.
Local images in Markdown documents now load. They never did before. A relative image such as  was rewritten to fate-local:///C:/…, and Chromium collapses the empty authority of a standard scheme the way it does for http:///host: C: became the host, the drive letter vanished, and every local image failed with file not found while its src still looked right. Confirmed on the previous Electron too, so this was the URL shape, not a Chromium change. Filenames containing #, ? or % work as well.
Linux packages are real applications. The .deb and .rpm register FATE for Markdown, plain text and about sixty code MIME types, so it appears under Open With and can be made the default from your file manager (GNOME Files: Properties → Open With → Set as default; KDE: File Type Options) or with xdg-mime default FATE.desktop text/markdown, and ship AppStream metadata for GNOME Software / KDE Discover. A Fedora .rpm joins the AppImage and .deb. These first appeared on the v1.13.0 release after it was cut; this is the first version whose source ships them from the start.
Downloads
- Windows:
FATE-Setup-1.13.1.exe(existing installs update themselves). - Linux, any distro:
FATE-1.13.1-x86_64.AppImage:chmod +xand run. Existing AppImages self-update. - Ubuntu / Debian:
FATE-1.13.1-amd64.deb:sudo apt install ./FATE-1.13.1-amd64.deb. - Fedora / RHEL:
FATE-1.13.1-x86_64.rpm:sudo dnf install ./FATE-1.13.1-x86_64.rpm.
v1.13.0: any text file, and Linux builds
FATE opens any text file, and now runs on Linux
Any text file. Up to 1.12.0 the command line, Edit in FATE and drag & drop accepted only extensions on a built-in list of about ninety, so web.config, a .properties file, a .reg export, a .csv, an extensionless script (anything not on it) did nothing at all, silently, while the Open dialog would load the very same file. That list no longer gates anything. The only checks left are the ones that matter (a 25 MB size cap and a binary sniff), and both explain themselves. The Open and Save As dialogs default to All files, so nothing hides behind a filter switch, and Save As no longer appends .md to a name typed without an extension (saving a new buffer as Dockerfile used to produce Dockerfile.md).
Highlighting from content. A file the language registry has never heard of is sniffed: XML/HTML prologues (web.config, .csproj, .plist), JSON, INI sections and registry exports, and shebang lines (#!/bin/bash, #!/usr/bin/env python3, …). Anything ambiguous stays plain text rather than guessing wrong.
Linux. This release ships an AppImage (any distribution), a .deb (Ubuntu, Debian and derivatives) and an .rpm (Fedora, RHEL, openSUSE), built by GitHub Actions on an Ubuntu runner and attached below. Same app, same themes, same bundled fonts; the installed-font picker enumerates through fontconfig, and the Windows-only integration (file-type registration, Default apps, classic context menus) simply doesn't appear. The AppImage self-updates through latest-linux.yml; the .deb and .rpm update through your package manager.
Downloads
- Windows:
FATE-Setup-1.13.0.exe(existing installs update themselves). - Linux, any distro:
FATE-1.13.0-x86_64.AppImage:chmod +xand run. - Ubuntu / Debian:
FATE-1.13.0-amd64.deb:sudo apt install ./FATE-1.13.0-amd64.deb. - Fedora / RHEL:
FATE-1.13.0-x86_64.rpm:sudo dnf install ./FATE-1.13.0-x86_64.rpm.
v1.12.0: file association repair
Fixes a serious file-association bug: please upgrade
.bat and .cmd stopped running. FATE registered them like any other code type, and for these two that alone is destructive: their handlers open with "%1" %*, where the script is the executable. As soon as a second handler appears in the type's "Open with" list and no explicit user choice exists, Windows stops running the script and shows "Pick an app" instead. Setting FATE as the default on its own Default-apps page then made it unrecoverable, because that picker has no "Windows Command Processor" to select.
FATE now refuses to register either type. The repair happens during install: the per-machine entries a previous version wrote need elevation, so upgrading is what actually restores your batch files. Both types still open in FATE from the Open dialog, drag & drop and Edit in FATE.
"Claim file types" was breaking the types it claimed. Writing a per-user class default does not make an app the handler on Windows 11, and it suppresses the rule that does work. 39 of 41 claimed types were left with no handler at all, while the counter reported them as won. The counter now resolves each type through the shell instead of guessing, and a Repair button undoes the damage. On the author's machine: 29 working types before, 59 after.
Also in this release
- Quitting with unsaved work now offers Save / Don't save / Cancel, per tab, instead of discard-or-nothing.
- Turning off "reopen last session's tabs" now clears the stored list rather than just ignoring it.
- A file you open explicitly is no longer robbed of focus by tabs restoring behind it.
- PowerShell helpers run with
-WindowStyle Hidden, which should settle the console window that occasionally blinked at launch.
Full detail in the changelog.
FATE v1.11.5: Installer fixes, now AGPL
Installer reliability, and FATE's first release under the AGPL.
Fixed
- A custom install directory is no longer reset on upgrade. The installer reseeded the remembered install location to the default folder every time, so anyone who chose their own directory got moved back to the default on each update, including silent auto-updates, which trust that value. It now seeds the default only on a first install.
- The rename migration could silently skip, leaving a pre-rename "FATE - Markdown Viewer" install alongside the new one. The lookup now reads the correct registry hive explicitly.
Also
- FATE is now licensed AGPL-3.0: fork it, improve it, and ship your changes with their source.
TRADEMARK.mdis now BRAND.md, rewritten to be straight about what it covers: a brand and an alias, no registered trademarks, artwork protected by copyright.build/installer.nshis tracked in the repo, so a fresh clone can build an installer.
Full changelog in the README.