Skip to content
(To) mirror Emacs Lisp Package Archive(s)
Shell Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


(To) Mirror Emacs Lisp package archives. Used to create and maintain mirrors under Git repository.

Note that currently only GitLab and GitHub are supported out of box as a remote for the mirror. Though you can use mirror-elpa to maintain local mirror or mirror on any other Git hosting. See Usage section for more information.


The following software must be installed on your system:

  • Git
  • Emacs
  • rsync


$ git clone
$ cd mirror-elpa
$ ./configure
$ make install

You can also specify how often to sync mirror when running make install (defaults to every 4 hours) and location to resulting configuration file (defaults to $XDG_CONFIG_HOME/

$ make install SCHEDULE="0 0 * * *" CONFIG_FILE="~/"

SCHEDULE can be set to any valid CRON expression.

Resulting configuration file can be used for more grained control over mirror-elpa behaviour.

  • Set value of mirror_path to avoid using temporary folder for mirror.
  • Set value of mirror_repo_branch_name to change branch name (default is master).
  • Define git_config_hook function that is called before changes to repository are committed. This is a good place to configure Git.
  • Set value of mirror_url if you wish to use local mirror or mirror hosted somewhere else rather than on GitLab. Empty string means local mirror (script doesn’t push).


You can’t perform that action at this time.