Hi, because it seems that notmuch does not index all headers, I've written a simple, but quite usable tool, which goes through a maildir and generate an output for notmuch-tag --batch according a simple rules. I've borrowed the syntax from notmuch-tag --batch format, so it should be very easy for any notmuch user to configure. You can query the content of a paricular header # tags will be applied when string is in header +notmuch -inbox -- 'notmuch.notmuchmail.org' in 'List-Id' or in more than one header +notmuch -inbox -- 'notmuch.notmuchmail.org' in ('List-Id', 'X-Mailinglist') Or use the procmail-like grep, where a whole email will be searched for a pattern. # procmail-like rule, the whole email is searched for a pattern +notmuch -inbox -- 'List-Id.*notmuch.notmuchmail.org' Note the matchin rule is a normal Python expression, so everything Python interpreted can evaluate, should be used. I've ever wanted to learn about those parts of a Python, so this was a nice opportunity to learn. https://gist.github.com/mvyskocil/5220690 Regards Michal Vyskocil