Skip to content
SPECIFICTION
Get listed

GNU ELPA

elpa.gnu.org

Free plan Open source WebSelf-hosted
Visit elpa.gnu.org
Spec score 8.6 #8 of 28 in Package Registries

Spec sheet

What it does
GNU ELPA is the default package repository for GNU Emacs and distributes Emacs Lisp extensions separately from the core editor.Read 15 Oct 2026 · elpa.gnu.org
Purpose
GNU ELPA is the default package repository for GNU Emacs.Read 4 Oct 2026 · elpa.gnu.org
Security
The contribution page warns that a package can pose a security risk if its maintainer’s repository access is compromised.Read 4 Oct 2026 · elpa.gnu.org
Support
The site directs users to report bugs with `M-x report-emacs-bug` and suggests the help-gnu-emacs mailing list for help.Read 4 Oct 2026 · elpa.gnu.org
Archive format
An archive is a web-accessible directory containing single-file Lisp packages or tar files with multiple files.Read 15 Oct 2026 · gnu.org
Build and releases
The build server regularly synchronizes package repositories and releases a new version when a commit changes the package’s Version header.Read 4 Oct 2026 · elpa.gnu.org
Build extensibility
Package specifications support custom documentation files, NEWS files, build targets, shell commands, version maps and branch selection.Read 15 Oct 2026 · github.com
Completion integrations
The cape package provides completion-at-point backends and adapters for Company, Corfu and Emacs's default completion UI.Read 15 Oct 2026 · elpa.gnu.org
Contribution channel
Prospective contributors are asked to email emacs-devel with a package description, public repository link and preferred GNU or NonGNU archive.Read 15 Oct 2026 · elpa.gnu.org
Contributor requirement
All significant past and present contributors to GNU ELPA packages must sign the FSF copyright assignment.Read 4 Oct 2026 · elpa.gnu.org
Copyright assignment
Significant past and present contributors to GNU ELPA packages must assign copyright to the Free Software Foundation.Read 15 Oct 2026 · elpa.gnu.org
Dependency handling
Emacs automatically downloads required dependencies when installing a package, stopping if a required dependency is unavailable.Read 15 Oct 2026 · gnu.org
Development archive
GNU ELPA publishes a separate GNU-devel ELPA archive for development or bleeding-edge package versions.Read 15 Oct 2026 · elpa.gnu.org
Free software criterion
A package’s core functionality must work on a system using only free software, subject to case-by-case exceptions.Read 4 Oct 2026 · elpa.gnu.org
Independent praise: built-in ecosystem
Emacs Redux highlights that GNU ELPA packages such as cl-lib, eldoc and xref originated with Emacs development and integrate closely with the editor.Read 15 Oct 2026 · emacsredux.com
Independent praise: official status
Emacs Redux describes GNU ELPA as the official Emacs package repository and notes that some packages are bundled with Emacs.Read 15 Oct 2026 · emacsredux.com
Independent security observation
The Emacs manual says archive packages should be trusted because installing them can run code with the user's permissions, and recommends cryptographic signing to improve security.Read 15 Oct 2026 · gnu.org
Install location
Installed packages are placed under the package-user-dir directory, which defaults to ~/.emacs.d/elpa/.Read 15 Oct 2026 · gnu.org
Installation command
Users can browse and install packages from inside Emacs with M-x list-packages.Read 15 Oct 2026 · elpa.gnu.org
License policy
Submitted packages must use a GPL-compatible license, with GPLv3 or later preferred.Read 15 Oct 2026 · elpa.gnu.org
Limit: contributor burden
Emacs Redux reports that copyright paperwork, the ELPA repository workflow and the Emacs bug tracker discourage many outside contributors.Read 15 Oct 2026 · emacsredux.com
Limit: outages
Reddit users reported GNU ELPA and related GNU sites being unreachable for hours during a June 2024 incident, with packet loss and 443 errors.Read 15 Oct 2026 · reddit.com
Limit: package freshness complaint
A Reddit user reported that an older Magit package in ELPA caused compatibility problems and that switching to MELPA resolved the installation issue.Read 15 Oct 2026 · reddit.com
Limit: refresh hangs
A Reddit report describes package-refresh-contents hanging indefinitely on Debian 11 while accessing GNU and NonGNU ELPA, with IPv6 or site connectivity suspected.Read 15 Oct 2026 · reddit.com
Limit: smaller catalog
Emacs Redux reported GNU ELPA hosting about 280 packages at the time, far fewer than MELPA's roughly 5,000 packages.Read 15 Oct 2026 · emacsredux.com
Local hosting
The repository documentation describes deploying a locally hosted archive by generating archive files and serving the archive directory over HTTP.Read 15 Oct 2026 · github.com
Maintainer compromise risk
GNU ELPA's contribution page states that a compromised package maintainer repository can create a security risk for users.Read 15 Oct 2026 · elpa.gnu.org
Maker headquarters
The Free Software Foundation lists its mailing address in Boston, Massachusetts 02196.Read 15 Oct 2026 · fsf.org
Maker history
The Free Software Foundation was created in 1985 as a tax-exempt charity supporting free software development.Read 15 Oct 2026 · gnu.org
Mirror cadence
The independent emacsmirror repository describes itself as a GNU ELPA mirror updated hourly.Read 15 Oct 2026 · github.com
Notable repository date
The mirrored GNU ELPA README is dated 2026-01-12 and identifies the repository as containing archive sources, deployment scripts and auxiliary files.Read 15 Oct 2026 · github.com
OAuth2 package
The oauth2 package implements OAuth 2.0 and exposes functions for obtaining, storing and refreshing access tokens.Read 15 Oct 2026 · elpa.gnu.org
Org package
The Org package provides notes, document authoring, computational notebooks, literate programming, to-do lists and project planning in plain text.Read 15 Oct 2026 · elpa.gnu.org
Package access
Users can browse packages or use `M-x list-packages` in Emacs.Read 4 Oct 2026 · elpa.gnu.org
Package archives setting
Emacs selects archives through the package-archives variable, whose default list includes GNU ELPA and NonGNU ELPA.Read 15 Oct 2026 · gnu.org
Package browsing
The archive publishes a web index listing package names, versions, descriptions and ranking percentages.Read 15 Oct 2026 · elpa.gnu.org
Package installation
Packages can be installed in Emacs with `package-install` or `list-packages`.Read 4 Oct 2026 · elpa.gnu.org
Package metadata
Individual package pages can show descriptions, maintainers, upstream websites, dependencies, release files, news and manuals.Read 15 Oct 2026 · elpa.gnu.org
Package pages
Each accepted package gets a page that can include its description, recent releases, changelog preview, and rendered manual.Read 4 Oct 2026 · elpa.gnu.org
Package scope
The archive lists packages with versions and descriptions.Read 4 Oct 2026 · elpa.gnu.org
Package signing
The GNU package archive public key is shipped with Emacs in etc/package-keyring.gpg for signature checking.Read 15 Oct 2026 · gnu.org
Project package
The project package supplies generic infrastructure for detecting projects and listing project files, ignored paths and external roots.Read 15 Oct 2026 · elpa.gnu.org
Security exposure
The documentation warns that installed packages can execute arbitrary code with the installing user's permissions.Read 15 Oct 2026 · gnu.org
Source layout
The public repository keeps package specifications on the main branch, package code in package branches and deployment scripts in an elpa-admin branch.Read 15 Oct 2026 · github.com
Submission
Package submissions are sent by email to the emacs-devel mailing list with a description, public Git repository link, and preferred archive.Read 4 Oct 2026 · elpa.gnu.org
Submission requirements
The build system requires package conventions including a version number, dependency declarations and an author or maintainer email address.Read 15 Oct 2026 · elpa.gnu.org

Plans and prices

GNU ELPA Free Free GNU Emacs packages · GPL-compatible licensing · FSF copyright assignment for significant contributors Read 15 Oct 2026 · elpa.gnu.org

Every GNU ELPA plan and price →

Where Specifiction places it

Alternatives to GNU ELPAAll alternatives →