Renaming to helm

Anything.el was renamed to Helm in 2012.


anything.el is a great application framework written by TamasPatrovics. It provides a totally new Emacs experience. While normal Emacs way is specifying action then selecting candidates, the anything way is narrowing and selecting candidates then executing action for selected candidates. It is something like “über-extensible spotlight for emacs” or “QuickSilver for emacs”. The current maintainer of anything.el is rubikitch.

Starting with the command M-x anything, all things matching a given pattern will be shown in a special buffer named *anything*.

Initially all candidates are displayed. Then they are narrowed by a given query. A candidate can be selected with C-p/C-n/C-v/M-v (or up/down/pgup/pgdown). Hitting RET invokes the default action for that type, hitting TAB lists all possible actions.



What’s queried is given by a list of sources, namely anything-sources, such as buffers, file names, bookmarks, and so on. It means that multiple Emacs commands are integrated in one command. You do not have to remember commands corresponding to actions, anything does the right thing.

You can get anything.el at anything.el.

Here’s an easy to follow introduction explaining how Anything works and here’s an introduction to creating new sources for Anything.


anything.el only contains the basic framework and some example sources. anything-config.el is intended to provide a rich set of additional sources and types that can be used by users to adapt anything.el to their needs.

TassiloHorn, JasonMcBrayer, rubikitch and ThierryVolpiatto maintain and extend anything-config.el and the best source for getting the most current version is to clone his git repository. Everybody can push to it as a mob user.

    git clone git://

If you have enhancements please drop one of them a mail and they will pull your changes in. You can also submit patches, see the manual page of git format-patch.

If you have any cool feature, write to AnythingSources page, push to mob repository, or mail me, i will apply it. 😊 – rubikitch

anything-config.el can also be downloaded from anything-config.el.

You will find many sources in AnythingSources page.

You can extend Anything by AnythingPlugins.

(It would be good to explain what a config, a source, and a plugin are. Are they different things?)

I’ll do that. – rubikitch
See Glossary. Sorry for my poor English. – rubikitch

There are a lot of goodies in RubikitchAnythingConfiguration, the current maintainer’s configuration. Feel free to copy and paste!

AndyStewart has added some cool extensions : Lisp:anything-extension.el


Anything searches objects from various information, such as buffers, recentf, bookmark, and so on. The information source is simply called ‘source’. You can easily define sources.
A ‘source’ is a list of ‘attributes’, Their names are pre-defined; such as name, candidates, and type.
Anything can be extended via ‘plugin’. For example, search method in anything itself is single regexp search, but with Lisp:anything-match-plugin.el anything supports multiple regexp search. User-defined ‘attributes’ are also ‘plugin’.
Lisp:anything-config.el contains various pre-defined ‘sources’ and ‘plugins’.


There are various ways to install Anything.

You can clone the git repository:

    git clone git://

Then add this to your ~/.emacs.el:

    (add-to-list 'load-path "/path/to/anything/")
    (require 'anything-config)

Or you if you want to start with a minimal configuration download just Lisp:anything.el and Lisp:anything-config.el and add the following to your ~/.emacs.el:

    (add-to-list 'load-path "/path/to/anything/")
    (require 'anything-config)

If you do not want to use git but want several Anything packages, related Anything maintainer’s user configs, as well as most of the Anything extension packages use the WgetSnarfAnything wget script.

Or you can use Lisp:auto-install.el (which you first have to install itself as described in AutoInstall) install Anything packages with following:

   M-x auto-install-batch RET a n y t h i n g RET

It would be great if it was installable with ELPA (as of 2011/01/25 I actually can install anything from ELPA)

(As of 2011/12/06, on Emacs, Anything can be installed using ELPA)

Getting Help

Anything now has a its own mailing list at:


It is visible also in gmane at gmane.emacs.anything

Getting Started

Enter emacs and run M-x anything-for-file. It is preconfigured anything to open files.

If you like it and feel the power of anything, set anything-sources for your taste by copying and pasting bits and pieces from other people’s anything-config files. You may wish to bind ‘anything to a easy-to-type key.


are there any plans to clean up these files? the anything-config file and your own config file are both pretty monolithic, as such it’s hard to modify or extend ‘anything’. Maybe separating things into different files, and creating more ‘helper’ functions would help? for example, isn’t the following a simpler way of creating anything functions, than having them build-in/preconfigured?:

 (defvar anything-command-list nil)
 (defmacro defanything (name sources)
   (list 'add-to-list '(intern "anything-command-list") (concat "anything-" name))
   (list 'defun (intern (concat "anything-" name)) (list)
 	(list 'interactive)
 	(list 'anything
 	      (list 'quote
 		    (map 'list
 			 (lambda (x) (intern (concat "anything-c-source-" x)))
 	      'nil 'nil 'nil 'nil (concat "*" (concat "anything-" name) "*"))))
 (defanything "open-files"
   ("recentf" "file-cache" "files-in-current-dir" "locate"))
 (defanything "emacs-variables"
 (defanything "emacs-functions"
Nice idea! But I think of better interface. – rubikitch
You’re thinking of a better interface? --CH


CategoryAccessibility CategoryBbdb CategoryBufferSwitching CategoryCalculators CategoryCode CategoryCommands CategoryCompletion CategoryDirectories CategoryDocumentation CategoryEditing CategoryExternalUtilities CategoryFaces CategoryFiles CategoryGnus CategoryHelp CategoryInterface CategoryMenus CategoryModes CategoryProgrammerUtils CategoryRegexp CategorySearchAndReplace CategoryShell CategoryWebBrowser