Awesome Emacs

https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg https://api.travis-ci.org/emacs-tw/awesome-emacs.svg?branch=master

A community driven list of useful Emacs packages, libraries and others.

Most of the following packages are available in MELPA634 804 . We recommend installing packages with it.

Table of Contents

Interface Enhancement

  • IDO - [built-in] Interactively do things with buffers and files.
  • Helm2k 396 - (Formerly ‘Anything’) A powerful completion and selection narrowing framework. ( External Guides 1 )
  • Ivy624 169 - flexible, simple tools for minibuffer completion in Emacs.
    • Ivy, a generic completion mechanism for Emacs.
    • Counsel, a collection of Ivy-enhanced versions of common Emacs commands.
    • Swiper, an Ivy-enhanced alternative to isearch.
  • Icicles - An Emacs library that enhances minibuffer completion.
  • smex339 29 - A smart M-x enhancement for Emacs.
  • tabbar47 14 - Display a tab bar in the header line.
  • winner - [built-in] “Undo”(and “redo”) changes in the window configuration with the key commands.
  • Evil553 78 - An e xtensible vi l ayer: manipulate Emacs with Vi key binding.
  • Hydra640 47 - Make bindings that stick around.
  • sublimity242 20 - smooth-scrolling, minimap inspired by the sublime editor.
  • ElScreen45 12 - Utility for multiple screens.
  • god-mode224 18 - Global minor mode for entering Emacs commands without modifier keys.
  • ergoemacs-mode176 47 - Global minor mode to use both common interface keys and ergonomic keys for emacs.
  • workgroups280 13 - Session manager, saves all your opened buffers, their location and sizes on disk to restore later.
  • modalka65 4 - Introduce native modal editing of your own design.
  • ace-popup-menu23 4 - Replace GUI popup menu with something more efficient.
  • multi-compile - Multi target interface to compile.
  • Dashboard117 21 - A startup dashboard which provides certain information about your recent Emacs activities.
  • EXWM858 59 - EXWM turns Emacs into a full-featured tiling X window manager.
    • Helm-EXWM12 2 - EXWM-specific sources for Helm together with an application launchers and switches.
  • Zoom92 8 - Fixed and automatic balanced window layout for Emacs.

File Manager

  • Dired - [built-in] Dir ectory Ed itor. A customizable great file manager.
    • Dired+ - Functional & interface extensions for Dired.
    • dired-hacks206 25 - Collection of useful Dired additions.
    • dired-k53 4 - Highlight Dired buffer by file size, modified time, git status.
  • NeoTree840 114 - A emacs tree plugin like NERD tree for Vim.
  • Sr Speedbar - Same frame speedbar.
  • Direx176 19 - directory tree explorer.
  • ztree128 18 - Directory tree comparison mode.
  • Ranger177 23 - ranger like file manager based on Dired.
  • Sunrise Commander77 17 - Twin-pane file manager for Emacs based on Dired and inspired by Midnight Commander.
  • Treemacs264 31 - a tree layout file explorer for Emacs.
  • Sidebar.el - A customizable file explorer with git integration for emacs.

Navigation

  • windmove - [built-in] Tired with C-x o? Now you can use shift+arrows to jump between windows.
  • Ace jump302 43 - A quick cursor jump mode.
  • Avy561 46 - Jump to visible text using a char-based decision tree.
  • goto-last-change - Move point through buffer-undo-list positions.
  • Helm-swoop477 40 - Efficiently jump between matched string/lines.
  • anzu219 20 - displays current match and total matches.
  • imenu - [built-in] Menus for accessing locations in documents.
  • imenu-anywhere61 15 - IDO/Helm imenu tag selection across all buffers with the same mode.
  • Minimap - A SublimeText-style minimap sidebar.
  • switch-window131 30 - A visual replacement for C-x o.
  • ace-window282 31 - Quickly switch windows.
  • ace-link86 17 - Quickly follow links in org-mode, help-mode, Info-mode, and several other modes.
  • back-button19 3 - Visual navigation through mark rings.
  • bm100 17 - Visual Bookmarks, provides an easy way to navigate in a buffer.
  • buffer-move43 10 - Move or swap buffer to other window.
  • emacs-pophint15 6 - Provide navigation like the Vimperator/KeySnail Hint Mode of Firefox.
  • vertigo.el12 3 - Jump lines using the home row.

