Notmuch logo

Notmuch Language Bindings [DRAFT]

The Notmuch library, libnotmuch, can be used from many programming languages using the Notmuch language bindings. The command line interface and the email clients and frontends are based on the language bindings.

  1. Notmuch Language Bindings [DRAFT]
    1. C and C++
    2. Python
    3. Ruby
    4. Go

C and C++

libnotmuch is a shared C library. The API

The Notmuch command-line interface is based on the C library.


Notmuch includes Python bindings to the Notmuch shared library. Please refer to the nice and extensive Notmuch Python API documentation.

The bindings are very simple to use. As an example, given you have the Python bindings installed (or simply set your PYTHONPATH environment variable to point to the .../bindings/python directory), this snippet will produce a list of mails matching the given expression:

    >>> import notmuch
    >>> db = notmuch.Database()
    >>> query = db.create_query('tag:inbox AND NOT tag:killed')
    >>> list(query.search_messages()) # doctest:+ELLIPSIS

The source


The source

The client for vim is in Ruby, so worth a look.


The source