Stallman: one free alternative is not enough for Emacs packages
GNU policy rejects ELPA packages that steer users toward proprietary services even when a free path exists, tightening guidance after debate over Hermes and yt-dlp.
Richard Stallman has restated that GNU policy on references to nonfree software is stricter than some Emacs maintainers had been applying, and that a free client offering one workable free backend does not clear packages that also promote proprietary services or SaaSS.
The clarification came on the emacs-devel list amid arguments over hermes.el, a proposed front end to the Hermes agent, and over tools such as yt-dlp that execute nonfree JavaScript from sites like YouTube. Stallman said he had reviewed what yt-dlp does and that convenience is not a moral argument for treating nonfree code as acceptable. On Hermes, he held that hermes.el is morally linked to the agent because using the package effectively requires the agent, and the agent in turn strongly steers users toward nonfree LLM providers.
Eli Zaretskii had argued that one free alternative is enough if choosing and using it does not require jumping through hoops, and that Emacs is not responsible for a separate free program’s configuration choices. Stallman rejected that reading. The GNU Project’s stance, he wrote, is that this is not enough. Whether a GNU package may reference a free program depends on whether that program itself references or promotes nonfree programs in a significant way. Including hermes.el in ELPA would amount to Emacs recommending it, and thus encouraging the nonfree paths the agent surfaces.
Stallman distinguished user initiative from project suggestion: if a user, on their own, configures connections to nonfree software, that is the user’s responsibility; if Emacs or something it recommends suggests that path, Emacs shares responsibility and should not make the suggestion. He allowed the long-standing exception for briefly mentioning well-known nonfree programs users already know about, such as listing Chrome among browser options, while insisting that exception does not license steering people toward proprietary services.
He also said project contribution wording that appeared to bless any package with at least one free alternative disagreed with actual GNU policy and needed to be corrected. The dispute matters beyond one package: it sets how far Emacs and ELPA may go in packaging AI clients, download helpers, and other bridges that touch proprietary platforms without endorsing them.