Visual

  • undo-tree - Visualize the whole undo history in buffer as a tree, and you can access anywhere in it.
  • highlight-symbol176 35 - Auto/manually highlight the same symbols in code, navigate in them, or replace string.
  • rainbow-delimiters201 15 - Highlights parentheses, brackets, and braces according to their depth.
  • rainbow-mode - Display color on color-code string (hex/rgb) directly.
  • visual-regexp212 16 - Replace via RegExp, with real-time visual feedback directly in the buffer.
    • visual-regexp-steroids121 10 - The same as visual-regexp, but use modern regular expressions instead of Emacs-style.
  • whitespace - [built-in] Visualize blanks (tab/space/newline).
  • linum-relative115 24 - display relative line number in the left margin in emacs.
  • prettify-symbol-mode - [built-in] displaying characters as fancy symbols (e.g. lambda -> λ).
  • typo.el13 3 - Emacs extension for typographical editing.
  • highlight-thing - Light-weight minor mode to highlight thing under point using built-ins.
  • focus116 3 - Dim the font color of text in surrounding paragraphs.
  • beacon196 14 - Never lose your cursor again.
  • dimmer.el31 4 - Interactively highlight which buffer is active by dimming the others.

Editing

  • Multiple cursors1k 138 - Mark, edit multiple lines at once.
  • pangu-spacing59 12 - Minor-mode to automatically add space between CJK and Latin characters.
  • hungry-delete3 1 - Delete an entire block of whitespace at point.
  • Drag Stuff104 14 - Drag Stuff is a minor mode for Emacs that makes it possible to drag stuff (words, region, lines) around in Emacs.
  • expand-region.el727 101 - Increase selected region by semantic units.
  • multifiles.el13 6 - View and edit parts of multiple files in one buffer.
  • lentic88 9 - Create views of the same content in two Emacs buffers.
  • fix-word19 2 - Transform words in Emacs (upcase, downcase, capitalize).
  • string-inflection50 16 - Conversion of text between lowercase, uppercase, camelcase etc.
  • zzz-to-char12 2 - Fancy replacement for `zap-to-char`.
  • ialign22 3 - Interactively align lines using a regular expression.
  • artist-mode - [built-in] Draw ASCII lines, squares, rectangles and poly-lines, ellipses, and circles with your mouse and/or keyboard.

Kill-ring

  • Popup-killring2 1 - Browse kill-ring with popup menu.
  • Browse-kill-ring45 9 - Visually navigate kill-ring.
  • easy-kill63 3 - Kill & Mark Things Easily in Emacs.
  • clipmon - Clipboard monitor for Emacs. Monitors clipboard and pastes contents on change.
  • simpleclip5 1 - Simplified access to the system clipboard.

Project management

  • Projectile2k 419 - Project Interaction Library for Emacs.
  • Prodigy278 20 - Manage external services from within Emacs.
  • Fiplr - An Emacs Fuzzy Find in Project Package.
  • Project-Explorer269 23 - a tree project explorer (integrates with projectile).
  • Find-file-in-project220 53 - Quick access to project files in Emacs.

Programming

  • CEDET - [built-in] an advanced development environment in Emacs.
  • C-xrefactory3 3 - refactoring tool and code browser for C and Java.
  • YASnippets610 91 - A template system that allows you to type an abbreviation and automatically expand it into function templates.
  • tiny13 0 - Templates based on linear range transformations.
  • evil-nerd-commenter198 31 - Comment/uncomment lines efficiently. Like Nerd Commenter in Vim. This program can be used independently without evil-mode.
  • mmm-mode189 18 - allows Multiple Major Modes to coexist in one buffer (ex: Embedded CSS & JS in HTML file).
  • SmartParens1k 147 - Deals with parens pairs and tries to be smart about it.
  • Aggressive-indent224 11 - Keeps your code always indented automatically.
  • indent-guide210 21 - Show vertical lines to guide indentation.
  • Doxymacs - Doxymacs is Doxygen + {X}Emacs.
  • whitespace-cleanup-mode16 3 - Intelligently call whitespace-cleanup on save.
  • realgud - A modular front-end for interacting with external debuggers.
  • ggtags363 41 - Emacs frontend to GNU Global source code tagging system.

