Skip to content

CLI

The terminal client and engine. durian handles IMAP sync, SMTP send, the local SQLite store, and the HTTP API the GUI talks to. If you live in a terminal, it’s the whole product. If you use the GUI, it’s still running under the hood.

The CLI is built with Cobra — every subcommand has --help, ships a man page, and supports tab completion.

At a glance

durian sync                       # pull mail via IMAP, push tag/flag changes
durian search "tag:inbox"         # query the local store (notmuch syntax)
durian tag <thread> +todo         # add/remove tags
durian show <thread>              # render a thread to stdout
durian send --to ...              # send mail (with $EDITOR fallback)
durian auth status                # OAuth/password state per account

Run durian with no arguments for the complete list.

Files

PathWhat
~/.config/durian/Pkl config files — config.pkl, profiles.pkl, rules.pkl, keymaps.pkl, groups.pkl
~/.local/share/durian/email.dbSQLite store: messages, tags, attachments
~/.local/share/durian/contacts.dbLocal address book
~/.local/state/durian/serve.logHTTP server log (truncated on each durian serve start)
~/.cache/durian/<email>-imap-state.jsonPer-account IMAP sync state (UIDs, flags)

XDG variables are respected — set $XDG_CONFIG_HOME, $XDG_DATA_HOME, $XDG_STATE_HOME to override.