Hello, I recently switched in-buffer completion from company [1] to completion-at-point with corfu [2] as the UI. As I wanted email address completion via completion-at-point in message-mode too, I implemented a new EUDC function to go into completion-at-point-functions [3]. [1] https://company-mode.github.io [2] https://github.com/minad/corfu [3] https://github.com/emacs-mirror/emacs/blob/master/lisp/net/eudc-capf.el To close the loop, I also wrote an EUDC back-end to get candidates from notmuch-address (which attached). Now, with a eudc-server-hotlist value of (("localhost" . notmuch-address) ("localhost" . macos-contacts)) and eudc-capf-complete among completion-at-point-functions in message-mode, I get combined email address completion candidates from both sources offered by completion-at-point when composing a new email. Life can be a breeze at times... ;-) I hope anyone else finds this useful. Hoping to have helped, and looking forward to your thoughts, --alexander