Completion

  • Auto-Complete1k 283 - An intelligent auto-completion extension with great interface.
  • Company - A text completion framework.
  • flx397 25 - Fuzzy matching for Emacs like Sublime Text.
  • abbrev - [built-in] Abbreviation expander.
  • emacs-ycmd289 40 - Emacs client for YCM.

Document

  • Helm-dash336 57 - Browse Dash docsets via Helm interface.
  • eldoc - [built-in] shows function arguments / variable doc in minibuffer when coding.

Code Folding

  • vimish-fold142 12 - Vim-like text folding.
  • hideshow - [built-in] Folding regions by balanced-expression code.
    • hideshowvis - Based on hideshow, just display its nodes on fringe.
  • Origami.el140 15 - Feature rich text folding minor mode.

Error Checking

  • FlyMake - [built-in] on-the-fly syntax checks on files using external tools.
  • Flycheck2k 397 - Modern on-the-fly syntax checking meant to be a replacement to FlyMake.

Jump to Definition

  • GNU Global - advanced source code tagging system with jump to definition functionality.
  • Dumb Jump601 74 - easy jump to definition package for multiple languages using ag or grep.

Programming Language

C/C++

  • CC Mode - [built-in] An Emacs and XEmacs mode for editing C and other languages with similar syntax.
  • rtags1k 267 - A C/C++ client/server indexer with for integration with emacs based on clang.
  • emacs-cquery37 4 - Emacs client of cquery, a C/C++/Objective-C language server powered by clang.
  • irony-mode696 130 - A C/C++ minor mode for Emacs powered by libclang.
  • cmake-font-lock7 1 - Enhanced font-lock rules for CMake.
  • function-args88 8 - visual CEDET enhancements for C++.
  • Ebrowse - [built-in] A C++ class browser.

Python

  • Elpy1k 215 - An Emacs Python development environment.
  • anaconda-mode439 71 - Code navigation, documentation lookup and completion for Python.
  • virtualenvwrapper.el145 22 - Manage virtualenv from inside Emacs.

Ruby

  • rvm209 48 Ruby versions manager within Emacs.
  • bundler Interact with gem Bundler from Emacs.
  • inf-ruby225 82 REPL buffer connected to a Ruby subprocess.
  • enhanced-ruby-mode155 48 Enhanced Ruby Mode replaces the emacs ruby mode that comes with ruby. It uses the Ripper class found in ruby 1.9.2 (and later) to parse and indent the source code.
  • yari Yet Another RI interface for Emacs.
  • robe430 38 Code navigation, documentation lookup and completion for Ruby.
  • rubocop9k 2k A Ruby static code analyzer, based on the community Ruby style guide.
  • motion-mode29 11 A package to provide emacs’ major mode for RubyMotion enviroment.
  • rspec-mode197 103 An RSpec minor mode for Emacs.
  • feature-mode180 80 Emacs mode for editing Cucumber plain text stories.
  • rinari378 68 - Rinari Is Not A Rails IDE (it is an Emacs minor mode for Rails).

Lisp Family

  • Paredit - Minor mode for editing parentheses. Strict parenthesis auto-pairing and easy depth adjustment. Compatible with Lisp/Scheme/Clojure.
  • lispy373 48 - Minor mode for editing parenthesis, evaluating and refactoring LISP code with extremely short key bindings. Compatible with Lisp/Scheme/Clojure.
  • Parinfer145 9 - Parinfer for Emacs, simpler Lisp editing.

Common Lisp

  • SLIME - A fully-functional IDE for Common Lisp development, with debugger, REPL.
    • SLY72 13 - A fork of SLIME.
  • common-lisp-snippets19 4 - Yasnippets for Common Lisp.

Scheme

  • Quack - Enhanced Emacs Support for Editing and Running Scheme Code.
  • Geiser - Intergrated development with Guile and Racket.
  • racket-mode330 55 - major modes for Racket: Edit and REPL.

Clojure

