Catalog PyPI
Back to packageRELEASE DETAILS

4.0.2

PyPI

afew

An initial tagging script for notmuch mail

Published21 Jul 2026
Direct dependencies7
Transitive dependenciesNot calculated

README

Version 4.0.2 documentation
====
afew
====

|GithubTag| |CI Status|

About
-----

afew is an initial tagging script for notmuch mail:

* http://notmuchmail.org/
* http://notmuchmail.org/initial_tagging/

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 things 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 TUI for notmuch mail ;)

* https://github.com/pazz/alot



IRC
---

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

.. _#afewmail IRC Channel: http://web.libera.chat/?channels=#afewmail


Features
--------

* 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 afew.readthedocs.io_.

.. _afew.readthedocs.io: https://afew.readthedocs.io/en/latest/
.. _docs/: docs/

Have fun :)


.. |GithubTag| image:: https://img.shields.io/github/tag/afewmail/afew.svg
    :target: https://github.com/afewmail/afew/releases
.. |CI Status| image:: https://github.com/afewmail/afew/workflows/CI/badge.svg
    :target: https://github.com/afewmail/afew/actions

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 7

Native requirements
7 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
chardet
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
chardetruntime
dkimpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
dkimpyruntime
notmuch2
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
notmuch2runtime
sphinx
Environment
{
  "extras": "",
  "marker": "extra == \"doc\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
sphinx; extra == "doc"runtime
flake8
Environment
{
  "extras": "",
  "marker": "extra == \"lint\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
flake8; extra == "lint"runtime
freezegun
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
freezegun; extra == "test"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest; extra == "test"runtime

Distribution files

2 collected
afew-4.0.2-py3-none-any.whl

bdist_wheel · 34.23 KB · Python py3

Source file
afew-4.0.2.tar.gz

sdist · 42.26 KB · Python source

Source file

Repository

PENDING
afewmail/afew

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:02 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:3f19648b7c5b869ea61559fbd2da1bb567b696934323645ded5136264fef1b8b

Other collected versions

View all collected versions →