Skip to content
Import and export files between IMAP and local by using GNUS
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.


Someday, I join an IT company that is the first outsourcing company I work. They have many policies to protect the products. I’m not allowed to store anything in the internet service. It’s fine, but they also don’t provide the storage services for employees.

I need to store my notes, tips around work. Good, I found a solution to store my stuff. All of the company will provide to you an email account.

IMAP, that’s it (APPEND Command) can handle this.

How did I implenment?

I use GNUS to work around email. This is why I have this package.

gnus-summary-repo will check which article or file are newer before importing/exporting base on creation date and MD5 hash


M-x gnus-summary-repo-import-directory Import all files from a directory to the current Summary.

M-x gnus-summary-repo-export-directory Export all files in the current Summary to a directory.

M-x gnus-summary-repo-import-file Import a file to the current Summary.

M-x gnus-summary-repo-export-file Export a file in the current Summary to a directory.

M-x gnus-summary-repo-import-directory-all Rescan 9999 articles before importing

M-x gnus-summary-repo-export-directory-all Rescan 9999 articles before exporting

Best practice

;; 1. Create a new group IMAP for only store your notes.
;; Example: nnimap+Gmail:Notes

;; 2. Go to your group with all of the articles (unlimited articles, you will be Summary mode)

;; 3. Use gnus-summary-repo-* function


;; Set your default directory
(setq gnus-summary-repo-dir-local nil)
;; Set your FROM header, If is nil, it will be an importing date
(setq gnus-summary-repo-header-from nil)
;; The regex list will be ignored when importing, default include .git/ directory
(setq gnus-summary-repo-import-ignore '("^\.git.*"))


  • Not yet support multiple repositories
  • You must manually enter Summary mode.
  • You must rescan Summary after importing/exporting
You can’t perform that action at this time.