Limoniter

Free and open source · Windows, macOS and Linux

A powerful editor for today's files, and one that speaks PETSCII

Limoniter is a full-strength text and hex editor for everyday work. It has column editing, an undo tree, Find in Files, side-by-side compare, code layout, macros, scripts and add-ons, and files of 10 GB open in milliseconds.

It's also the only editor that knows the files of older computers. It edits their text byte for byte in the machine's own character set, opens their disks and tapes, lists their BASIC, and sends your work back to the machine.

A teletext page file beside the page it makes
10 GBfiles opened in milliseconds, edited and searched
1,000+automated tests, on Windows, macOS and Linux
178single-byte character sets, from CP437 to Mode 7
50+disk, tape and archive formats

For everyday work

Everything you'd expect of a serious editor, and some things you wouldn't. Every command is in the menus, grouped by what it's for. Press F1 and describe what you want to find any of them. See how it compares with Notepad++, VS Code, UltraEdit, Sublime Text and others.

Editing that keeps up

Tabs, split panes and column mode, with block editing on every selected line. Text objects, snippets, multiple selections, rainbow brackets, colour tags, folding and spell checking.

Undo that forgets nothing

Undo is a tree: undo, type something else, and the old branch is still there. History of this part takes back just the changes to one function, however long ago they were made. History can be kept with the file.

Find, replace, compare

Regular expressions, hex bytes, history and favourites. Find and Replace in Files across folders, open files or a project, in the background. Compare two files side by side, or narrow to a few lines and work on just those.

Code, laid out and coloured

Syntax colouring for the usual languages and 39 more, from COBOL to Z80. Lay out or compress HTML, XML, JSON, JavaScript, CSS, SQL and C-like code, changing only spacing, ever. Reindent, reformat paragraphs, and turn CSV into columns and back.

Huge files and hex

Ctrl+H switches any file to hex. A 10 GB file opens in milliseconds and is read from disk as needed. Typing, search and Replace All work at any size, and saving copies the parts you didn't touch straight across, in the background.

Yours to extend

Record a macro and it becomes a script you can read and change. Add-ons add their own commands, panels and hooks for open, save and send. Run a command on the file with F5, or ask Claude Code or Codex to fix or explain code.

Files anywhere

Open and save files on servers over SFTP, with server keys checked and passwords kept in the system's credential store. Projects keep sets of files together, with notes and backups.

Data as a table

CSV and TSV files open as a table to edit, sort and filter, with quoted commas and line breaks handled properly. The text stays the file: changing a cell changes only that field, and Undo takes it back.

Every byte kept, every edit safe

UTF-8, UTF-16, East Asian, Windows, ISO, DOS and EBCDIC encodings, saved back byte for byte. Unsaved edits are copied to disk as you type and offered back after a crash, and scripts can't reach files or the network of their own.

For older computers

This is where no other editor comes close. Limoniter knows the machines themselves: their character sets, screens, disks, programs and pictures.

Their character sets

178 single-byte sets, including PETSCII, ATASCII, ZX Spectrum, BBC Mode 7, Amiga, MSX, Apple II, TRS-80, 26 teletext sets and 18 classic Mac encodings. Bytes with no Unicode equivalent are carried through exactly.

Their screens and pictures

PC ANSI art, PETSCII streams, teletext pages and Spectrum screens shown as the machine showed them. Amiga HAM with colour cycling, Degas, Koala, MacPaint and Photo CD are drawn at the machine's own pixel shape and saved as PNG.

Their disks, tapes and archives

ADF, D64, ATR, TZX, DFS, HFS, CP/M in 82 machine formats, LIF, ImageDisk and many more open as folders. A file inside opens as a document, so previews and listings work on it. Nothing is ever written back.

Their BASIC

Tokenised programs are listed as the machine's LIST would show them, for Commodore, Spectrum and Next, BBC, MSX, Atari, Applesoft, MBASIC, CoCo and Dragon. Spectrum, Next, Commodore and BBC listings can be turned back into programs.

Their documents

WordStar and HP MemoMaker documents found on old disks are converted to Markdown, plain text or RTF, keeping bold, underline and page breaks, with notes on anything that couldn't be carried over.

Back to the machine

Send a finished file to a Gotek's stick, an SD card, a MiSTer, an Ultimate 64, or a Spectrum Next over Wi-Fi. Ctrl+Alt+S sends it again. More below.

Pick your machine

Here's what Limoniter knows about each one.

From the editor to the real machine

When a program is ready to try, File › Send to device puts a copy where the machine can use it. Your file stays where it is and keeps saving there.

  • Cards and sticks are found by their label, whatever drive letter they have today. Each copy is flushed to the card before it's renamed into place, so pulling the card out straight away is safe, and it can eject the card for you.
  • ZX Spectrum Next: Limoniter serves the file itself, and the Next fetches it over Wi-Fi when you type .sync. It uses Jari Komppa's NextSync, and no server script is needed.
  • Ultimate 64 and 1541 Ultimate: a .prg starts running, a .sid plays and a .d64 goes into drive A, all straight away.
  • MiSTer, Raspberry Pi and FTP servers, shared folders, TNFS folders for FujiNet, or any command line, such as an emulator.
  • On the way out, the copy can be written in the machine's own character set and line endings. An add-on can also rename it to an 8.3 name.
Limoniter  File › Send to device › Next
status     1 file waiting for .sync on the Next

ZX Spectrum Next
.sync 192.168.1.20

Limoniter  The Next fetched /home/me/game.bas
next time  Ctrl+Alt+S, then just .sync

Screenshots

Get Limoniter

Windows

The main platform, with everything included: an installer, file types in Explorer, Windows' own spell checker, and printing through the Windows print dialog.

Download the installer

Linux

Builds, runs and passes the same tests. Spell checking uses hunspell or aspell, and printing goes through CUPS. A desktop entry is included.

Build from source

macOS

A Mac app, passing all the same tests. It isn't signed by Apple, so the first time you open it, Control-click it and choose Open. It's new on the Mac, so reports are very welcome.

Download for Mac

Building from source

Limoniter is written in Rust. With Rust installed:

git clone https://github.com/jolyonralph/Limoniter
cd Limoniter
cargo build --release

On Linux, building also needs a C compiler, perl and make.

Why is it called Limoniter?

Limonite is natural rust. The name nods to the language Limoniter is written in, and to the rust-brown iron oxide that older computers kept their data in.

Limonite

Limonite is an iron ore made of hydrated iron oxides, mostly goethite, that forms where iron weathers. In other words, it's rust that nature made. Its name comes from the Greek leimon, a meadow, because it was dug as bog iron ore from wet meadows and marshes.

Written in Rust

Limoniter is written in the Rust programming language. Rust is quick and careful with memory, which counts when you're opening a 10 GB file or a damaged disk image that wants to trip you up.

Iron oxide holds the past

For decades, data was kept as magnetism in a coat of iron oxide. Cassette tapes, floppy disks and early hard disks carried the programs and documents Limoniter opens today, in rust-brown coatings of iron oxide, a close cousin of limonite.