Emacs Solo is a personal Emacs configuration built mainly around Emacs’s built-in features. It gives users a modular setup to study and adapt, but its maintainer explicitly says it is not intended to be a complete distribution. To run it, you need Emacs already installed; the project supplies configuration files, not the Emacs program.
What Emacs Solo is—and is not
The Emacs Solo README describes a fast, modular configuration that favors Emacs built-ins over third-party packages. It is organized into reusable modules, and the maintainer describes the code as “over 3000 lines of code.” That is the project’s own description, not an independently audited line count. “Minimalist” here describes the project’s built-in-first spirit, not a tiny codebase.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Learning GNU Emacs, Third Edition | $21.06 | Buy on Amazon |
| 2 |
|
Emacs Lisp - An Introduction | $10.72 | Buy on Amazon |
| 3 |
|
Competitive Programming 4 - Book 1: The Lower Bound of Programming Contests in the 2020s | $20.79 | Buy on Amazon |
| 4 |
|
An Introduction to Programming in Emacs Lisp: Edition 3.10 | $13.92 | Buy on Amazon |
| 5 |
|
Harley Hahn's Emacs Field Guide | $46.50 | Buy on Amazon |
As an Amazon Associate I earn from qualifying purchases.
The README puts the scope plainly: “However, this is not intended to be a distribution.” Emacs Solo reflects its maintainer’s preferences rather than aiming to anticipate every user’s needs. For example, the README notes that it does not include Python-specific Eglot or Tree-sitter settings. It is therefore best approached as a working configuration to explore and customize, not as a turnkey environment for every language or workflow.
Requirements and installation
As of the README accessed on October 3, 2026, Emacs Solo requires the latest stable Emacs release, identified there as Emacs 31.1. The project also notes that some bleeding-edge features may require Emacs compiled from the master branch; those parts are tagged EMACS-32. Because version requirements change, check the Emacs Solo README for the current requirement before setting it up.
#1 Best Overall
With Emacs installed, either clone the repository or copy init.el, early-init.el, and the lisp/ directory into a directory you choose. Start Emacs with that directory as its init directory:
emacs --init-directory=YOUR_DIR
Replace YOUR_DIR with the path to the directory containing the configuration. This command starts the existing Emacs executable with those configuration files; it does not install Emacs.
Rank #2
How the configuration is organized
early-init.elandinit.elhold core setup based on built-in Emacs features.lisp/contains self-contained modules that are loaded frominit.el.
The README recommends leaving these tracked upstream files unchanged if you want to keep updates straightforward. Instead, use the optional local files for personal changes:
Free tools Windows power users keep installed
One-click scans. No signup required.
| File | Purpose | When it runs |
|---|---|---|
custom-vars.el |
Stores settings managed by Emacs Customize. | Managed by Customize. |
private-early-init.el |
For early adjustments such as frame parameters, fonts, startup display colors, or garbage-collection tweaks. | Early in startup. |
private.el |
The intended place for most personal commands, keybindings, or optional package setup. | After startup, lazily on the first idle period. |
These files are optional and guarded so they can be absent. Keeping local changes separate helps avoid editing tracked upstream files, but it is not a guarantee that every local customization will remain compatible with every future change.
What you can do with it
The README presents built-in-oriented workflows for completion, Flymake diagnostics, Dired, Eshell, version-control browsing, news reading, and other editor tasks. Its examples show how to use existing Emacs facilities rather than assuming a separate package for each job:
- Read news with Gnus or Newsticker.
- Use Dired with built-in query-replace to edit text across marked files.
- Browse version-control logs and diffs with Emacs’s version-control commands.
- Use
viper, with project-specific extensions, for a vi-like editing mode.
These are workflows documented by the project, not independently tested claims about how they perform on every system.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Optional external tools
Built-in-focused does not mean every feature works without external software. The README lists command-line programs for selected integrations; they are conditional dependencies, not requirements for every user. Examples include:
| Optional tool | Documented use |
|---|---|
ripgrep |
Faster project grep and xref navigation. |
| Ghostscript | PDF viewing through DocView. |
mpv |
Selected media playback. |
gh |
The configuration’s GitHub interface. |
| Docker or Podman | Its container UI. |
| Language- or tool-specific executables | Particular Flymake diagnostics or formatting integrations. |
The README also lists optional integrations involving gls, curl, wget, rsync, Ollama, Gemini CLI, Claude CLI, khard, yt-dlp, Biome, Prettier, shfmt, ESLint, LanguageTool, and rassumfrassum. Their presence matters only if you want the feature associated with each tool; consult the README’s dependency list to identify the specific integration you plan to use.
Best Value
Who should consider Emacs Solo?
Emacs Solo is a good fit if you want to inspect a substantial, modular configuration, learn from built-in Emacs facilities, and add your own preferences in separate local files. It may be a poor fit if you expect a universal preset, extensive language-specific configuration out of the box, or an environment with no optional system dependencies. The maintainer’s example of missing Python-specific Eglot or Tree-sitter setup illustrates why checking the modules against your own workflow matters.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




