explaingit

torvalds/uemacs

Analysis updated 2026-05-18

2,032CAudience · developerComplexity · 2/5Setup · moderate

TLDR

Linus Torvalds's personal fork of a lightweight terminal text editor descended from 1980s MicroEMACS, still used for writing kernel commit messages.

Mindmap

mindmap
  root((uEmacs))
    What it does
      Terminal text editor
      Keyboard driven
      Fork of uEmacs/PK
    Tech stack
      C
      Standard C library
      Terminal support
    Use cases
      Writing kernel commits
      Editing text over SSH
      Learning editor internals
    Audience
      Kernel developers
      Terminal power users
    History
      Based on MicroEMACS
      Maintained by Petri Kutvonen
      Last release 1996

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Edit text files directly in a terminal session, including over SSH with no graphical interface.

USE CASE 2

Write commit messages or notes in a small, fast editor with no external dependencies.

USE CASE 3

Study the source of a compact 1980s-style text editor to learn how basic editors are built.

USE CASE 4

Customize editing behavior through the macro and initialization file system.

What is it built with?

C

How does it compare?

torvalds/uemacstorvalds/guitarpedalvercel-labs/zero
Stars2,0321,9441,465
LanguageCCC
Setup difficultymoderatehardmoderate
Complexity2/55/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires copying and adjusting a makefile template for your specific Unix system before building.

No license information is given in the README.

In plain English

uEmacs is a text editor that runs in a terminal window. This repository is Linus Torvalds's fork of uEmacs/PK 4.0, which itself is an enhanced version of an older editor called MicroEMACS. The original MicroEMACS was written in the 1980s and uEmacs/PK added improvements while keeping the editor small and portable. The editor is keyboard-driven and displays text across the full terminal screen. It was originally designed to run on a wide range of systems including various Unix flavors, MS-DOS, and VAX/VMS, though support for Amiga, Atari, and Mac was removed at some point. The feature set includes standard editing operations, a paragraph justification command, support for 8-bit ISO Latin characters, filename completion, and the ability to respond to terminal window resize events. A macro or scripting system is also present, based on variables and commands that can be configured through an initialization file. The uEmacs/PK README notes it was maintained by Petri Kutvonen at the University of Helsinki, with Linus Torvalds credited as a contributor to bug fixes. The last official release from Kutvonen was version 4.0.15 in 1996. This GitHub repository is Torvalds's personal copy, which he continues to use and occasionally update for his own purposes, including as a writing tool when composing Linux kernel commit messages. Building the editor on Unix requires copying the provided makefile template, adjusting it for the local system, and running make. The source is written in C and has no external dependencies beyond a standard C library and terminal support.

Copy-paste prompts

Prompt 1
Explain how to build this editor from source using the makefile template for my operating system.
Prompt 2
Walk me through the macro and variable system so I can write my own initialization file.
Prompt 3
Help me understand the history of MicroEMACS and how uEmacs/PK evolved from it.
Prompt 4
Show me the key differences between this editor and modern terminal editors like nano or vim.

Frequently asked questions

What is uemacs?

Linus Torvalds's personal fork of a lightweight terminal text editor descended from 1980s MicroEMACS, still used for writing kernel commit messages.

What language is uemacs written in?

Mainly C. The stack also includes C.

What license does uemacs use?

No license information is given in the README.

How hard is uemacs to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is uemacs for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.