The latest release

Download EEditor

Free, no account, no telemetry. Pick your platform.

macOS

macOS 11 Big Sur or later · Intel & Apple Silicon in one image

Download .dmg

Windows

Windows 10 or 11, 64-bit

Download installer

or the .msi package

Linux

x86-64 · glibc 2.35+ (Ubuntu 22.04 and newer)

Download AppImage

or the .deb package

Build it yourself

MIT licensed · Rust + Node

View the source

App and engine are both open source. npm install && npm run tauri build.

Every build, with checksums, is on the releases page. An iPhone and iPad version is in testing and will be announced here.

First launch

macOS

These builds are ad-hoc signed, not signed with an Apple Developer ID, so Gatekeeper will refuse the first double-click. Open it once the long way and macOS remembers:

  1. Open the .dmg and drag EEditor to Applications.
  2. Right-click the app in Applications and choose Open.
  3. Confirm in the dialog. Every launch after this is a normal double-click.

If the dialog doesn't offer Open, go to System Settings → Privacy & Security and click Open Anyway next to the message about EEditor.

Windows

The installer is unsigned, so SmartScreen shows a blue warning the first time. Click More info, then Run anyway. The .msi is the same application if you'd rather deploy it that way.

Linux

The AppImage needs no installation — mark it executable and run it:

chmod +x EEditor-Linux.AppImage
./EEditor-Linux.AppImage

Or install the Debian package:

sudo apt install ./EEditor-Linux.deb

Both need a WebKitGTK runtime, which every mainstream desktop already ships. On a minimal install: sudo apt install libwebkit2gtk-4.1-0.

Where your notes go

On first run EEditor creates a workspace folder and opens it. Use open… in the sidebar to point it somewhere else — a Dropbox folder, a git repository, an external drive. The choice is remembered.

Everything is a plain file. There is no database of your notes, no lock file and no proprietary format; the SQLite database holds only the agenda and any tables you create yourself in EELisp.

Verifying a download

Every release carries SHA256SUMS.txt, the SHA-256 digest of each file. Compute yours and compare it with the line for that file:

shasum -a 256 EEditor-macOS.dmg

Release notes

2.5.0 — several windows, ⌘P for every action, a board, and a screen that plays games: a raycaster and an MSX. Full notes.

  • Several windows, one workspace each: File → New Window… (⌃⌘N), every window its own folder, agenda and keybindings, restored at the next launch.
  • ⌘P finds actions: type > (or press ⌘⇧P) for every command, key, button and form, by any of their words. ⌃Tab steps through the tabs, ⌘1…⌘9 picks one.
  • A board (kanban) for forms and the Agenda window, and (pim-board "work") as a table in a note. The header's buttons and the sidebar's panels come from your keybindings file: (button …), (panel …).
  • Sheets: iferror for a formula's fallback, and =(sparkline B2:B30) draws a line in its cell. (install-pim) puts the PIM's keys into any folder.
  • A screen for games: a form's screen now shows any picture a program draws, frame by frame, with the keys held and sound. In the manual, with a raycaster to try.
  • An MSX, written in EELisp: its Z80, video and sound chips, booting the free C-BIOS. Cartridges up to 2 MB, Konami's SCC sound, the joystick on the cursor keys. Play Snake on it — and write that game yourself, in Z80 assembly, in five steps.

2.4.1 — spreadsheet functions in every sheet, and an About box. Full notes.

  • Spreadsheet functions, ready in any formula with nothing to load: countif, sumif, averageif and their …ifs forms, vlookup, xlookup, index, match, median, stdev, rank, left, mid, proper, textjoin and more. Conditions read the way a spreadsheet reads them: "Work", ">10", "<>Done", "W*". In the manual.
  • Whole columns: =(countif E:E "Work") reads column E down to its last filled row, and keeps up as rows are added.
  • A range wider and taller than one cell now arrives as a list of rows, so lookups know where a row ends. One row or one column is still a flat list.
  • Your own functions: put them in .eeditor/functions.eelisp (the open-functions command creates it). They load at launch and again whenever the file is saved.
  • About EEditor, in the workspace's right-click menu and as the about command: the version, and who makes it.

2.4.0 — mind maps, and a workspace that starts with something in it. Full notes.

  • Mind maps: a note named Name.mindmap.md — a heading and a bullet list — opens as a map. Tab adds a child, Enter a sibling, drag a branch to move it; map | text flips back to the outline, which is all the file holds. Save it as PNG or SVG, or print it to PDF.
  • Sample notes: open an empty folder and EEditor offers to fill it — the welcome note, the example forms, a mind map of every shortcut, and the PIM tour with its agenda. Add sample notes… in the workspace menu does the same for any folder, and never overwrites a file.
  • The PIM tour is now a tutorial: fifteen lessons, each saying what to press and what you should see.
  • The PIM's keys move to ⌘⌥ + letter (Ctrl+Alt on Windows and Linux); the date prompt is ⌘⌥E, since macOS keeps ⌘⌥D for the Dock.
  • Switching folders now loads the new folder's keybindings and runs its (on-start …).

2.3.0 — a ZX Spectrum in a form, org-mode habits, and a Visual Basic 6 theme. Full notes.

  • ZX Spectrum 48K, written in EELisp and running in a form: load a ROM or a .sna snapshot, type on its keyboard or the one on screen, paste BASIC and read the listing back, go full screen or give it a window of its own.
  • Screen control for forms: a canvas that redraws up to fifty times a second from an EELisp expression, with its own keys and paste.
  • Org-mode habits: task lines in notes linked to the agenda and kept in sync, capture into notes, refile, clocking, archive, reminders and dynamic blocks — a guide and a ready-made configuration.
  • Visual Basic 6 theme: Windows 98 grey, bevels and navy captions; the theme button walks dark → light → VB6.
  • Downloads now have fixed names and a SHA256SUMS.txt with every release.

2.2.0 — forms, sheets, and apps that run anywhere. Full notes.

  • Forms: a designer in the Visual Basic tradition — draw the controls, attach EELisp to their events, run. Chapter 10.
  • Apps: a main form runs the others in a frame, the dBASE way; variables shared across them; menus merged.
  • Export as HTML: an app — its forms, images and spreadsheets, and the EELisp engine — as one file that runs in any browser, offline. Try one.
  • Sheets: a grid whose formulas are EELisp, each a file in your workspace.
  • Notes: images and Mermaid diagrams; ⌘⇧↵ runs the selection.
  • From 2.1, never published on its own: the agenda is saved in your workspace, every text file opens, nothing unsaved is lost on the way out, files from outside the workspace, and a launch the macOS privacy prompt can't hang.

2.0.0 — the cross-platform rewrite.

  • Windows and Linux builds for the first time; macOS ships as one universal binary.
  • New engine: EELisp rebuilt in Rust, with tail calls, working macros and transactions.
  • Keybindings are now a file of EELisp you edit, with (on-start …) to choose the note you land on.
  • Open files from outside the workspace by drag-and-drop or Open With, in place or copied in.
  • Editor tabs, wiki-link autocomplete, backlinks bar, PDF export, and a calendar you can drag items around in.

Older Mac-only releases are no longer distributed here.