Zgodność sprowadzała się do użycia emacsowych buforów oraz tych samych skrótów klawiaturowych.
W roku 1984 Stallman zaczął pisać nową wersję Emacsa, GNU Emacs, który stał się pierwszym programem projektu GNU. W rok później ukazała się wersja GNU Emacs 15.34, która była już oficjalnie dystrybuowana. 23 lutego 2008 roku Richard Stallman napisał na emacs-devel, iż (po około 20 latach opieki nad programem) chciałby powierzyć projekt Stefanowi Monnier i Chongowi Yidong.
Charakterystyka Emacs składa się z niewielkiego i wydajnego jądra napisanego w C, zawierającego też interpreter dialektu Lispu zwanego Emacs Lisp, oraz z ogromnej nadbudowy napisanej w Lispie i wykonywanej przez to jądro. Dzięki takiej konstrukcji Emacs jest elastyczny, a jego zachowanie można w pełni kontrolować przy użyciu Emacs Lispa.
Rozszerzeniami typowymi dla edytorów programisty, są podświetlanie i automatyczne formatowanie kodu źródłowego, oraz integracja z make, systemami kontroli wersji i kompilatorami. Mniej typowe zastosowania to przeglądanie katalogów, obsługa urządzeń typu modemy, aż do zupełnie nietypowych, jak: graficzna przeglądarka stron WWW, klient poczty elektronicznej, gry komputerowe czy implementacja ELIZY.