notmuch - thread-based email index, search, and tagging


       notmuch [option ...] command [arg ...]


       Notmuch  is a command-line based program for indexing, searching, read‐
       ing, and tagging large collections of email messages.

       This page describes how to get started using notmuch from  the  command
       line,  and  gives  a brief overview of the commands available. For more
       information on e.g. notmuch show consult the notmuch-show(1) man  page,
       also accessible via notmuch help show

       The  quickest  way  to get started with Notmuch is to simply invoke the
       notmuch command with no arguments, which will interactively  guide  you
       through the process of indexing your mail.


       While the command-line program notmuch provides powerful functionality,
       it does not provide the most convenient interface for that  functional‐
       ity.  More  sophisticated interfaces are expected to be built on top of
       either the command-line interface, or more likely, on top of  the  not‐
       much  library interface. See for more about al‐
       ternate interfaces to notmuch. The  emacs-based  interface  to  notmuch
       (available under emacs/ in the Notmuch source distribution) is probably
       the most widely used at this time.


       Supported global options for notmuch include

       --help [command-name]
              Print a synopsis of available commands and  exit.  With  an  op‐
              tional command name, show the man page for that subcommand.

              Print the installed version of notmuch, and exit.

              Specify  the  configuration file to use. This overrides any con‐
              figuration file specified by NOTMUCH_CONFIG. The empty string is
              a permitted and sometimes useful value of FILE, which tells not-
              much to use only configuration metadata from the database.

              Enforce that the database UUID (a unique identifier  which  per‐
              sists until e.g. the database is compacted) is HEX; exit with an
              error if it is not. This is useful to detect rollover in modifi‐
              cation  counts  on  messages.  You can find this UUID using e.g.
              notmuch count --lastmod

       All global options except --config can also be specified after the com‐
       mand.  For example, notmuch subcommand --uuid=HEX is equivalent to not-
       much --uuid=HEX subcommand.



       The notmuch setup command is used to configure Notmuch for  first  use,
       (or to reconfigure it later).

       The  setup  command  will prompt for your full name, your primary email
       address, any alternate email addresses you use, and the directory  con‐
       taining your email archives. Your answers will be written to a configu‐
       ration file in NOTMUCH_CONFIG (if  set)  or  ${HOME}/.notmuch-config  .
       This configuration file will be created with descriptive comments, mak‐
       ing it easy to edit by hand later to change the configuration.  Or  you
       can run notmuch setup again to change the configuration.

       The  mail  directory you specify can contain any number of sub-directo‐
       ries and should primarily contain only files with individual email mes‐
       sages  (eg.  maildir  or  mh archives are perfect). If there are other,
       non-email files (such as indexes maintained by  other  email  programs)
       then notmuch will do its best to detect those and ignore them.

       Mail  storage that uses mbox format, (where one mbox file contains many
       messages), will not work with notmuch. If that's how your mail is  cur‐
       rently stored, it is recommended you first convert it to maildir format
       with a utility such as mb2md(1) before running notmuch setup.

       Invoking notmuch with no command argument will run setup if  the  setup
       command has not previously been completed.


       Several  of the notmuch commands accept search terms with a common syn‐
       tax. See notmuch-search-terms(7) for more details on the supported syn‐

       The  notmuch-search(1),  notmuch-show(1),  notmuch-address(1)  and not‐
       much-count(1) commands are used to query the email database.

       The notmuch-reply(1) command is useful for preparing a template for  an
       email reply.

       The notmuch-tag(1) command is the only command available for manipulat‐
       ing database contents.

       The notmuch-dump(1) and notmuch-restore(1) commands can be used to cre‐
       ate  a  textual  dump of email tags for backup purposes, and to restore
       from that dump.

       The notmuch-config(1) command can be used to get or set settings in the
       notmuch configuration file.


       If  the given command is not known to notmuch, notmuch tries to execute
       the external notmuch-<subcommand> in PATH instead. This allows users to
       have their own notmuch related tools to be run via the notmuch command.
       By design, this does not allow notmuch's own commands to be  overridden
       using external commands.


       All options accepting an argument can be used with '=' or ':' as a sep‐
       arator. Except for boolean options (which would be ambiguous), a  space
       can also be used as a separator. The following are all equivalent:

          notmuch --config=alt-config config get
          notmuch --config:alt-config config get
          notmuch --config alt-config config get


       The following environment variables can be used to control the behavior
       of notmuch.

              Specifies the location of the notmuch  configuration  file.  See
              notmuch-config(1) for details.

              Specifies the location of the notmuch database. See notmuch-con‐
              fig(1) for details.

              Selects among notmuch configurations. See notmuch-config(1)  for

              Location  to  write a talloc memory usage report. See talloc_en-
              able_leak_report_full in talloc(3) for more information.

              If set to a non-empty value, the notmuch library will print  (to
              stderr) Xapian queries it constructs.


       notmuch-address(1),    notmuch-compact(1),    notmuch-config(1),   not‐
       much-count(1),  notmuch-dump(1),  notmuch-hooks(5),  notmuch-insert(1),
       notmuch-new(1),  notmuch-properties(7), notmuch-reindex(1), notmuch-re‐
       ply(1), notmuch-restore(1), notmuch-search(1), notmuch-search-terms(7),
       notmuch-show(1), notmuch-tag(1)

       The notmuch website:


       Feel  free to send questions, comments, or kudos to the notmuch mailing
       list <> . Subscription is  not  required  before
       posting, but is available from the website.

       Real-time  interaction  with the Notmuch community is available via IRC
       (server:, channel: #notmuch).


       Carl Worth and many others


       2009-2022, Carl Worth and many others