# Install emacs with Homebrew, apk, chocolatey, apt, dnf, MacPorts, Nix, pacman, scoop, winget, zypper

GNU Emacs text editor. Version 30.2 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:emacs
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install emacs
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install emacs
```

  Evidence: MacPorts ports tree: editors/emacs/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add emacs
```

  Evidence: Alpine Linux edge package indexes: emacs from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install emacs
```

  Evidence: Debian stable package indexes: emacs from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install emacs
```

  Evidence: Fedora Rawhide package metadata: emacs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#emacs
```

  Evidence: nixpkgs package indexes: emacs from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- pacman (92%):

```sh
sudo pacman -S emacs
```

  Evidence: Arch Linux sync databases: emacs from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install emacs
```

  Evidence: openSUSE Tumbleweed package metadata: emacs from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Chocolatey (92%):

```sh
choco install Emacs
```

  Evidence: Chocolatey community package catalog: Emacs from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','electron'

- Scoop (92%):

```sh
scoop install extras/emacs
```

  Evidence: Scoop official bucket manifest trees: bucket/emacs.json from https://api.github.com/repos/ScoopInstaller/Extras/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id GNU.Emacs -e
```

  Evidence: Windows Package Manager source index: GNU.Emacs from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:emacs
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/emacs>
- **Version:** 30.2
- **Source summary:** GNU Emacs text editor
- **Homepage:** <https://www.gnu.org/software/emacs/>
- **Repository:** <https://git.savannah.gnu.org/cgit/emacs.git>
- **Upstream docs:** <https://www.gnu.org/software/emacs/documentation.html>
- **License:** GPL-3.0-or-later
- **Source archive:** <https://ftpmirror.gnu.org/gnu/emacs/emacs-30.2.tar.xz>
- **Last updated:** 2026-06-22T14:03:14-07:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- ebrowse (cli)
- emacs (cli)
- emacs-30.2 (cli)
- emacsclient (cli)
- etags (cli)
- ebrowse (alias)
- emacs (alias)
- emacs-30.2 (alias)
- emacsclient (alias)
- etags (alias)

## Dependencies

- gmp
- gnutls
- tree-sitter@0.25

## Build dependencies

- pkgconf
- texinfo

## Uses from macOS

- libxml2
- ncurses

## Install behavior

- Post-install hook: not defined
- Service: declared
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 30.2
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://www.gnu.org/software/emacs/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

GNU Emacs is the GNU project's extensible, customizable text editor and Lisp environment. It is both a daily editor and a programmable application platform, shipped by essentially every Unix-like package manager and widely used through terminal, GUI, daemon, and emacsclient workflows.

### Project history

The Emacs lineage began before GNU: the GNU source tree's HISTORY file says EMACS started as macros on top of the TECO editor and was first operational in late 1976. That original idea, an extensible and self-documenting editor, became one of the defining models for programmable development environments.

Work on GNU Emacs began in 1984 as a fresh implementation for GNU and GNU-like systems with a full-featured Lisp at its core. GNU Emacs 13, the initial public release, was announced on Usenet on 1985-03-20, and the project has kept a long stable-release history in the source tree since then.

Over later decades, GNU Emacs accumulated major editing, programming, package, display, and platform features while keeping Emacs Lisp as the extension language. The NEWS files remain the canonical record of user-visible changes, with Emacs 30 adding items such as default native compilation where libgccjit is available, Android port work, and always-available native JSON support.

### Adoption history

Emacs spread through Unix and free software culture because it was not only an editor but a programmable environment. Its extension model made modes, mail/news clients, shells, version-control interfaces, language tooling, and personal workflows installable or scriptable inside one long-lived process.

Package-manager adoption is unusually broad: GNU Emacs is available through Homebrew, Debian, Ubuntu, Fedora, Arch, Nix, MacPorts, Chocolatey, Scoop, winget, and other systems. That breadth reflects both its age and its continuing role as a baseline developer and writing tool across operating systems.

Modern adoption also depends on package archives and init-file culture. Users typically maintain an init.el or equivalent startup file, install packages, and share configuration snippets; package managers provide the editor binary, while Emacs's own package system and Lisp ecosystem provide much of the user experience.

### How it is used

GNU Emacs is commonly launched as emacs for an interactive session, emacsclient for connecting to a server, or as a terminal/GUI editor depending on the build. Users customize startup through files such as ~/.emacs, ~/.emacs.d/init.el, or XDG-style ~/.config/emacs/init.el, with early-init.el available for earlier startup customization.

Common use spans text editing, programming, project navigation, shells, version control, mail, notes, and literate configuration. Its significance is not one workflow but the fact that many workflows can be implemented in Emacs Lisp and loaded into the same editor.

### Why package nerds care

GNU Emacs is package-nerd bedrock: it is a large, old, highly configurable package with compile-time options, GUI toolkit choices, native compilation, daemon/client modes, and many downstream variants. Installing Emacs is often the start of another package ecosystem managed through Emacs Lisp packages and user configuration.

For maintainers, Emacs is also a portability test case. It spans terminal and graphical builds, Unix-like systems and Windows, optional libraries, and decades of compatibility expectations. That makes it a recurring package-manager benchmark for patches, bottles, build flags, and upgrade migrations.

### Timeline

- 1976: EMACS becomes operational as TECO macros.
- 1984: Work begins on GNU Emacs as a new implementation for GNU and GNU-like systems.
- 1985: GNU Emacs 13 is announced as the initial public release.
- 1997: GNU Emacs 20.1 is released.
- 2001: GNU Emacs 21.1 is released.
- 2012: GNU Emacs 24.1 is released.
- 2018: GNU Emacs 26.1 is released.
- 2025: Emacs 30 NEWS records Emacs 30.2 as a bug-fix release and Emacs 30.1 user-visible changes.

### Related projects

- GNU Emacs is related to earlier TECO-based Emacs systems, XEmacs, Emacs Lisp package archives, and editor ecosystems such as Vim and modern IDEs. In package-manager data it is also connected to helper executables such as emacsclient, etags, and ebrowse.

### Sources

- <https://git.savannah.gnu.org/cgit/emacs.git/plain/etc/HISTORY?h=emacs-30>
- <https://git.savannah.gnu.org/cgit/emacs.git/plain/etc/NEWS?h=emacs-30>
- <https://www.gnu.org/software/emacs/>
- <https://www.gnu.org/software/emacs/documentation.html>
- <https://www.gnu.org/software/emacs/manual>


## Security Notes

broad file, network, media, or database tool signal. formula declares a Homebrew service.

- **Geiger risk:** orange / medium
- broad file, network, media, or database tool signal
- formula declares a Homebrew service


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: ~/.emacs.el, ~/.emacs, ~/.emacs.d/init.el, ~/.config/emacs/init.el, ~/.emacs.d/early-init.el, ~/.config/emacs/early-init.el
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** emacs
- **Version Scheme:** 0
- **Revision:** 2
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - emacs - 1:30.1+1-6: normalized package name match | Debian stable package indexes: emacs from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Emacs editor (metapackage) | https://www.gnu.org/software/emacs/
- Debian apt - emacs-bin-common - 1:30.1+1-6: normalized package name match | Debian stable package indexes: emacs-bin-common from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Emacs editor's shared, architecture dependent files | https://www.gnu.org/software/emacs/
- Debian apt - emacs-common - 1:30.1+1-6: normalized package name match | Debian stable package indexes: emacs-common from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Emacs editor's shared, architecture independent infrastructure | https://www.gnu.org/software/emacs/
- Debian apt - emacs-el - 1:30.1+1-6: normalized package name match | Debian stable package indexes: emacs-el from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Emacs LISP (.el) files | https://www.gnu.org/software/emacs/
- Debian apt - emacs-gtk - 1:30.1+1-6: normalized package name match | Debian stable package indexes: emacs-gtk from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Emacs editor (with GTK+ GUI support) | https://www.gnu.org/software/emacs/
- Debian apt - emacs-lucid - 1:30.1+1-6: normalized package name match | Debian stable package indexes: emacs-lucid from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Emacs editor (with Lucid GUI support) | https://www.gnu.org/software/emacs/
- Debian apt - emacs-nox - 1:30.1+1-6: normalized package name match | Debian stable package indexes: emacs-nox from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Emacs editor (without GUI support) | https://www.gnu.org/software/emacs/
- Debian apt - emacs-pgtk - 1:30.1+1-6: normalized package name match | Debian stable package indexes: emacs-pgtk from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU Emacs editor (with GTK+ Wayland GUI support) | https://www.gnu.org/software/emacs/
- Nix - emacs: normalized package name match | nixpkgs package indexes: emacs from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - emacs - 1:29.3+1-1ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: emacs from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Emacs editor (metapackage) | https://www.gnu.org/software/emacs/
- Ubuntu apt - emacs-bin-common - 1:29.3+1-1ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: emacs-bin-common from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Emacs editor's shared, architecture dependent files | https://www.gnu.org/software/emacs/
- Ubuntu apt - emacs-common - 1:29.3+1-1ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: emacs-common from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Emacs editor's shared, architecture independent infrastructure | https://www.gnu.org/software/emacs/
- Ubuntu apt - emacs-el - 1:29.3+1-1ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: emacs-el from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Emacs LISP (.el) files | https://www.gnu.org/software/emacs/
- Ubuntu apt - emacs-gtk - 1:29.3+1-1ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: emacs-gtk from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Emacs editor (with GTK+ GUI support) | https://www.gnu.org/software/emacs/
- Ubuntu apt - emacs-lucid - 1:29.3+1-1ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: emacs-lucid from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Emacs editor (with Lucid GUI support) | https://www.gnu.org/software/emacs/
- Ubuntu apt - emacs-nox - 1:29.3+1-1ubuntu2: normalized package name match | Ubuntu 24.04 LTS package indexes: emacs-nox from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GNU Emacs editor (without GUI support) | https://www.gnu.org/software/emacs/


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [gnutls](https://www.automicvault.com/pkg/brew/gnutls/) - Runtime dependency declared by Homebrew.
- [tree-sitter@0.25](https://www.automicvault.com/pkg/brew/tree-sitter-0-25/) - Runtime dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [texinfo](https://www.automicvault.com/pkg/brew/texinfo/) - Build dependency declared by Homebrew.
- [cask](https://www.automicvault.com/pkg/brew/cask/) - Popular package that depends on this formula.
- [doxymacs](https://www.automicvault.com/pkg/brew/doxymacs/) - Popular package that depends on this formula.
- [eless](https://www.automicvault.com/pkg/brew/eless/) - Popular package that depends on this formula.
- [nesc](https://www.automicvault.com/pkg/brew/nesc/) - Popular package that depends on this formula.
- [proof-general](https://www.automicvault.com/pkg/brew/proof-general/) - Popular package that depends on this formula.
- [rtags](https://www.automicvault.com/pkg/brew/rtags/) - Popular package that depends on this formula.
- [moe](https://www.automicvault.com/pkg/brew/moe/) - Shares av.db curated category or tags: cli, gnu, productivity, text-editor.
- [zile](https://www.automicvault.com/pkg/brew/zile/) - Shares av.db curated category or tags: cli, gnu, productivity, text-editor.
- [amp](https://www.automicvault.com/pkg/brew/amp/) - Shares av.db curated category or tags: cli, productivity, text-editor.
- [enter-tex](https://www.automicvault.com/pkg/brew/enter-tex/) - Shares av.db curated category or tags: cli, productivity, text-editor.
- [fresh-editor](https://www.automicvault.com/pkg/brew/fresh-editor/) - Shares av.db curated category or tags: cli, productivity, text-editor.
- [joe](https://www.automicvault.com/pkg/brew/joe/) - Shares av.db curated category or tags: cli, productivity, text-editor.
- [jupp](https://www.automicvault.com/pkg/brew/jupp/) - Shares av.db curated category or tags: cli, productivity, text-editor.
- [kibi](https://www.automicvault.com/pkg/brew/kibi/) - Shares av.db curated category or tags: cli, productivity, text-editor.
- [a2ps](https://www.automicvault.com/pkg/brew/a2ps/) - Local package facts share a topical domain. Shared terms: cli, gnu, productivity.

## Combined YAML source

View the package source record on GitHub. [combined/emacs.yml](https://github.com/automic-vault/db/blob/main/combined/emacs.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
