---
name: "notmuch-restore"
section: "1"
platform: "linux"
package: "notmuch-runtime"
version: "0.40-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/notmuch-restore"
---

# notmuch-restore(1)

restores the tags from the given file (see notmuch dump)

## NAME

notmuch-restore - restores the tags from the given file (see notmuch dump)

## SYNOPSIS

**notmuch** **restore** \[--accumulate\] \[--format=(auto\|batch-tag\|sup)\] \[--input=\<*filename*\>\]

## DESCRIPTION

Restores the tags from the given file (see notmuch-dump \<#notmuch-dump-1\>).

The input is read from the given filename, if any, or from stdin.

Supported options for **restore** include

- **--accumulate**

  The union of the existing and new tags is applied, instead of replacing each message's tags as they are read in from the dump file.

- **--format=(sup\|batch-tag\|auto)**

  Notmuch restore supports two plain text dump formats, with each line specifying a message-id and a set of tags. For details of the actual formats, see notmuch-dump \<#notmuch-dump-1\>.

  - **sup**

    The **sup** dump file format is specifically chosen to be compatible with the format of files produced by sup-dump. So if you've previously been using sup for mail, then the **notmuch restore** command provides you a way to import all of your tags (or labels as sup calls them).

  - **batch-tag**

    The **batch-tag** dump format is intended to more robust against malformed message-ids and tags containing whitespace or non-**[ascii(7)](/ascii/7.md)** characters. See notmuch-dump \<#notmuch-dump-1\> for details on this format.

    **notmuch restore** updates the maildir flags according to tag changes if the **maildir.synchronize\_flags** configuration option is enabled. See notmuch-config \<#notmuch-config-1\> for details.

  - **auto**

    This option (the default) tries to guess the format from the input. For correctly formed input in either supported format, this heuristic, based the fact that batch-tag format contains no parentheses, should be accurate.

- **--include=(config\|properties\|tags)**

  Control what kind of metadata is restored.

  - **config**

    Restore configuration data to the database. Each configuration line starts with "#@ ", followed by a space separated key-value pair.  Both key and value are hex encoded if needed.

  - **properties**

    Restore per-message (key,value) metadata.  Each line starts with "#= ", followed by a message id, and a space separated list of key=value pairs.  Ids, keys and values are hex encoded if needed.  See notmuch-properties \<#notmuch-properties-7\> for more details.

  - **tags**

    Restore per-message metadata, namely tags. See *format* above for more details.

  The default is to restore all available types of data. The option can be specified multiple times to select some subset.

- **--input=\<filename\>**

  Read input from given file instead of stdin.

## GZIPPED INPUT

**notmuch restore** will detect if the input is compressed in **[gzip(1)](/gzip/1.md) \<https://manpages.debian.org/gzip.1.html\>** format and automatically decompress it while reading. This detection does not depend on file naming and in particular works for standard input.

## SEE ALSO

notmuch \<#notmuch-1\>, notmuch-config \<#notmuch-config-1\>, notmuch-count \<#notmuch-count-1\>, notmuch-dump \<#notmuch-dump-1\>, notmuch-hooks \<#notmuch-hooks-5\>, notmuch-insert \<#notmuch-insert-1\>, notmuch-new \<#notmuch-new-1\>, notmuch-properties \<#notmuch-properties-7\>, notmuch-reply \<#notmuch-reply-1\>, notmuch-search \<#notmuch-search-1\>, notmuch-search-terms \<#notmuch-search-terms-7\>, notmuch-show \<#notmuch-show-1\>, notmuch-tag \<#notmuch-tag-1\>

## Author

Carl Worth and many others

## Copyright

2009-2026, Carl Worth and many others