Emacs Lisp

  • highlight-defined3 0 - Highlight defined functions’ / variables’ name.
  • ielm - [built-in] A simple Emacs Lisp REPL.
  • elmacro64 7 - Display keyboard macros or latest interactive commands as Emacs Lisp.
  • suggest.el199 13 - Discover elisp functions that do what you want.

Web Development

  • web-mode - major mode for editing various html templates (PHP, JSP, ASP, ERB…etc).
  • emmet451 46 - Emmet support for Emacs.
  • web-beautify159 14 - Format HTML, CSS and JavaScript/JSON by js-beautify.
  • skewer-mode738 48 - live interact with JavaScript, CSS, and HTML in a web-browser.
  • impatient-mode35 2 - See your changes in the browser as you type.
  • restclient.el840 90 - HTTP REST client tool for emacs.
  • elnode338 38 - An evented IO webserver in Emacs Lisp.

JavaScript

  • js2-mode1k 188 - Improved JavaScript editing mode.
  • js-comint.el - Run an inferior javascript REPL process in Emacs.
  • tern - Emacs flavor of the popular JavaScript analysis engine.
  • json-mode155 55 - Major mode for editing JSON files.
  • indium - A JavaScript development environment for Emacs.
  • js2-refactor291 36 - A JavaScript refactoring library for emacs.
  • rjsx-mode170 6 - A JSX major mode for Emacs.
CoffeeScript
  • coffee-mode592 174 - An Emacs major mode for CoffeeScript and IcedCoffeeScript.
TypeScript
  • Tide513 67 - TypeScript Interactive Development Environment for Emacs.
PureScript

PHP

  • php-mode472 143 - Major mode for PHP programming.
  • phpunit.el23 18 - Launch PHP unit tests using phpunit.

Java

  • emacs-eclim86 27 - An Eclipse plugin which exposes Eclipse features through a server interface.
  • malabar-mode364 82 - A better Java mode for Emacs.
  • JDEE311 47 - The JDEE is an add-on software package that turns Emacs into a comprehensive system for creating, editing, debugging, and documenting Java applications.
  • meghanada-emacs289 31 - A Better Java Development Environment for Emacs.

Go

  • Gomode679 132 - Go mode rewrite for Emacs. Provides Go toolchain integration.
  • Goflymake36 14 - Go syntax checker. Wrapper around Emacs flymake for Go.
  • Gocode4k 510 - An autocompletion daemon for the Go programming language.
  • Goerrcheck37 5 - go-errcheck provides an easy way to invoke errcheck from within Emacs.
  • Go-playground20 10 - Local playground for Go code snippets.
  • GoRepl9 3 - A minor emacs mode for Go REPL.
  • gotest.el39 17 - Launch GO unit tests.

C#

Rust

  • rust-mode246 72 - An Emacs major mode for editing Rust code.
  • flycheck-rust49 11 - Better Rust/Cargo support for Flycheck.
  • emacs-racer144 26 - Racer support for Emacs.
  • cargo.el26 14 - Cargo support for Emacs.

Erlang

  • erlang - The official Erlang mode for Emacs.
  • distel277 78 - Distel is a library for Emacs<->Erlang communication, plus a suite of tools built on top of it, such as a debugger front-end.
  • EDTS320 87 - EDTS is meant to be a able to replace Distel but only provides part of the most commonly used of Distel’s features.
  • Wrangler - Wrangler is a mode that supports interactive refactoring of Erlang programs.

Elixir

  • elixir-mode - Emacs major mode for Elixir.
  • alchemist722 86 - Elixir Tooling Integration Into Emacs.

Haskell

  • haskell-mode1k 322 - Major mode for Haskell.
  • structured-haskell-mode458 44 - Minor mode for structured editing of Haskell.
  • HaRe122 14 - Haskell refactoring tool with emacs integration.
  • ghc-mod - Backend to provide e.g. type information with an emacs frontend.
  • intero572 85 - Complete interactive development program for Haskell.

External Guides:

Swift

  • swift-mode51 2 - Emacs support for Apple’s Swift programming language.
  • company-sourcekit190 13 - Completion for Swift projects via SourceKit with the help of SourceKitten.

