In Emacs, everything looks like a service

246 points · 105 comments on HN · read original →

Points and comments are a snapshot, not live.

Emacs behaves like a client that treats external programs and networked services abstractly as services.

The article argues that Emacs's ability to access OS system services, run external programs, and call shell commands allows it to act as a client for many services. It provides a 67-line `wttr.el` example that fetches weather from wttr.in, parses the JSON response into a hash table, and displays a message in the minibuffer. An alternative version delegates network and JSON work to a Python script, calling it via `shell-command-to-string`. The author emphasizes that Elisp's dynamic nature enables improvisation, making nearly any external resource appear as a service.

What commenters are saying

Longtime users affirm that Emacs is more than a text editor: it is a Lisp execution environment with text-editing primitives. One commenter notes that `M-x doctor` is a capability they never had before. Another describes using Emacs for emails, Git, project management, Mastodon, and fleet management, with all applications sharing data. A third contributed a suggestion to set `read-process-output-max` based on `/proc/sys/fs/pipe-max-size` on GNU/Linux. Several commenters emphasize that Emacs's built-in libraries (network API, JSON parser, buffer management) and hooks enable deep system integration.