1NOTMUCH(1) notmuch NOTMUCH(1)
2
3
4
6 notmuch - thread-based email index, search, and tagging
7
9 notmuch [option ...] command [arg ...]
10
12 Notmuch is a command-line based program for indexing, searching, read‐
13 ing, and tagging large collections of email messages.
14
15 This page describes how to get started using notmuch from the command
16 line, and gives a brief overview of the commands available. For more
17 information on e.g. notmuch show consult the notmuch-show man page,
18 also accessible via notmuch help show
19
20 The quickest way to get started with Notmuch is to simply invoke the
21 notmuch command with no arguments, which will interactively guide you
22 through the process of indexing your mail.
23
25 While the command-line program notmuch provides powerful functionality,
26 it does not provide the most convenient interface for that functional‐
27 ity. More sophisticated interfaces are expected to be built on top of
28 either the command-line interface, or more likely, on top of the not‐
29 much library interface. See https://notmuchmail.org for more about al‐
30 ternate interfaces to notmuch. The emacs-based interface to notmuch
31 (available under emacs/ in the Notmuch source distribution) is probably
32 the most widely used at this time.
33
35 Supported global options for notmuch include
36
37 --help [command-name]
38 Print a synopsis of available commands and exit. With an op‐
39 tional command name, show the man page for that subcommand.
40
41 --version
42 Print the installed version of notmuch, and exit.
43
44 --config=FILE
45 Specify the configuration file to use. This overrides any con‐
46 figuration file specified by NOTMUCH_CONFIG. The empty string is
47 a permitted and sometimes useful value of FILE, which tells not‐
48 much to use only configuration metadata from the database.
49
50 --uuid=HEX
51 Enforce that the database UUID (a unique identifier which per‐
52 sists until e.g. the database is compacted) is HEX; exit with an
53 error if it is not. This is useful to detect rollover in modifi‐
54 cation counts on messages. You can find this UUID using e.g.
55 notmuch count --lastmod
56
57 All global options except --config can also be specified after the com‐
58 mand. For example, notmuch subcommand --uuid=HEX is equivalent to not‐
59 much --uuid=HEX subcommand.
60
62 SETUP
63 The notmuch setup command is used to configure Notmuch for first use,
64 (or to reconfigure it later).
65
66 The setup command will prompt for your full name, your primary email
67 address, any alternate email addresses you use, and the directory con‐
68 taining your email archives. Your answers will be written to a configu‐
69 ration file in NOTMUCH_CONFIG (if set) or ${HOME}/.notmuch-config .
70 This configuration file will be created with descriptive comments, mak‐
71 ing it easy to edit by hand later to change the configuration. Or you
72 can run notmuch setup again to change the configuration.
73
74 The mail directory you specify can contain any number of sub-directo‐
75 ries and should primarily contain only files with individual email mes‐
76 sages (eg. maildir or mh archives are perfect). If there are other,
77 non-email files (such as indexes maintained by other email programs)
78 then notmuch will do its best to detect those and ignore them.
79
80 Mail storage that uses mbox format, (where one mbox file contains many
81 messages), will not work with notmuch. If that's how your mail is cur‐
82 rently stored, it is recommended you first convert it to maildir format
83 with a utility such as mb2md(1) before running notmuch setup.
84
85 Invoking notmuch with no command argument will run setup if the setup
86 command has not previously been completed.
87
88 OTHER COMMANDS
89 Several of the notmuch commands accept search terms with a common syn‐
90 tax. See notmuch-search-terms for more details on the supported syntax.
91
92 The notmuch-search, notmuch-show, notmuch-address and notmuch-count
93 commands are used to query the email database.
94
95 The notmuch-reply command is useful for preparing a template for an
96 email reply.
97
98 The notmuch-tag command is the only command available for manipulating
99 database contents.
100
101 The notmuch-dump and notmuch-restore commands can be used to create a
102 textual dump of email tags for backup purposes, and to restore from
103 that dump.
104
105 The notmuch-config command can be used to get or set settings in the
106 notmuch configuration file.
107
108 EXTERNAL COMMANDS
109 If the given command is not known to notmuch, notmuch tries to execute
110 the external notmuch-<subcommand> in PATH instead. This allows users to
111 have their own notmuch related tools to be run via the notmuch command.
112 By design, this does not allow notmuch's own commands to be overridden
113 using external commands. The environment variable NOTMUCH_CONFIG will
114 be set according to --config, if the latter is present.
115
116 OPTION SYNTAX
117 All options accepting an argument can be used with '=' or ':' as a sep‐
118 arator. Except for boolean options (which would be ambiguous), a space
119 can also be used as a separator. The following are all equivalent:
120
121 notmuch --config=alt-config config get user.name
122 notmuch --config:alt-config config get user.name
123 notmuch --config alt-config config get user.name
124
126 Notmuch considers the Message-ID to be the primary identifier of mes‐
127 sage. Per RFC 5322 the Message-ID is supposed to be globally unique,
128 but this fails in two distinct ways. When you receive copies of a mes‐
129 sage via a mechanism like Cc or via a mailing list, the copies are typ‐
130 ically interchangeable. In the case of some broken mail sending soft‐
131 ware, the same Message-ID is used for completely unrelated messages.
132 The options search --duplicate and show --duplicate options provide the
133 user with control over which message file is displayed. Front ends will
134 need to provide their own interface, see e.g. the Emacs front-end
135 Dealing with duplicates.
136
138 The following environment variables can be used to control the behavior
139 of notmuch.
140
141 NOTMUCH_CONFIG
142 Specifies the location of the notmuch configuration file. See
143 notmuch-config for details.
144
145 NOTMUCH_DATABASE
146 Specifies the location of the notmuch database. See
147 notmuch-config for details.
148
149 NOTMUCH_PROFILE
150 Selects among notmuch configurations. See notmuch-config for de‐
151 tails.
152
153 NOTMUCH_TALLOC_REPORT
154 Location to write a talloc memory usage report. See talloc_en‐
155 able_leak_report_full in talloc(3) for more information.
156
157 NOTMUCH_DEBUG_QUERY
158 If set to a non-empty value, the notmuch library will print (to
159 stderr) Xapian queries it constructs.
160
162 notmuch-address, notmuch-compact, notmuch-config, notmuch-count,
163 notmuch-dump, notmuch-hooks, notmuch-insert, notmuch-new,
164 notmuch-properties, notmuch-reindex, notmuch-reply, notmuch-restore,
165 notmuch-search, notmuch-search-terms, notmuch-show, notmuch-tag
166
167 The notmuch website: https://notmuchmail.org
168
170 Feel free to send questions, comments, or kudos to the notmuch mailing
171 list <notmuch@notmuchmail.org> . Subscription is not required before
172 posting, but is available from the notmuchmail.org website.
173
174 Real-time interaction with the Notmuch community is available via IRC
175 (server: irc.libera.chat, channel: #notmuch).
176
178 Carl Worth and many others
179
181 2009-2023, Carl Worth and many others
182
183
184
185
1860.37 Jan 19, 2023 NOTMUCH(1)