Scala

  • scala-mode - The definitive scala-mode for emacs.
  • Ensime - ENhanced Scala Interaction Mode for Emacs.
  • sbt-mode85 18 - An emacs mode for interacting with scala sbt and projects.

Lua

  • lua-mode203 71 - A major mode for editing Lua sources in Emacs.

Makefile

SML

  • SML mode - a major Emacs mode for editing Standard ML source code.

Groovy

  • groovy-emacs-modes53 27 - A collection of modes for use with Groovy-related technology – Groovy, Grails, etc.
  • grails.el4 3 - A minor mode for Grails projects.

OCaml

  • tuareg178 44 - a Caml mode for Emacs.
  • TypeRex - a set of tools for developing in OCaml.
  • Merlin229 38 - an assistant for editing OCaml code.

Nim

  • nim-mode33 12 - An Emacs major mode for editing Nim code.

D

  • Emacs-D-Mode48 24 - An Emacs major mode for editing D code.

Elm

  • elm-mode227 53 - An Emacs major mode for editing Elm code.

Stan

  • stan-mode22 5 - An Emacs major mode for editing Stan code.

MIPS Assembly

  • mips-mode4 4 - An emacs major mode for editing MIPS assembly.

RISCV Assembly

  • riscv-mode - An emacs major mode for editing RISCV assembly.

Verilog

  • verilog-mode19 11 - Emacs major mode for verilog with Indentation, Hightlighting and AUTOs.

Keys Cheat Sheet

  • discover.el59 8 - Discover more of emacs with well-categorized context menus.
  • discover-my-major77 4 - Discover key bindings and their meaning for the current Emacs major mode.
  • guide-key203 14 - Displays the available key bindings automatically and dynamically.
  • guide-key-tip17 1 - Tooltip version of guide-key.
  • which-key431 40 - Display available key bindings in popup. Rewrite of guide-key with added features to improve display.
  • cheatsheet34 6 - Create your own customized cheatsheet.
  • helm-descbinds81 12 - Helm interface for Emacs’ describe-bindings.

Note

  • Emacs Muse - a publishing environment for Emacs.
  • Fountain Mode142 16 - a full-featured screenwriting environment for GNU Emacs using the Fountain markup format.
  • guess-language17 8 - Robust automatic language detection (e.g. Arabic, Czech, Danish, etc).

Org-mode

  • Org - [built-in] Write notes, GTD, authoring, publish and wash dishes.
    • org-page121 32 - A static site generator based on org-mode files.
    • org-ioslide183 28 - Export Org document into Google I/O HTML5 slide.
    • org-bullets45 6 - Shows org-mode bullets as pretty UTF-8 characters.
    • org-trello713 58 - Minor mode to synchronize org-mode buffer and trello board.
    • org-protocol-capture-html116 10 - Capture HTML from the browser selection into Emacs as org-mode content.

Version control

  • Magit - Interacting with git.
    • magithub327 38 - Magit interfaces for GitHub.
  • VC - [built-in] Emacs version control interface works with several different version control systems including Bazaar, CVS, Git, Mercurial, Monotone, RCS, SCCS/CSSC, and Subversion.
  • github-clone.el31 14 - Fork and clone Github projects from Emacs.
  • git-rebase-mode200 50 - Major mode for editing git rebase files.
  • git-timemachine431 33 - Step through historic versions of git controlled files.
  • git-gutter548 45 - Indicator the modified lines via git diff.
  • git-messenger99 13 - popup commit message at current line to know why this line was changed.
  • browse-at-remote75 18 - Open page at github/bitbucket from emacs buffers.
  • git-link73 22 - Get the GitHub/Bitbucket/GitLab etc… URL for a buffer location.
  • monky70 17 - An interactive interface for mercurial.
  • aHg - An Emacs front-end for the Mercurial SCM.
  • git-undo - A command for Emacs to regress or “undo” a region back through its Git history.

Integration

