Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

Nyan Mode - Turn your Emacs into Nyanmacs! :)


“Nyan-mode. It’s things like this that make me proud to be an emacs user.” - mitchellh

“Everything that’s wrong (or right) with Emacs.” - wasamasa

Nyanmacs is expanding!! Read the story so far! :).


Nyan Mode is an analog indicator of your position in the buffer. The Cat should go from left to right in your mode-line, as you move your point from 0% to 100%.


  • NEW! You can scroll the buffer by clicking in the Nyan Cat area!
  • NEW! You can customize the minimum window width below which Nyan Mode will be disabled.
  • Mind dumbing content included,
  • Animation (M-x nyan-start-animation, M-x nyan-stop-animation),
  • Wavy rainbow (M-x nyan-toggle-wavy-trail),
  • Music, mplayer is needed (M-x nyan-start-music, M-x nyan-stop-music) (thanks, George Leontiev!),
  • Customizable properties.


  • nyan-animate-nyancat - t to have it animated, nil for a static version.
  • nyan-animation-frame-interval - number of seconds between animation frames. Accepts fractional values.
  • nyan-bar-length - length of nyan-mode bar, in 8px-wide units.
  • nyan-cat-face-number - choose a cat face for the console mode.
  • nyan-wavy-trail - t to make the trail wavy; works even better when animation is enabled!
  • nyan-minimum-window-width - minimum width of the window, below which Nyan Mode will be disabled. This is important because Nyan Mode will otherwise push out more relevant information from the modelilne.

Using Nyan Mode with custom modeline

For those who were asking, or are planning to, Amit Patel shared some tips on how to make nyan-mode work with custom modeline.

He changed his mode-line-format to appear like the following:

(setq mode-line-format
       '(:eval (list (nyan-create)))

Known issues

It’s my second attempt to write a minor mode in Emacs, so there will definiely be some bugs.

This version uses XPM images, which should be supported by default by most Emacs 23 installations, Windows included. In case it doesn’t work, try switching to master-png branch. This branch, however, may have it’s own issues:

There was a problem with displaying PNG images, which require libpng to be available for Emacs. The lib is sometimes missing (e.g. some Windows installation). To make it work on Windows, one needs to download a proper DLL and put it into emacs bin/ folder. To see which DLL is needed, do: M-x describe-variable <ret> image-library-alist <ret>.

Customizing nyan-animate-nyancat is broken; don’t do it. I think it works now; please report issues if there are problems with it.

Code is messy and in dire need of cleanup.

It’s been reported to happen that nyan mode gets duplicated when you activate it twice during Emacs initialization. I’m investigating this and will hopefully track it down and fix it soon.


Thanks to everyone contributing patches, bug repots and ideas! The Emacs world is forever in your debt!

Code and idea inspired by sml-modeline, maintained by Lennart Borgman. See source. sml-modeline is also available on Melpa (

For animated Nyan Cat, I used frames by DryBowser455.

Other editors

For many years only the One True Editor was blessed with the presence of the Nyan Cat. Since its inception, however, daring souls have brought Nyanness to the lands of Lesser Editors.

Here are the examples I’ve tracked down so far:

If you’ve seen others in the wild, please submit.


Check out Aaron Miller’s weatherline.el, partially inspired by Nyan Mode.

Also check out zone-nyan by Vasilij Schneidermann (wasamasa) if you want the Nyan Cat to visit your Emacs when you step away from the keyboard!

Nyanyanyanyanyanyanya! ♬ ♫ ♪ ♩