Edit code in the terminal with Emacs-style keybindings, window splits, and multiple buffers.
Script and customize the editor using the same Lisp language it is built in, with no separate plugin API.
Get syntax highlighting and auto-indent for over 20 programming languages out of the box.
Use a live REPL inside the editor to evaluate and experiment with let-go or Clojure-style code.
| nooga/legmacs | yogthos/flatiron | dynamic-alpha/ducktape | |
|---|---|---|---|
| Stars | 25 | 27 | 19 |
| Language | Clojure | Clojure | Clojure |
| Setup difficulty | easy | moderate | moderate |
| Complexity | 3/5 | 3/5 | 3/5 |
| Audience | developer | developer | data |
Figures from each repo's GitHub metadata at analysis time.
A single Homebrew command installs a self-contained binary, no separate runtime is needed unless building from source.
Legmacs is a small terminal-based text editor styled after Emacs, built with a Lisp language called let-go, which is a dialect close to Clojure that runs on its own lightweight virtual machine written in Go. The standout idea here is that the editor itself and the language you customize it with are the exact same thing: there is no separate plugin system bolted on the side. Every built-in command and key binding is written using the same tools your own configuration file would use, so learning to configure legmacs and learning to modify legmacs are the same skill. Despite being written in only about 4,500 lines of code, it packs in a surprising number of features familiar to Emacs users: multiple buffers, window splits you can mix and nest, an extensible system of major and minor editing modes, and syntax highlighting with matching brackets and auto-indent for over 20 programming languages out of the box, with a simple way to add support for more. Because the editor is written in the same Lisp language it lets you script, you can evaluate code live inside the editor itself, turning the editing buffer into a running programming environment for the language. It also includes a dedicated REPL buffer for interactive experimentation, keyboard macros, fuzzy search style completion for commands and files, and even an optional Vim-style modal editing mode for people who prefer that style of navigation. Installing it is straightforward on macOS or Linux using the Homebrew package manager, which downloads a single self-contained program with nothing else to install. Alternatively, you can build and run it from its source code if you have the let-go language runtime installed. Customizing your setup means placing a small configuration file in a specific folder, written in the same Lisp syntax the editor itself is built from. This project is aimed at developers who enjoy Emacs-style terminal editors and are curious about Lisp programming, particularly those interested in an editor where the boundary between using the tool and programming the tool disappears. It is released under the MIT license, meaning it can be freely used, modified, and shared.
A small terminal text editor inspired by Emacs, written in and scriptable with the same Clojure-like Lisp language, so configuring it and building it are the same activity.
Mainly Clojure. The stack also includes Clojure, Lisp, Go.
MIT license: use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.