Console

  • EShell - [built-in] A shell-like command interpreter implemented in Emacs Lisp.
  • Term - [built-in] A terminal emulator in Emacs.
  • exec-path-from-shell564 52 - Get environment variables such as $PATH from the shell for Mac user.
  • eshell-prompt-extras13 1 - Display extra information and color for your eshell prompt.
  • multi-term - Managing multiple terminal buffers in Emacs.
  • shell-pop71 14 - Quickly toggle a shell with one key action.
  • eshell-up6 1 - Quickly navigate to a specific parent directory in eshell without having to repeatedly typing cd ...
  • fasd27 8 - Emacs integration for the command-line productivity booster fasd.
  • esh-autosuggest - Fish-like history autosuggestions in Eshell.
  • fish-completion - Fallback on fish shell completion for M-x shell and Eshell.

Operating System

Search

  • wgrep166 12 - Writable grep/ack/ag/pt buffer and apply the changes to files.

Ack

  • full-ack - An Emacs front-end for ack.
  • ack-el15 2 - Emacs Interface to Ack-like Tools.

Ag

  • ag.el390 46 - An Emacs frontend to Ag (“the silver searcher” ack replacment).
  • helm-ag288 51 - Ag with helm interface.

Pt

Sift

  • sift.el7 6 - Front-end for sift1k 88 , a fast and powerful grep alternative.

Ripgrep

Pastebin

  • gist.el475 88 - Paste Gist in Emacs.
  • yagist.el28 9 - Yet another Gist integration.
  • dpaste.el7 7 - Emacs mode to post to dpaste.com.
  • jist.el2 0 - Yet another gist client for Emacs.
  • ix.el3 1 - Paste to ix.io pastebin.
  • webpaste.el26 7 - Paste to pastebin-like services.

Google

Blog System

  • Hyde61 24 - An Emacs mode to manage Jekyll blogs.
  • hexo.el46 12 - A frontend UI of Hexo for Emacs.
  • blog-admin202 29 - Write blog in emacs with hexo/org-page/nikola.
  • blog-minimal55 9 - A simple static site generator based on org mode.
  • ox-hugo - Export Org subtrees/files to Markdown with front-matter for Hugo static site generator.

Markdown

LaTeX

  • AUCTeX - an extensible package for writing and formatting TeX files.
  • latex-preview-pane is a minor mode for Emacs that enables you to preview your LaTeX files directly in Emacs.
  • RefTeX - [built-in] Adds support for labels, references, citations, and index entries.

PDF

  • PDF Tools667 66 - major mode for rendering PDF files, much better than DocView, and has much richer set of features.

Internet

Browser

  • EWW - [built-in] EWW, the Emacs Web Wowser, is a web browser for Emacs.
  • emacs-webkit - Emacs-webkit, a webkit browser inside Emacs.

Mail

  • Gnus - [built-in] Reading e-mail and Usenet news.
  • Messages - [built-in] Composing and sending e-mail inside Emacs.
  • mu4e - An e-mail client for Emacs.
  • notmuch - A mail indexer which can serve as a complete client with its emacs integration.
  • Wanderlust - A powerful email and Usenet client for Emacs (IMAP4rev1, NNTP, POP(POP3/APOP), MH/Maildir).
  • mew - A very easy to use e-mail reader and client for Emacs.

IRC

  • ERC - [built-in] A powerful, modular, and extensible IRC client.
  • Riece - An IRC client for Emacs.
  • Rcirc - [built-in] Next generation IRC client.
  • Circe234 38 - A Client for IRC in Emacs.

Chat

  • Weechat.el95 24 - A Weechat-relay client for Emacs.
  • slack562 62 - slack client for Emacs.

Social Network

  • Twittering mode - Major mode for Twitter.
  • SX577 30 - Stack Exchange for Emacs.
    • howdoi22 2 - Instant coding answers via Emacs, a way to query Stack Overflow directly from within Emacs.
  • weibo.emacs90 29 - Sina weibo client in Emacs.

Web Feed

  • Elfeed803 102 - RSS/Atom Reader for Emacs.
  • Newsticker - [built-in] RSS/Atom Reader for Emacs.

DevOps

  • chef-mode15 14 - Emacs mode to edit Chef repositories.
  • emacs-ansible43 10 - Ansible minor mode.
  • puppet-mode4 5 - Edit Puppet 3 manifests with GNU Emacs 24.
  • salt-mode - Edit Salt States with GNU Emacs 24.
  • docker183 26 - Emacs interface to Docker, manipulate docker images, containers & more from Emacs.
  • terraform-mode43 12 - Terraform mode to edit terraform files.

