Awesome Emacs
A community driven list of useful Emacs packages, libraries and others.
Most of the following packages are available in MELPA 634 804 . We recommend installing packages with it.
Table of Contents
Interface Enhancement
IDO - [built-in]
Interactively do things with buffers and files.
Helm 2k 396 - (Formerly ‘Anything’) A powerful completion and selection narrowing framework. ( External Guides 1 )
Ivy 624 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.
smex 339 29 - A smart M-x enhancement for Emacs.
tabbar 47 14 - Display a tab bar in the header line.
winner - [built-in]
“Undo”(and “redo”) changes in the window configuration with the key commands.
Evil 553 78 - An e xtensible vi l ayer: manipulate Emacs with Vi key binding.
Hydra 640 47 - Make bindings that stick around.
sublimity 242 20 - smooth-scrolling, minimap inspired by the sublime editor.
ElScreen 45 12 - Utility for multiple screens.
god-mode 224 18 - Global minor mode for entering Emacs commands without modifier keys.
ergoemacs-mode 176 47 - Global minor mode to use both common interface keys and ergonomic keys for emacs.
workgroups2 80 13 - Session manager, saves all your opened buffers, their location and sizes on disk to restore later.
modalka 65 4 - Introduce native modal editing of your own design.
23 4 - Replace GUI popup menu with something more efficient.
multi-compile - Multi target interface to compile.
Dashboard 117 21 - A startup dashboard which provides certain information about your recent Emacs activities.
EXWM 858 59 - EXWM turns Emacs into a full-featured tiling X window manager.
Helm-EXWM 12 2 - EXWM-specific sources for Helm together with an application launchers and switches.
Zoom 92 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-hacks 206 25 - Collection of useful Dired additions.
dired-k 53 4 - Highlight Dired buffer by file size, modified time, git status.
NeoTree 840 114 - A emacs tree plugin like NERD tree for Vim.
Sr Speedbar - Same frame speedbar.
Direx 176 19 - directory tree explorer.
ztree 128 18 - Directory tree comparison mode.
Ranger 177 23 - ranger like file manager based on Dired.
Sunrise Commander 77 17 - Twin-pane file manager for Emacs based on Dired and inspired by Midnight Commander.
Treemacs 264 31 - a tree layout file explorer for Emacs.
- 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 jump 302 43 - A quick cursor jump mode.
Avy 561 46 - Jump to visible text using a char-based decision tree.
goto-last-change - Move point through buffer-undo-list positions.
Helm-swoop 477 40 - Efficiently jump between matched string/lines.
anzu 219 20 - displays current match and total matches.
imenu - [built-in]
Menus for accessing locations in documents.
61 15 - IDO/Helm imenu tag selection across all buffers with the same mode.
Minimap - A SublimeText-style minimap sidebar.
switch-window 131 30 - A visual replacement for C-x o
.
ace-window 282 31 - Quickly switch windows.
ace-link 86 17 - Quickly follow links in org-mode
, help-mode
, Info-mode
, and several other modes.
back-button 19 3 - Visual navigation through mark rings.
bm 100 17 - Visual Bookmarks, provides an easy way to navigate in a buffer.
buffer-move 43 10 - Move or swap buffer to other window.
emacs-pophint 15 6 - Provide navigation like the Vimperator/KeySnail Hint Mode of Firefox.
vertigo.el 12 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-symbol 176 35 - Auto/manually highlight the same symbols in code, navigate in them, or replace string.
rainbow-delimiters 201 15 - Highlights parentheses, brackets, and braces according to their depth.
rainbow-mode - Display color on color-code string (hex/rgb) directly.
visual-regexp 212 16 - Replace via RegExp, with real-time visual feedback directly in the buffer.
visual-regexp-steroids 121 10 - The same as visual-regexp, but use modern regular expressions instead of Emacs-style.
whitespace - [built-in]
Visualize blanks (tab/space/newline).
linum-relative 115 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.el 13 3 - Emacs extension for typographical editing.
highlight-thing - Light-weight minor mode to highlight thing under point using built-ins.
focus 116 3 - Dim the font color of text in surrounding paragraphs.
beacon 196 14 - Never lose your cursor again.
dimmer.el 31 4 - Interactively highlight which buffer is active by dimming the others.
Editing
Multiple cursors 1k 138 - Mark, edit multiple lines at once.
pangu-spacing 59 12 - Minor-mode to automatically add space between CJK and Latin characters.
hungry-delete 3 1 - Delete an entire block of whitespace at point.
Drag Stuff 104 14 - Drag Stuff is a minor mode for Emacs that makes it possible to drag stuff (words, region, lines) around in Emacs.
expand-region.el 727 101 - Increase selected region by semantic units.
multifiles.el 13 6 - View and edit parts of multiple files in one buffer.
lentic 88 9 - Create views of the same content in two Emacs buffers.
fix-word 19 2 - Transform words in Emacs (upcase, downcase, capitalize).
string-inflection 50 16 - Conversion of text between lowercase, uppercase, camelcase etc.
zzz-to-char 12 2 - Fancy replacement for `zap-to-char`.
ialign 22 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
2 1 - Browse kill-ring with popup menu.
Browse-kill-ring 45 9 - Visually navigate kill-ring.
easy-kill 63 3 - Kill & Mark Things Easily in Emacs.
clipmon - Clipboard monitor for Emacs. Monitors clipboard and pastes contents on change.
simpleclip 5 1 - Simplified access to the system clipboard.
Project management
Projectile 2k 419 - Project Interaction Library for Emacs.
Prodigy 278 20 - Manage external services from within Emacs.
Fiplr - An Emacs Fuzzy Find in Project Package.
Project-Explorer 269 23 - a tree project explorer (integrates with projectile).
Find-file-in-project 220 53 - Quick access to project files in Emacs.
Programming
CEDET - [built-in]
an advanced development environment in Emacs.
C-xrefactory 3 3 - refactoring tool and code browser for C and Java.
YASnippets 610 91 - A template system that allows you to type an abbreviation and automatically expand it into function templates.
tiny 13 0 - Templates based on linear range transformations.
198 31 - Comment/uncomment lines efficiently. Like Nerd Commenter in Vim. This program can be used independently without evil-mode.
mmm-mode 189 18 - allows Multiple Major Modes to coexist in one buffer (ex: Embedded CSS & JS in HTML file).
SmartParens 1k 147 - Deals with parens pairs and tries to be smart about it.
Aggressive-indent 224 11 - Keeps your code always indented automatically.
indent-guide 210 21 - Show vertical lines to guide indentation.
Doxymacs - Doxymacs is Doxygen + {X}Emacs.
whitespace-cleanup-mode 16 3 - Intelligently call whitespace-cleanup on save.
realgud - A modular front-end for interacting with external debuggers.
ggtags 363 41 - Emacs frontend to GNU Global source code tagging system.
Completion
Auto-Complete 1k 283 - An intelligent auto-completion extension with great interface.
Company - A text completion framework.
flx 397 25 - Fuzzy matching for Emacs like Sublime Text.
abbrev - [built-in]
Abbreviation expander.
emacs-ycmd 289 40 - Emacs client for YCM.
Document
Helm-dash 336 57 - Browse Dash docsets via Helm interface.
eldoc - [built-in]
shows function arguments / variable doc in minibuffer when coding.
Code Folding
vimish-fold 142 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.el 140 15 - Feature rich text folding minor mode.
Error Checking
FlyMake - [built-in]
on-the-fly syntax checks on files using external tools.
Flycheck 2k 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 Jump 601 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.
rtags 1k 267 - A C/C++ client/server indexer with for integration with emacs based on clang.
emacs-cquery 37 4 - Emacs client of cquery , a C/C++/Objective-C language server powered by clang.
irony-mode 696 130 - A C/C++ minor mode for Emacs powered by libclang.
cmake-font-lock 7 1 - Enhanced font-lock rules for CMake.
function-args 88 8 - visual CEDET enhancements for C++.
Ebrowse - [built-in]
A C++ class browser.
Python
Elpy 1k 215 - An Emacs Python development environment.
anaconda-mode 439 71 - Code navigation, documentation lookup and completion for Python.
virtualenvwrapper.el 145 22 - Manage virtualenv from inside Emacs.
Ruby
rvm 209 48 Ruby versions manager within Emacs.
bundler Interact with gem Bundler from Emacs.
inf-ruby 225 82 REPL buffer connected to a Ruby subprocess.
enhanced-ruby-mode 155 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.
robe 430 38 Code navigation, documentation lookup and completion for Ruby.
rubocop 9k 2k A Ruby static code analyzer, based on the community Ruby style guide.
motion-mode 29 11 A package to provide emacs’ major mode for RubyMotion enviroment.
rspec-mode 197 103 An RSpec minor mode for Emacs.
feature-mode 180 80 Emacs mode for editing Cucumber plain text stories.
rinari 378 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.
lispy 373 48 - Minor mode for editing parenthesis, evaluating and refactoring LISP code with extremely short key bindings. Compatible with Lisp/Scheme/Clojure.
Parinfer 145 9 - Parinfer for Emacs, simpler Lisp editing.
Common Lisp
SLIME - A fully-functional IDE for Common Lisp development, with debugger, REPL.
SLY 72 13 - A fork of SLIME.
common-lisp-snippets 19 4 - Yasnippets for Common Lisp.
Scheme
Quack - Enhanced Emacs Support for Editing and Running Scheme Code.
Geiser - Intergrated development with Guile and Racket.
racket-mode 330 55 - major modes for Racket: Edit and REPL.
Clojure
Emacs Lisp
highlight-defined 3 0 - Highlight defined functions’ / variables’ name.
ielm - [built-in]
A simple Emacs Lisp REPL.
elmacro 64 7 - Display keyboard macros or latest interactive commands as Emacs Lisp.
suggest.el 199 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).
emmet 451 46 - Emmet support for Emacs.
web-beautify 159 14 - Format HTML, CSS and JavaScript/JSON by js-beautify.
skewer-mode 738 48 - live interact with JavaScript, CSS, and HTML in a web-browser.
impatient-mode 35 2 - See your changes in the browser as you type.
restclient.el 840 90 - HTTP REST client tool for emacs.
elnode 338 38 - An evented IO webserver in Emacs Lisp.
JavaScript
js2-mode 1k 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-mode 155 55 - Major mode for editing JSON files.
indium - A JavaScript development environment for Emacs.
js2-refactor 291 36 - A JavaScript refactoring library for emacs.
rjsx-mode 170 6 - A JSX major mode for Emacs.
CoffeeScript
coffee-mode 592 174 - An Emacs major mode for CoffeeScript and IcedCoffeeScript.
TypeScript
Tide 513 67 - TypeScript Interactive Development Environment for Emacs.
PureScript
PHP
php-mode 472 143 - Major mode for PHP programming.
phpunit.el 23 18 - Launch PHP unit tests using phpunit.
Java
emacs-eclim 86 27 - An Eclipse plugin which exposes Eclipse features through a server interface.
malabar-mode 364 82 - A better Java mode for Emacs.
JDEE 311 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-emacs 289 31 - A Better Java Development Environment for Emacs.
Go
Gomode 679 132 - Go mode rewrite for Emacs. Provides Go toolchain integration.
Goflymake 36 14 - Go syntax checker. Wrapper around Emacs flymake for Go.
Gocode 4k 510 - An autocompletion daemon for the Go programming language.
Goerrcheck 37 5 - go-errcheck provides an easy way to invoke errcheck from within Emacs.
Go-playground 20 10 - Local playground for Go code snippets.
GoRepl 9 3 - A minor emacs mode for Go REPL.
gotest.el 39 17 - Launch GO unit tests.
C#
Rust
rust-mode 246 72 - An Emacs major mode for editing Rust code.
flycheck-rust 49 11 - Better Rust/Cargo support for Flycheck.
emacs-racer 144 26 - Racer support for Emacs.
cargo.el 26 14 - Cargo support for Emacs.
Erlang
erlang - The official Erlang mode for Emacs.
distel 277 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.
EDTS 320 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
Haskell
haskell-mode 1k 322 - Major mode for Haskell.
structured-haskell-mode 458 44 - Minor mode for structured editing of Haskell.
HaRe 122 14 - Haskell refactoring tool with emacs integration.
ghc-mod - Backend to provide e.g. type information with an emacs frontend.
intero 572 85 - Complete interactive development program for Haskell.
External Guides:
Swift
swift-mode 51 2 - Emacs support for Apple’s Swift programming language.
company-sourcekit 190 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-mode 85 18 - An emacs mode for interacting with scala sbt and projects.
Lua
lua-mode 203 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-modes 53 27 - A collection of modes for use with Groovy-related technology – Groovy, Grails, etc.
grails.el 4 3 - A minor mode for Grails projects.
OCaml
tuareg 178 44 - a Caml mode for Emacs.
TypeRex - a set of tools for developing in OCaml.
Merlin 229 38 - an assistant for editing OCaml code.
Nim
nim-mode 33 12 - An Emacs major mode for editing Nim code.
D
Elm
elm-mode 227 53 - An Emacs major mode for editing Elm code.
Stan
stan-mode 22 5 - An Emacs major mode for editing Stan code.
MIPS Assembly
mips-mode 4 4 - An emacs major mode for editing MIPS assembly.
RISCV Assembly
riscv-mode - An emacs major mode for editing RISCV assembly.
Verilog
verilog-mode 19 11 - Emacs major mode for verilog with Indentation, Hightlighting and AUTOs.
Keys Cheat Sheet
discover.el 59 8 - Discover more of emacs with well-categorized context menus.
discover-my-major 77 4 - Discover key bindings and their meaning for the current Emacs major mode.
guide-key 203 14 - Displays the available key bindings automatically and dynamically.
guide-key-tip 17 1 - Tooltip version of guide-key.
which-key 431 40 - Display available key bindings in popup. Rewrite of guide-key with added features to improve display.
cheatsheet 34 6 - Create your own customized cheatsheet.
helm-descbinds 81 12 - Helm interface for Emacs’ describe-bindings
.
Note
Emacs Muse - a publishing environment for Emacs.
Fountain Mode 142 16 - a full-featured screenwriting environment for GNU Emacs using the Fountain markup format.
guess-language 17 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-page 121 32 - A static site generator based on org-mode files.
org-ioslide 183 28 - Export Org document into Google I/O HTML5 slide.
org-bullets 45 6 - Shows org-mode bullets as pretty UTF-8 characters.
org-trello 713 58 - Minor mode to synchronize org-mode buffer and trello board.
org-protocol-capture-html 116 10 - Capture HTML from the browser selection into Emacs as org-mode content.
Version control
Magit - Interacting with git.
magithub 327 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.el 31 14 - Fork and clone Github projects from Emacs.
git-rebase-mode 200 50 - Major mode for editing git rebase files.
git-timemachine 431 33 - Step through historic versions of git controlled files.
git-gutter 548 45 - Indicator the modified lines via git diff.
git-messenger 99 13 - popup commit message at current line to know why this line was changed.
browse-at-remote 75 18 - Open page at github/bitbucket from emacs buffers.
git-link 73 22 - Get the GitHub/Bitbucket/GitLab etc… URL for a buffer location.
monky 70 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-shell 564 52 - Get environment variables such as $PATH from the shell for Mac user.
13 1 - Display extra information and color for your eshell prompt.
multi-term - Managing multiple terminal buffers in Emacs.
shell-pop 71 14 - Quickly toggle a shell with one key action.
eshell-up 6 1 - Quickly navigate to a specific parent directory in eshell without having to repeatedly typing cd ..
.
fasd 27 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
wgrep 166 12 - Writable grep/ack/ag/pt buffer and apply the changes to files.
Ack
full-ack - An Emacs front-end for ack.
ack-el 15 2 - Emacs Interface to Ack-like Tools.
Ag
ag.el 390 46 - An Emacs frontend to Ag (“the silver searcher” ack replacment).
helm-ag 288 51 - Ag with helm interface.
Pt
Sift
sift.el 7 6 - Front-end for sift 1k 88 , a fast and powerful grep alternative.
Ripgrep
Pastebin
gist.el 475 88 - Paste Gist in Emacs.
yagist.el 28 9 - Yet another Gist integration.
dpaste.el 7 7 - Emacs mode to post to dpaste.com.
jist.el 2 0 - Yet another gist client for Emacs.
ix.el 3 1 - Paste to ix.io pastebin.
webpaste.el 26 7 - Paste to pastebin-like services.
Google
Blog System
Hyde 61 24 - An Emacs mode to manage Jekyll blogs.
hexo.el 46 12 - A frontend UI of Hexo for Emacs.
blog-admin 202 29 - Write blog in emacs with hexo/org-page/nikola.
blog-minimal 55 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 Tools 667 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.
Circe 234 38 - A Client for IRC in Emacs.
Chat
Weechat.el 95 24 - A Weechat-relay client for Emacs.
slack 562 62 - slack client for Emacs.
Social Network
Twittering mode - Major mode for Twitter.
SX 577 30 - Stack Exchange for Emacs.
howdoi 22 2 - Instant coding answers via Emacs, a way to query Stack Overflow directly from within Emacs.
weibo.emacs 90 29 - Sina weibo client in Emacs.
Web Feed
Elfeed 803 102 - RSS/Atom Reader for Emacs.
Newsticker - [built-in]
RSS/Atom Reader for Emacs.
DevOps
chef-mode 15 14 - Emacs mode to edit Chef repositories.
emacs-ansible 43 10 - Ansible minor mode.
puppet-mode 4 5 - Edit Puppet 3 manifests with GNU Emacs 24.
salt-mode - Edit Salt States with GNU Emacs 24.
docker 183 26 - Emacs interface to Docker, manipulate docker images, containers & more from Emacs.
terraform-mode 43 12 - Terraform mode to edit terraform files.
Package Management
Package Manager
package.el - [built-in]
Install and manage Emacs packages easily.
paradox 231 26 - Modernizing Emacs’ Package Menu with package ratings, usage statistics, customizability & more.
package-utils 9 6 - Interactive extensions for package.el .
try 2 0 - Try out Emacs packages.
el-get 1k 571 - apt-get style Emacs packages manager.
cask 923 110 - Manage dependencies for your local Emacs configuration and automate the package development cycle.
pallet 286 18 - A package management tool for Emacs, built on Cask.
quelpa 250 18 - Build and install your Emacs Lisp packages on-the-fly directly from source.
homebrew-emacs 7 5 - Homebrew tap for installing Emacs packages.
borg 34 9 - Assimilate Emacs packages as Git submodules.
straight.el 170 11 - Next-generation, purely functional package manager for the Emacs hacker.
Package Configuration
use-package 2k 200 - A declaration macro to isolate package configuration in a way that is performance-oriented and tidy.
req-package 135 16 - A use-package wrapper for package runtime dependencies management.
ESUP 218 18 - Emacs Start Up Profiler. Benchmark Emacs Startup time without ever leaving your Emacs.
better-defaults 566 91 - A small number of better defaults for Emacs.
no-littering 18 8 - Help keeping ~/.emacs.d clean.
Package Updates
Library
dash.el 791 92 - A modern list library.
seq.el - [built-in]
Sequence manipulation functions.
cl-lib.el - [built-in]
Common Lisp extensions for Emacs.
s.el 468 66 - String manipulation library.
ht.el 94 13 - The missing hash table library for Emacs.
f.el 272 43 - Modern API for working with files and directories in Emacs.
emacs-async 376 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.el 116 8 - Overlay library for Emacs Lisp.
Names 63 7 - A Namespace implementation for Emacs Lisp.
emacs-deferred 217 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.
297 79 - Visual Popup Interface Library for Emacs.
alert 162 30 - A Growl-like alerts notifier for Emacs.
gh.el 214 64 - GitHub API library for Emacs.
request 217 46 - A HTTP request library with multiple backends.
websocket 196 28 - A websocket implementation in elisp, for emacs.
Appearance
Theme
Zenburn 649 259 - (dark) Vim’s “Zenburn theme” ported to Emacs.
Solarized 481 147 - (light/dark) Solarized color theme.
Doom-themes 77 18 - (dark) Inspired by the One Dark/Light UI and syntax themes in Atom.
Sanityinc-tomorrow 181 35 - (light/dark) An Emacs version of “Tomorrow-themes”.
Monokai 254 100 - (dark) A port of the popular TextMate theme Monokai.
Cyberpunk-theme 155 37 - (dark) [256color] Mostly a direct port of the “Cyberpunk Overtone theme”.
Ample-theme 181 17 - (light/dark) [256color] A low-contrast theme for Emacs.
Moe-theme 458 41 - (light/dark) [256color] A customizable colorful eye-candy theme. Moe, moe, kyun!
Leuven-theme 53 6 - [built-in]
(light) Awesome Emacs color theme for white backgrounds.
Grandshell-theme 39 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.
Bongo 108 13 - A flexible and usable media player for GNU Emacs.
Dionysos 6 4 - A simple music player for Emacs.
Mingus 62 13 - An Emacs front end to the Music Player Daemon with an interface that resembles ncmpc.
Finance
Elbank 58 4 - Personal finances application for Emacs.
Fun
Nyan-mode 375 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-xkcd 92 8 - Read xkcd from emacs.
gnugo.el - The official Emacs Lisp interface to GNU Go.
Pacmacs 30 3 - Pacman-like game for Emacs.
speed-type 91 13 - Practice speed/touch typing in Emacs.
spray - A speed reading mode for Emacs.
fsc.el - Fuck the Speeching Censorship!
wttrin 50 7 - Emacs frontend for weather web service wttr.in.
fireplace 441 18 - A cozy fireplace for emacs.
clippy 40 2 - Show tooltip with function documentation at point.
Starter Kit
Noteworthy Configurations
init.el 29 7 - Drew Adams : Icicles, bookmark+ to name a few.
dot-emacs 327 91 - John Wiegley (@jwiegley): Lead maintainer of Emacs, use-package.
emacs.org 22 0 - Howard Abrams (@howardabrams).
.emacs.d 690 110 - Magnar Sveen (@magnars) : multiple-cursors, dash, expand-region.
Sacha.org 61 7 - Sacha Chua (@sachac).
emacs 110 27 - Johan Andersson (@rejeep).
doom 338 87 - Henrik Lissner’s (@hlissner) Emacs configuration for the stubborn martian vimmer.
emacs.d 1k 704 - Chen Bin (@redguardtoo).
emacs 183 39 - Chris Wanstrath (@defunkt).
.emacs.d - Sebastian Wiesner (@lunaryorn): Flycheck.
home 72 10 - Grant Rhettke (@grettke).
oremacs 89 10 - Oleh Krehel (@abo-abo) : Swiper, Ivy, Hydra, Avy.
.emacs.d 13 3 - Kaushal Modi (@kaushalmodi).
DotEmacs 9 2 - Eric James Michael Ritz (@ejmr).
emacs-tv-config 10 0 - Thierry Volpiatto (@thierryvolpiatto) : Helm Maintainer.
emacs.el - Jorgen Schäfer (@jorgenschaefer) : Elpy, Circe.
emacsconfig.html - Dennis Ogbe.
emacs 455 66 - Joe di Castro @joedicastro.
emacs.d 2 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
To the extent possible under law, emacs.tw has waived all copyright and related or neighboring rights to this work.