RUNE

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 Coming soon · macOS 27 · Apple silicon
scratch.md · simulated--:--:--
scratch.mdiCloud Drive › Rune

This Mac is Studio, the other is Air, and time runs faster. Click the status line for the sync details.

01

Nothing lost between Macs

Every difference between your Macs is merged or shown to you. Nothing is dropped quietly.

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.

Says how far it got

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 plain red line and a way out.

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, makes unusual spaces plain, and trims trailing whitespace.

Clean Clipboard

⌃⌥⌘V, in any app, rewrites the clipboard as clean plain text, with no 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's keys, and nothing an IDE would add.

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's default keys for every command Rune has, and its minimap.

Multiple carets

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

Find anything

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. Big files open fast; past 5 MB, highlighting turns off.

04

A real Mac app

Show Scratch

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

Tabs that come back

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 nothing happens. Notifications only when something needs you, never for a save.

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. Reduce Motion stops everything that moves.
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 Checkout opens soon · secure payment by Lemon Squeezy