Skip to content
michaelmjhhhhPublic

About

A lightweight, fast Markdown editor.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Neon icon

Neon

A fast, native Markdown editor for macOS.

Write on the left, read on the right, or go full screen with nothing but the text.

Release macOS 11+ Keystroke to frame
Rust GPUI License

Download · Shortcuts · Build · Changelog


Neon is built on GPUI, the GPU-accelerated UI framework behind the Zed editor. It draws with Metal, parses off the main thread, and stays responsive in files tens of thousands of lines long. The Apple Silicon build is about 16 MB.

Features

Writing

  • Markdown highlighting in the editor, with line numbers you can hide.
  • Lists that continue themselves. Enter starts the next bullet, number or task; Tab and Shift+Tab indent and outdent the item.
  • Slash commands. Type / on an empty line to insert a list, task list, code block, link, image or table. Add a size or language: /table 4x5, /bullet 5, /code rust.
  • Find and replace in a compact bar at the editor's corner.

Reading

  • Live preview in Charter, a book face, of headings, links, nested and numbered lists, task lists, block quotes, code, tables with alignment, images and footnotes.
  • Outline and table of contents. The sidebar lists the document's headings and lights the section you are in; click one to go there. Write [TOC] for a table of contents in the preview and the exports, and link to any heading with #anchor or [[Note#Heading]].
  • Obsidian-style notes: callouts (> [!tip]), ==highlights==, front matter as properties, and [[wikilinks]] that open the linked note in Neon.
  • Three layouts: Editor, Split and Preview. In Split, the preview follows the cursor; in Editor, the text sits in a centered column of readable width.
  • Zen Mode. The document alone, full screen, in a centered column. The paragraph you are writing stays bright while the rest fades, and the line you type on stays at the middle of the screen.

Files

  • Tabs, each with its own edits, undo history and scroll position.
  • Folder sidebar for nested Markdown files, with new file and new folder.
  • Search the folder from the sidebar, with match case, whole word and regular expressions. Unsaved edits are searched as they read, in English and Chinese.
  • Git for a folder in a Git repository: see what changed since the last commit, word by word, then stage, commit and push from the sidebar, and browse the history as a branch graph.
  • Picks up where you left off: Neon reopens the last folder and file at launch.
  • Export to HTML, PDF or Word in the preview's font, with local images embedded.

Look

  • Light and dark themes that follow the system, or a fixed choice in Settings.
  • Separate fonts and sizes for the editor and the preview, remembered between launches.

Install

  1. Download Neon-<version>-macos.dmg from the latest release.
  2. Open it and drag Neon to Applications.

Neon runs natively on Apple Silicon and Intel, macOS 11 or later. It is signed with an Apple Developer ID and notarized, so macOS opens it without a warning.

Neon updates itself. On the second launch it asks whether to check for updates automatically; when one is out, it shows what changed and installs it on request. Neon › Check for Updates… checks right away. Updates are signed, and Neon refuses one that is not.

Verify a download

Each release lists SHA256SUMS and a build provenance attestation. To check that a file was built by this repository's release workflow:

gh attestation verify Neon-<version>-macos.dmg --repo michaelmjhhhh/neon

Keyboard shortcuts

Files View
New file ⌘ N Editor / Split / Preview ⌘ 1 2 3
New tab ⌘ T Zen Mode ⌃ ⌘ Z
New folder ⌘ ⇧ N Toggle sidebar ⌘ ⇧ B
Open file ⌘ O Toggle line numbers ⌘ ⇧ L
Open folder ⌘ ⇧ O Settings ⌘ ,
Save ⌘ S Bigger / smaller / default text ⌘ = / ⌘ - / ⌘ 0
Save As ⌘ ⇧ S Editing
Next / previous tab ⌃ Tab / ⌃ ⇧ Tab Bold / Italic ⌘ B / ⌘ I
Close tab ⌘ W Find ⌘ F
Close window ⌘ ⇧ W Find and replace ⌥ ⌘ F
Files / Changes in sidebar ⌘ ⇧ E / ⌃ ⇧ G Indent / outdent list item Tab / ⇧ Tab
Search in folder ⌘ ⇧ F
Outline in sidebar ⌃ ⌘ 1
Commit, in the message ⌘ ↩

⌘ } and ⌘ { also switch tabs. In the search field, ↩ or ↓ opens the next match and ⇧ ↩ or ↑ the previous one. In the preview, Space and ⇧ Space page down and up, and ⌘ ↑ ↓ jump to the top and bottom.

Performance

Each keystroke is drawn and submitted as soon as it is handled, instead of waiting for the next display refresh. Syntax highlighting reparses in the background, and only the editor redraws while you type.

Measured in an 8,600-line document on a 60 Hz display:

Mean p99
Keystroke → frame submitted 1.6 ms 5.2 ms
Keystroke → first refresh it can appear on 10.5 ms 17.9 ms

To reproduce, keep the Neon window in front and run:

script/latency-bench my-run 3    # JSON reports go to output/latency/

Memory use is covered by a separate memory benchmark.

Build from source

Requires macOS, Xcode with the Metal toolchain, and rustup. The Rust version is pinned in rust-toolchain.toml.

cargo run --release              # build and launch
cargo test --workspace           # run the tests
script/bundle-mac --native       # package dist/Neon.app, .dmg and .zip for this Mac
script/bundle-mac                # universal binary for Apple Silicon and Intel

Builds from source have no updater: cargo run leaves Sparkle out, and so does script/bundle-mac unless sparkle_public_key in it is set. script/appcast writes the update feed for a release.

If the Metal compiler is missing, run xcodebuild -downloadComponent MetalToolchain.

Crate Purpose
crates/neon App entry point, menus and windows
crates/workspace Document window: editor, tabs, sidebar, status bar, file handling
crates/markdown_preview Virtualized, incrementally updated preview
crates/markdown Markdown parsing into blocks, with source ranges
crates/export HTML, PDF and Word export

License

Apache-2.0.

About

A lightweight, fast Markdown editor.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages