Skip to content

Contacts

Contacts turns the senders and imported address book data Herald knows about into a navigable tab. It is useful for finding a person or company, reviewing recent mail from that contact, opening an inline preview, and enriching contact metadata.

Press 4 to open Contacts. Herald loads contacts from the backend and, on macOS, can import Apple Contacts at startup. Contacts can be searched by keyword or semantic similarity when AI/embeddings are available.

AreaWhat it shows
Contact list panelContact count and rows for known contacts. Wide terminals show Name, Email, Company, and Count; narrower terminals reduce columns.
Detail panelSelected contact identity, company/topics when available, and recent email list.
Recent email listUp to 20 recent messages for the selected contact.
Inline previewBody preview for the selected recent email.
Keyword search/ prompt and filtered contact list.
Semantic search? prompt and AI/embedding-backed contact results.
Status and hintsContact load/enrichment messages and contact-specific key hints.
KeyContextPreconditionsResult
/Contacts listSearch mode closed.Opens keyword search.
?Contacts listSearch mode closed.Opens semantic search.
Printable textSearch modeKeyword or semantic search active.Updates the search query and filtered list.
backspace / ctrl+hSearch modeSearch query has characters.Deletes one character and reapplies search.
enterSearch modeSearch active.Confirms current results and closes search input.
escSearch modeSearch active.Clears search and restores full contact list.
j / downList panelList focused.Moves to next contact.
k / upList panelList focused.Moves to previous contact.
enterList panelContact row selected.Opens contact detail and loads recent emails.
tabContactsDetail is open.Toggles focus between list and detail panels.
j / downDetail panelRecent email list focused.Moves to next recent email.
k / upDetail panelRecent email list focused.Moves to previous recent email.
enterDetail panelRecent email selected.Opens inline email preview.
escPreview/detailPreview or detail active.Closes preview first, then clears detail and search state.
eContactsA contact is selected or detail is open.Runs single-contact AI enrichment.
  1. Press 4.
  2. Move through contacts with j/k.
  3. Press enter.
  4. Review contact metadata and recent messages.
  1. Open a contact detail.
  2. Press tab to focus the detail panel.
  3. Use j/k to choose a recent email.
  4. Press enter.
  5. Press esc to return to contact detail.
  1. Press / for keyword search or ? for semantic search.
  2. Type a name, email, company, topic, or concept.
  3. Press enter to keep the filtered results.
  4. Press esc to clear search.
  1. Select a contact row or open detail.
  2. Press e.
  3. Wait for status to report enrichment progress or completion.
  4. Review new company/topic details when available.
StateWhat happens
Loading contactsContacts tab waits for backend contact rows and displays status.
Empty contactsList panel shows no contacts; open mail and sync folders to collect senders.
Keyword searchSearch filters local contact fields while typing.
Semantic searchSearch uses embeddings/AI availability; if unavailable, results may stay empty or status reports unavailable.
Detail loadingRecent emails load after enter on a contact.
Inline preview loadingBody fetch starts for the selected recent email.
AI unavailablee cannot enrich contact metadata.
Narrow terminalContact columns compress; detail remains accessible through tab when open.

Contacts reads and stores sender addresses, display names, company/topic metadata, message counts, recent email references, and optional embeddings. On macOS, Apple Contacts import can add address book contacts through the backend. Enrichment sends selected contact and email-derived context to the configured AI backend.

If Contacts is empty, sync at least one folder in Timeline and reopen Contacts.

If semantic search does not return expected results, confirm AI embeddings are configured and that enrichment or embedding processing has run.

If inline preview seems stale, close with esc, move to the message again, and press enter to refetch.