RUNE
Rune icon

RUNE

WRITE IT DOWN.
LOSE NOTHING

A small, fast text editor for the Mac, with one scratch file in iCloud Drive that all your Macs share. It saves as you type, and edits from two Macs are merged, never overwritten.

Download free trial Buy · $19 Free for 7 days · macOS 27 · Apple silicon
scratch.md · simulated--:--:--
scratch.mdiCloud Drive › Rune

This Mac is Studio, the other is Air, and the time between events is shortened. Click the status line for the sync details.

01

Nothing lost between Macs

Every difference between your Macs is merged or shown to you. Rune never discards text without telling you.

On disk within
300 MS
every keystroke, in a recovery journal
To your other Mac
2.5 S
from a save to the text there, median
History
30 DAYS
of versions, kept on this Mac

Saved as you type

A crash or a force quit loses at most the last 300 ms. There's no "Save?" to answer, and File › Revert To brings back any version from the last 30 days.

Merged, not overwritten

Rune uploads each version itself, and an upload fails rather than replace a newer one. Edits that don't overlap are merged, by line and by word, and ⌘Z undoes the merge.

Conflicts you can see

Where both Macs changed the same lines, both versions stay in the file. ⌘1, ⌘2 or ⌘3 keeps one side or both; ⌥⌘R opens the merge view.

Shows where each version is

The status line says when a version is saved, uploaded and on your other Mac. A deleted file, a full disk or iCloud turned off gets a red line saying what happened and what to do.

A conflict in Rune
- [ ] two shirts
AIR · 10:44⌘1 USE · ⌘3 BOTH
- [ ] rain jacket and umbrella
STUDIO · 10:44⌘2 USE
- [ ] rain jacket
- [ ] passport
The same file in any other editor
$ cat scratch.md
- [ ] two shirts
<<<<<<< Air · 10:44
- [ ] rain jacket and umbrella
=======
- [ ] rain jacket
>>>>>>> Studio · 10:44
- [ ] passport
02

Plain text in

Paste anything and get clean, unstyled text, in Rune or in any other app.

Paste is always plain

⌘V in Rune inserts only the text: no fonts, colors, links or images. Copy puts plain text on the clipboard too.

Paste Clean

⌥⇧⌘V also removes invisible characters such as zero-width spaces, turns non-breaking and other unusual spaces into ordinary ones, and trims trailing whitespace.

Clean Clipboard

⌃⌥⌘V, in any app, rewrites the clipboard as clean plain text, without opening a window.

Append to Scratch

Adds the clipboard, or a selection through Services, to the end of scratch.md without leaving the app you're in. In Shortcuts too.

03

Quick edits

Open a file, fix it, close it. Highlighting that matches Sublime Text, Sublime Text's keys, and no project panel, build system or debugger.

Colored as Sublime Text colors it: 99.97% of characters on Rune's reference files
export function totalsByMonth(invoices, { round = true } = {}) {
  const totals = new Map();
  for (const { date, amount } of invoices) {
    const month = date.slice(0, 7);
    totals.set(month, (totals.get(month) ?? 0) + amount);
  }
  return round ? [...totals].map(([m, t]) => [m, Math.round(t * 100) / 100]) : [...totals];
}

33 languages HTML · CSS · JavaScript · TypeScript · JSX · JSON · Markdown · Shell · Python · Go · Rust · Ruby · Swift · Java · C · PHP · SQL · YAML · TOML · XML · CSV · and more

Sublime's colors and keys

An Old Hope built in, or import your scheme and font from Sublime Text in one click. Sublime Text's default keys for every command Rune has, and a minimap like Sublime Text's.

Multiple carets

⌘D adds the next match, ⇧⌘L splits a selection into lines, ⌘-click adds a caret, ⌥-drag makes a column.

Find and go to

Find and replace with regular expressions. ⌘P goes to a file, ⇧⌘P runs any command, ⌘R jumps to a Markdown heading.

Files kept as they were

Encoding, line endings, permissions and extended attributes stay as they were. A 2.4 MB file opens in under 100 ms; past 5 MB, highlighting turns off.

04

A native Mac app

Show Scratch

⌥Space, in any app, brings the scratch window forward with the caret where you left it. Press it again to return to the app you were in.

Tabs reopen after a quit

Files open as native tabs beside the scratch file. Untitled tabs are kept like everything else, and the tabs open at a quit open again.

In the menu bar

Its panel has Show Scratch, Clean Clipboard and your recent files.

Quiet

No timers while idle, and 0.00-0.05% CPU. Notifications only for a conflict, a failed save, a deleted file, or iCloud Drive off or full; never for a save that worked.

And a rune command, like Sublime's subl
$ rune notes.md:12 # open at line 12 $ export EDITOR="rune -w" # for git commit messages $ date | rune -a # append to scratch.md
05

Spec sheet

PlatformmacOS 27, Apple silicon. Native: Swift, AppKit and TextKit 2.
SynciCloud Drive and nothing else: no account, no server of Rune's own.
MergingThree-way, by line and then by word. Conflicts go between git's markers, readable in any editor.
On this Mac onlyThe recovery journal, 30 days of History, and a Sync Log of every save, upload and merge.
Highlighting33 languages with tree-sitter. An Old Hope · Rune built in; imports .tmTheme and .sublime-color-scheme.
AccessibilityVoiceOver reads the status line as one sentence. With Reduce Motion on, nothing animates.
PrivacyNo analytics, no telemetry. Your files go only through iCloud Drive.
UpdatesSigned, checked once a day, or off in Settings.
DistributionDeveloper ID, notarized by Apple. Not sandboxed, so it opens any file.

Measured

Show Scratch to typing25 ms, p95
Cold launch to typing274 ms, p95
A keystroke1.4 ms, median
Opening a 2.4 MB fileunder 100 ms
Idle43 MB of memory, 0.00-0.05% CPU

On a Mac mini with macOS 27.

06

Price

One-time
$19
A license for 3 Macs. No subscription.
  • 7-day free trial on each Mac, everything included
  • After it, Rune is read-only until you buy, and keeps syncing what you wrote
  • 30-day refunds, no questions asked
  • Updates to Rune 1.x included
Download free trial Buy Rune · $19 Secure payment by Lemon Squeezy · 30-day refunds