Native · GPU-rendered · No Electron

Write faster.
Think further.

A markdown editor that gets there before you do.

Tachyon opens into a resident instance in 20–35 ms, paints every keystroke inside a single frame, and edits gigabyte-scale files without a stall.

  • InstantOpens in 20–35 ms
  • Pure MarkdownPlain .md, no lock-in
  • Distraction-freeOne pane, no clutter
Tachyon's light theme. The caret sits in a paragraph, which shows its raw Markdown, while the heading, a table, highlighted Rust code and a task list around it are rendered. The same document in Tachyon's dark theme, which follows the system appearance.
Why fast

Speed is the feature

Tachyon is native Rust on GPUI, rendering straight to the GPU: DirectX on Windows, Vulkan on Linux, Metal on macOS. Every budget below is a requirement in Tachyon's own repository, checked in CI. A change that regresses one needs a recorded decision before it can land: these aren't targets, they're gates.

BudgetTargetMeasured
Launch → first frame (resident instance)p95 < 50 ms20–35 ms across runs
Keystroke reparse, 1 MB documentp99 < 0.5 ms45–55 µs p99
Key to painted pixel, 1 MB documentwithin one frame≤ 3 ms on Windows
Paste of 5 MB of textno frame over 16.7 ms5–9 ms worst frame

Reference machine: Windows 11, Core Ultra 7 155H, Intel Arc graphics, 4K display. Numbers are measured, not estimated.

Time to first frame

Resident mode is why launch feels instant

A resident Tachyon keeps a window ready in the background, so opening a file just shows it; between uses it waits in the tray on 16 MB of memory, less than a single browser tab. Skip that (a cold, direct launch) and GPU and font initialization alone cost hundreds of milliseconds. Both bars are Tachyon; no other editor is involved. They run in real time: watch the gap, not just the numbers.

Resident launchdefault on Windows · replayed at 30 ms
20–35 ms
Cold, direct launchresident mode skipped · replayed at 350 ms
300–450 ms

Both bars are Tachyon, on the same reference Windows PC: one launching into a resident instance (the default), one launching cold. Bar length is proportional to milliseconds, capped at 450 ms; each bar fills over its own real measured duration.

Side by side

Against the editors you already have

Tachyon 1.0 and six editors on the same Windows 11 laptop, run one at a time with the same scripts. The best result in each column is highlighted, whichever editor it belongs to. Where an editor couldn't do something, the table says so instead of showing a number.

EditorCold launchWarm launchMemory, 5 KB note200 MB logTyping, 20 MB .md
Tachyon 1.0199 ms55 ms18 MB1.8 s73 ms
Notepad++ 8.9372 ms87 ms16 MB1.5 s4.2 s
Windows Notepad 11436 ms120 ms35 MB28 skeys lost
VS Code 1.1391.46 s473 ms1,002 MB5.1 s108 ms
Obsidian 1.13934 ms221 ms178 MBwon't open .logrenderer crashed
Typora 1.141.42 s1.05 s220 MBwon't open .log"too large to render"
MarkText 0.191.50 s557 ms177 MBopened an empty windowstopped at 6 GB RAM

Core i7-7820HQ, 32 GB, Intel HD 630, 1080p at 125 %, Windows 11 26H2; OS file cache warm. Launch: process start to a window titled with the file, median of 5 (cold) or 10 (warm: app already running, file opened again from its command line; Tachyon's warm launch is its resident instance, the default on Windows). Memory: private working set of the whole process tree, 10 s after loading. Log: 200 MB, 1.6 M lines, launch until its last line is on screen. Typing: 20 characters at ~60 ms each at the end of a 20 MB Markdown file, last key to all of them on screen. Every editor ran under a watchdog that ends it above 6 GB of RAM in use (working set) or 8 GB committed, to protect the test machine; MarkText passed the 6 GB RAM limit twice while still loading the 20 MB file. Tray: resident Tachyon with no windows, 16 MB private working set, against one Edge tab on github.com at 100 MB. Full method, versions and raw data.

On this machine

What it actually looks like

Real captures of Tachyon on Linux, rendered at 2x. Same binary, same editor, no mockups.

Find bar open with the query 'block': matches highlighted across the heading, a rendered paragraph, the raw paragraph being edited and the task list, a 5 of 7 counter in the bar.
Find highlights every match live, in rendered and raw text alike.
A 4,000-line synthetic log file open in plain-text mode: literal monospaced timestamped lines, no Markdown rendering applied anywhere.
A 4,000-line log opens in plain-text mode: no syntax hiding, no Markdown parsing overhead.
The command palette open over a document and filtered by the query 'find': Find, Find next and Find previous, each with its keyboard shortcut.
The command palette: commands and settings filtered as you type, each with its shortcut.
Block swap

The block under your caret is always raw

This is the same editing model Tachyon uses, in a few lines of HTML and CSS. Tab or click into a line: it drops to raw Markdown so you can edit it; every other line stays rendered. Works with the keyboard, works with the mouse, works with no script at all.

notes.md

Try it: Tab into the card, then ↓ / ↑ to move the caret between lines.

Large files

Logs that hang most editors just open

Files stream in from disk in chunks instead of loading into one giant string, and only what's on screen is fully parsed. A file over 2 GiB is refused outright, with a message, instead of risking a crash.

What most editors do with a huge log

  • A 200 MB log is loaded whole before anything is shown
  • The window stops responding while it reads and lays out the file
  • A single very long line can make layout itself pathological

What Tachyon measures

  • A 200 MB log opens in ≈400 MB of memory, window responsive throughout
  • A 1 GB log opens in ≈1.4 GB, still responsive
  • A 20 MB single-line file stays under 13 ms per frame
  • Edits and undo on a huge log paint in 1–2 ms
5.7 GB → 300 MB

A 15 MiB Markdown file shaped like one giant fenced code block used to peak near 5.7 GB of memory. Streamed block windows bring that down to about 300 MB.

2 GiB

Files above this size are refused with a clear message on open, rather than exhausting memory or crashing.

1–2 ms

Typing and undo on a multi-hundred-megabyte log still paint in one to two milliseconds, not seconds.

Everything else

A scratchpad that grew up

Everyday editing, without leaving the performance budgets above.

Command palette

Every command and setting in one filterable list, each with its shortcut. Quick open jumps straight to a recent file.

Ctrl+Shift+P Ctrl+P

Find & replace

Replace All rewrites every match as a single undo step, even across hundreds of thousands of hits.

Ctrl+F Ctrl+H

Go to heading

Filter the document's headings and jump straight there.

Ctrl+Shift+O

Open recent

Pick from your last 30 files, filtered as you type. On Windows, the latest 10 are also in the taskbar jump list.

Ctrl+R

Plain-text mode

Non-Markdown files open literally, syntax hidden nowhere. Toggle any document between the two.

Ctrl+Shift+M

Copy as HTML

Rendered rich text, ready to paste into Word, Outlook or Teams on Windows.

Ctrl+Shift+C

Sticky notes

Quick, autosaved notes in compact always-on-top windows, from a global hotkey or the tray.

Preferences

Every setting in one list, changed in place and applied at once, saved to a plain settings.toml.

Ctrl+,

Zoom

50% to 300% per window; text, indents and spacing scale together.

Ctrl+= Ctrl+-

Hot exit

Quit never asks. Unsaved documents come back exactly as you left them.

Lists that keep up

Enter continues bullets, numbers and task boxes; Tab nests, renumbering as it goes.

Tab

Highlighted code

Fenced blocks light up in both themes: Rust, Python, JS/TS, C-family, Go, Java, C#, shells, PowerShell, SQL, JSON, TOML, YAML.

Follows the system

Light and dark themes track the OS, or a setting, live.

Links, images, math

Ctrl+click follows a link; local images render inline; math renders too.

Reloads under you

A file changed by another program reloads automatically when there's nothing unsaved to lose.

Windows tray icon

A resident Tachyon lives in the tray: new window, sticky note, About, or quit, without hunting for a taskbar entry.

Get it

Install Tachyon

Windows

Auto-update

MSIX, with automatic updates: open Tachyon.appinstaller (the button below) and follow the prompt. Also available as a plain .zip. Both are signed with Azure Trusted Signing.

Get Windows build

Linux

.tar.gz archive; extract and run. tachyon --desktop-entry on adds it to your launcher and "Open with" menus.

Get Linux build

macOS

.tar.gz archive. Not signed or notarized yet, so Gatekeeper will warn on first launch.

Get macOS build

Each release ships a SHA256SUMS.txt alongside the archives, so you can verify what you downloaded before you run it.

Build from source

Needs the Rust toolchain pinned in rust-toolchain.toml (installed automatically by rustup) and, on Linux, a handful of system libraries for GPUI.

# Linux (Debian/Ubuntu) build dependencies
sudo apt-get install libxkbcommon-x11-dev libwayland-dev libxcb1-dev \
  libx11-xcb-dev libfontconfig-dev libfreetype-dev libvulkan-dev libzstd-dev

# clone, then run
cargo run --release -- notes.md
Open source

MIT OR Apache-2.0

Tachyon is early: block-swap editing, saving, find and replace, large-file handling and Windows distribution are working today; macOS signing and a few other items are still open on the roadmap.

Dual licensed

Use Tachyon under either the MIT license or the Apache License, Version 2.0, at your option.

Contribute

Issues, pull requests and design discussion happen on GitHub. Read CONTRIBUTING.md before opening a PR.