The Acme User Interface for Programmers
Acme is a powerful text editor, development environment and textual-user-interface platform developed by Rob Pike originally for Plan 9 from Bell Labs research operating system, and now has ports available for all major platforms.
Implementations and Ports
- The primary implementation as part of Plan 9 from Bell Labs (originally implemented in the Alef programming language, and later rewritten in C using libthread.)
- Plan 9 from User Space port of most Plan 9 user space tools to *NIX systems.
- Acme Stand Alone Complex (aka acme-sac) rewrite in Limbo to run on the Inferno virtual machine that can run as a standalone application on Plan 9, POSIX, or Microsoft Windows.
- Updated build of pf9, reported to work on 64-bit Windows.
Acme has a very peculiar user interface, it has a minimalist set of keyboard shortcuts, and makes extensive use of ‘mouse chording’. For details see:
If you are used to more traditional text editors (mode oriented like vi, key combination oriented like Emacs, or mouse menu oriented like most Windows editors), acme can be frustrating at first, but with an open mind and after some practice mouse chording will become second nature and you will miss it everywhere else.
Documentation, Manuals and Papers
- The Acme Readme.
- Acme: A User Interface for Programmers - The original paper by Rob Pike.
- acme(1) - Commands: acme, win, awd, interactive text windows.
- acme(4) - The file system interface: control files for text windows.
- Help: A Minimalist Global User Interface by Rob Pike - A paper describing the predecessor of Acme.
- A tutorial for the sam command language - Used by acme’s Edit command.
- A Tour of Acme - Video tutorial by Russ Cox explaning the main features and principles of Acme.
Some of the applications written to take advantage of the acme user interface are included in the standard Plan 9 distribution and can be found in their corresponding directories at
- Wiki - An acme interface to wikifs.
- Mail - An email reader using upas/fs.
- News - An NNTP newsgroup browser using nntpfs.
- adict - A dictionary.
- aspell - A spellchecker.
Acme apps not found in the Plan 9 distribution:
- xplor - A tree-style file system navigation app written in Go. By Mathieu Lonjaret.
- calc - a simple spreadsheet/calculator app. See this blog post for more info. By Bill Burdick.
Useful shell scripts to make some tasks in acme easier:
- Agofmt - To
gofmtyour Go files. By Micah Stetson.
Contact and Community Support
- acme-sac Google Group.
Notable Acme Users
- Dennis Ritchie
- Russ Cox
- Rob Pike (obviously)
- Omero: A more generalized user interface inspired by acme, including support for graphics applications, part of the Octopus project.
- Wily: An acme clone for *nix systems, mostly deprecated thanks to the ports of the original acme as part of p9p and Inferno.