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?

Latest commit


Git stats


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


GithubTag CI Status


afew is an initial tagging script for notmuch mail:

Its basic task is to provide automatic tagging each time new mail is registered with notmuch. In a classic setup, you might call it after 'notmuch new' in an offlineimap post sync hook.

It can do basic thing such as adding tags based on email headers or maildir folders, handling killed threads and spam.

In move mode, afew will move mails between maildir folders according to configurable rules that can contain arbitrary notmuch queries to match against any searchable attributes.

fyi: afew plays nicely with alot, a GUI for notmuch mail ;)


Feel free to ask your questions and discuss usage in the #afewmail IRC Channel on Libera.Chat.


  • spam handling (flush all tags, add spam)
  • killed thread handling
  • automatic propagation of tags to whole thread
  • tags posts to lists with lists, $list-id
  • autoarchives mails sent from you
  • catchall -> remove new, add inbox
  • can operate on new messages [default], --all messages or on custom query results
  • can move mails based on arbitrary notmuch queries, so your sorting may show on your traditional mail client (well, almost ;))
  • has a --dry-run mode for safe testing

Installation and Usage

Full documentation is available in the docs/ directory and in rendered form at

Have fun :)