By setting the variables header_cache and message_cachedir, you can make neomutt cache messages headers and even the message bodies. This allows way quicker searching among other benefits.

The problem is though, that this caching does not seem to happen automatically. I'd have to go though each mailbox and search for a body term that does not exist - it then would download all the messages.

Is there a way of forcing neomutt to build this cache, either one off or, preferred, continually?

  • Just to be safe. You created the folders the variables point to?
    – ploth
    Commented Dec 5, 2018 at 19:16
  • Your mutt version 1.5.7 or later?
    – ploth
    Commented Dec 5, 2018 at 19:20
  • Don't specify a cache file! Only specify a folder. It can be the same folder for both variables.
    – ploth
    Commented Dec 5, 2018 at 19:22
  • Thank you. Well, the cache works. But I haven't found any way to force building the cache without entering a mailbox and searching in it. What I would like is a command that I can execute (i.e. over night) and have all mailboxes cached.
    – sudoremo
    Commented Dec 10, 2018 at 12:56
  • @ploth I specified header_cache="~/.neomutt/cache/headers" before reading your comment. How bad is this and should I fix it?
    – Bn.F76
    Commented Nov 13, 2022 at 0:02

2 Answers 2


You should consider stop using IMAP in neomutt and start downloading your messages using offlineimap, isync, or other syncing tool. Because obviously that's what you want.


the fetchmail program works good for me, ...in linux 19 or so.

Fetchmail lets you configure mail collection from here, there, and everywhere (gmail).....and schedule timely retrievals in the background on your terms.

  • This completely disregards the question, which is about mutt. Commented Sep 24, 2019 at 12:02
  • No it was about neomutt. Commented Sep 25, 2019 at 18:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .