whatisgithub

What is emacs.d?

purcell/emacs.d — explained in plain English

Analysis updated 2026-06-22

7,064Emacs LispAudience · developerComplexity · 2/5Setup · moderate

In one sentence

A ready-to-use Emacs configuration maintained since 2000 that replaces hours of manual setup with sensible defaults, modern code completion, real-time error highlighting, and support for a wide range of programming languages.

Mindmap

mindmap
  root((repo))
    What it does
      Emacs config baseline
      Modern defaults setup
      Multi-language support
    Features
      Code completion
      Real-time error check
      Better search navigation
    Languages supported
      Haskell Ruby Python
      Rust Clojure JavaScript
      SQL CSS HTML
    Setup
      Clone to emacs.d folder
      Auto package install
      Local overrides file
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Clone this config into your Emacs setup folder to get a modern productive editor for Haskell, Python, Ruby, Rust, or Clojure without manual configuration.

USE CASE 2

Use it as a baseline and add a personal local config file on top to customize keybindings and themes without breaking future updates.

USE CASE 3

Study the configuration as a reference for how to set up Emacs package management, code completion, and syntax checking.

What is it built with?

Emacs LispEmacs

How does it compare?

purcell/emacs.dmagit/magitorg-roam/org-roam
Stars7,0647,0935,962
LanguageEmacs LispEmacs LispEmacs Lisp
Setup difficultymoderatemoderatemoderate
Complexity2/52/53/5
Audiencedeveloperdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Emacs 27.1 or newer, first launch automatically downloads third-party packages and may take a few minutes to complete.

So what is it?

This repository is a ready-to-use configuration for Emacs, a long-established text editor popular among programmers and writers. Emacs out of the box works well but requires a lot of setup before it feels modern and productive. This configuration, maintained by developer Steve Purcell since 2000, is designed to give Emacs a sensible, well-chosen set of defaults without requiring the user to figure everything out from scratch. The configuration includes support for a wide range of programming languages, with the strongest coverage for Haskell, Ruby on Rails, SQL, CSS, JavaScript, HTML, Python, Rust, and Clojure, among others. It sets up automatic code completion as you type, better search and navigation tools for the command bar at the bottom of the screen, and real-time error highlighting so you can see mistakes in your code before you even try to run it. To install it, you clone the repository into a specific folder that Emacs checks on startup. The first time you open Emacs after doing this, it automatically downloads and installs a set of third-party packages that the configuration depends on. After that, you keep the configuration up to date by running a standard git pull command and then updating the packages through a menu inside Emacs. If you want to add your own personal customizations on top of this baseline, the author suggests creating a separate local file rather than modifying the shared config directly, so your changes survive future updates. The configuration is primarily developed for macOS but also works on Linux and Windows. It requires Emacs version 27.1 or newer, and the author recommends always using the latest stable Emacs release.

Copy-paste prompts

Prompt 1
I just cloned purcell/emacs.d into my ~/.emacs.d folder. Walk me through what happens the first time I open Emacs and what packages get downloaded and installed automatically.
Prompt 2
I am using purcell emacs.d and want to add Python LSP support with Pyright. Show me the local config file I should create and what to put in it.
Prompt 3
I want to customize the color theme in purcell/emacs.d without editing the main config. What is the correct way to override it in a local settings file?
Prompt 4
The emacs.d config includes real-time error highlighting. Explain how it works and how I can configure it to use a different linter for JavaScript files.

Frequently asked questions

What is emacs.d?

A ready-to-use Emacs configuration maintained since 2000 that replaces hours of manual setup with sensible defaults, modern code completion, real-time error highlighting, and support for a wide range of programming languages.

What language is emacs.d written in?

Mainly Emacs Lisp. The stack also includes Emacs Lisp, Emacs.

How hard is emacs.d to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is emacs.d for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.