Package Management

Package Manager

  • package.el - [built-in] Install and manage Emacs packages easily.
    • paradox231 26 - Modernizing Emacs’ Package Menu with package ratings, usage statistics, customizability & more.
    • package-utils9 6 - Interactive extensions for package.el .
    • try2 0 - Try out Emacs packages.
  • el-get1k 571 - apt-get style Emacs packages manager.
  • cask923 110 - Manage dependencies for your local Emacs configuration and automate the package development cycle.
    • pallet286 18 - A package management tool for Emacs, built on Cask.
  • quelpa250 18 - Build and install your Emacs Lisp packages on-the-fly directly from source.
  • homebrew-emacs7 5 - Homebrew tap for installing Emacs packages.
  • borg34 9 - Assimilate Emacs packages as Git submodules.
  • straight.el170 11 - Next-generation, purely functional package manager for the Emacs hacker.

Package Configuration

  • use-package2k 200 - A declaration macro to isolate package configuration in a way that is performance-oriented and tidy.
    • req-package135 16 - A use-package wrapper for package runtime dependencies management.
  • ESUP218 18 - Emacs Start Up Profiler. Benchmark Emacs Startup time without ever leaving your Emacs.
  • better-defaults566 91 - A small number of better defaults for Emacs.
  • no-littering18 8 - Help keeping ~/.emacs.d clean.

Package Updates

Library

  • dash.el791 92 - A modern list library.
  • seq.el - [built-in] Sequence manipulation functions.
  • cl-lib.el - [built-in] Common Lisp extensions for Emacs.
  • s.el468 66 - String manipulation library.
  • ht.el94 13 - The missing hash table library for Emacs.
  • f.el272 43 - Modern API for working with files and directories in Emacs.
  • emacs-async376 41 - Simple library for asynchronous processing in Emacs.
  • Grizzl - A small utility library to be used in other Elisp code needing fuzzy search behaviour.
  • ov.el116 8 - Overlay library for Emacs Lisp.
  • Names63 7 - A Namespace implementation for Emacs Lisp.
  • emacs-deferred217 38 - Simple asynchronous functions for Emacs Lisp.
  • EIEIO - [built-in] EIEIO (“Enhanced Implementation of Emacs Interpreted Objects”) provides an Object Oriented layer for Emacs Lisp.
  • popup.el297 79 - Visual Popup Interface Library for Emacs.
  • alert162 30 - A Growl-like alerts notifier for Emacs.
  • gh.el214 64 - GitHub API library for Emacs.
  • request217 46 - A HTTP request library with multiple backends.
  • websocket196 28 - A websocket implementation in elisp, for emacs.

Appearance

Theme

  • Zenburn649 259 - (dark) Vim’s “Zenburn theme” ported to Emacs.
  • Solarized481 147 - (light/dark) Solarized color theme.
  • Doom-themes77 18 - (dark) Inspired by the One Dark/Light UI and syntax themes in Atom.
  • Sanityinc-tomorrow181 35 - (light/dark) An Emacs version of “Tomorrow-themes”.
  • Monokai254 100 - (dark) A port of the popular TextMate theme Monokai.
  • Cyberpunk-theme155 37 - (dark) [256color] Mostly a direct port of the “Cyberpunk Overtone theme”.
  • Ample-theme181 17 - (light/dark) [256color] A low-contrast theme for Emacs.
  • Moe-theme458 41 - (light/dark) [256color] A customizable colorful eye-candy theme. Moe, moe, kyun!
  • Leuven-theme53 6 - [built-in] (light) Awesome Emacs color theme for white backgrounds.
  • Grandshell-theme39 7 - (dark) [256color] Theme with intensive colors.

The above list contains some of the most popular/installed themes. If still unsatisfied, you can also take a look at GNU Emacs Themes Gallery for screenshots of almost all available Emacs themes.

Multimedia

  • mpc - [built-in] An Emacs front end to the Music Player Daemon.
  • EMMS - The Emacs Multimedia System.
  • Bongo108 13 - A flexible and usable media player for GNU Emacs.
  • Dionysos6 4 - A simple music player for Emacs.
  • Mingus62 13 - An Emacs front end to the Music Player Daemon with an interface that resembles ncmpc.

Finance

  • Elbank58 4 - Personal finances application for Emacs.

Fun

  • Nyan-mode375 45 - Let Nyan Cat show you your buffer position in mode line.
  • Zone Mode - [built-in] A buffer obfuscator, or a screensaver.
  • swimmers.el - An emacs screensaver.
  • minesweeper.el - An implementation of minesweeper in emacs.
  • 2048-game.el - An implementation of 2048 in emacs.
  • emacs-xkcd92 8 - Read xkcd from emacs.
  • gnugo.el - The official Emacs Lisp interface to GNU Go.
  • Pacmacs30 3 - Pacman-like game for Emacs.
  • speed-type91 13 - Practice speed/touch typing in Emacs.
  • spray - A speed reading mode for Emacs.
  • fsc.el - Fuck the Speeching Censorship!
  • wttrin50 7 - Emacs frontend for weather web service wttr.in.
  • fireplace441 18 - A cozy fireplace for emacs.
  • clippy40 2 - Show tooltip with function documentation at point.

Starter Kit

Noteworthy Configurations

  • init.el29 7 - Drew Adams : Icicles, bookmark+ to name a few.
  • dot-emacs327 91 - John Wiegley (@jwiegley): Lead maintainer of Emacs, use-package.
  • emacs.org22 0 - Howard Abrams (@howardabrams).
  • .emacs.d690 110 - Magnar Sveen (@magnars) : multiple-cursors, dash, expand-region.
  • Sacha.org61 7 - Sacha Chua (@sachac).
  • emacs110 27 - Johan Andersson (@rejeep).
  • doom338 87 - Henrik Lissner’s (@hlissner) Emacs configuration for the stubborn martian vimmer.
  • emacs.d1k 704 - Chen Bin (@redguardtoo).
  • emacs183 39 - Chris Wanstrath (@defunkt).
  • .emacs.d - Sebastian Wiesner (@lunaryorn): Flycheck.
  • home72 10 - Grant Rhettke (@grettke).
  • oremacs89 10 - Oleh Krehel (@abo-abo) : Swiper, Ivy, Hydra, Avy.
  • .emacs.d13 3 - Kaushal Modi (@kaushalmodi).
  • DotEmacs9 2 - Eric James Michael Ritz (@ejmr).
  • emacs-tv-config10 0 - Thierry Volpiatto (@thierryvolpiatto) : Helm Maintainer.
  • emacs.el - Jorgen Schäfer (@jorgenschaefer) : Elpy, Circe.
  • emacsconfig.html - Dennis Ogbe.
  • emacs455 66 - Joe di Castro @joedicastro.
  • emacs.d2 0 - Julien Fantin : use-package, good config organisation system.

Tutorials

Links and resources

Contributing

Your contributions are always welcome! Please submit a pull request or create an issue to add a new package, library or software to the list.

Before contributing, please read this tiny guideline:

The Order of Items

Please don’t rearrange the package ordering without any reason! The items should be sorted by its popularity ( roughly, because it’s impossible to have a precious standard. e.g. most of people would use it; recommended for every newbie…), instead of your personal preference.

For example, Evil is obviously not a package that every Emacser needs. So please don’t move it onto the top of its category.

In contrast, if you think a package is recommended for every Emacser (especially for a newbie), just place it at a higher place in the list.

Emacs Built-In Packages

If a package is available in the latest version of Emacs, please remember to add a [built-in] tag in the front of the description.

Generate “Table of Contents”

After you have added a package or edited the README.org, and before committing and issuing a pull request on this awesome list, use gen-toc.el to update the Table of Contents.

Open gen-toc.el and M-x eval-buffer. Then change buffers to README.org. Subsequently, issue M-x awesome-emacs-gen-toc in the README.org buffer. If a new category of packages has been added in your commit, the Table of Contents section will be revised and updated.

Other Awesome Lists

A curated list of awesome lists can be found at awesome.re.

License

https://licensebuttons.net/p/zero/1.0/88x31.png

To the extent possible under law, emacs.tw has waived all copyright and related or neighboring rights to this work.