Skip to content

Herald Memories

Herald Memories turns important email history into local, source-backed context for replies, contacts, companies, threads, chat, and Obsidian-friendly Markdown notes. It is designed for work threads, job search, recruiting, consulting, founder/customer conversations, and other relationships where continuity matters.

Memories are stored as immutable local records under ~/.herald/memories by default. Herald can refresh them from cached Inbox and Sent mail, then use the results in Compose Radar, Contacts dossiers, email-preview thread dossiers, chat tools, Obsidian sync previews, and daily briefing diffs.

Demo mode includes synthetic memory examples for Sergey, Mina, and Cobalt Works, so screenshots and docs can show the feature without private mailbox data.

AreaWhat it shows
Compose RadarUp to three source-backed reply nudges when a reply draft has strong relevant memory.
Contact dossierRelationship summary, recent interactions, active tracks, open loops, vault links, and compact evidence labels.
Company dossierCompany or domain-backed tracks, job-search vault path, open loop, and evidence.
Thread dossierEmail-preview context for the selected subject, including active track, open loop, canonical note link, and source evidence.
Settings > MemoriesSetup fields, allowed memory tasks, vault path, included sources, prompt template inventory, confidence thresholds, update rules, Obsidian profile, and store counts.
Obsidian previewGenerated-section Markdown changes shown before first write or section rewrite.
Daily briefing diffChanged tracks, newly resolved loops, stale loops, failed syncs, review-needed memories, and vault hygiene items.

Compose Radar with source-backed memory nudges

ControlContextResult
Settings > MemoriesMain settings overlayConfigure enablement, local directory, sources, allowed memory tasks, extraction trigger, vault targets, confidence thresholds, prompt-template inventory, and Obsidian output profile.
Compose Radar actionsReply Compose when nudges existOpen source, insert a bounded phrase, dismiss, mark resolved, save for review, or record research intent.
Contact detailContacts tabShows person and company dossiers when matching memories exist.
Email previewTimeline previewShows a thread dossier when the selected subject has matching memories.
Research actionsCompose Radar or dossier workflowsPlan explicit person/company research using public identifiers only by default.
  1. Open a memory-backed Timeline email.
  2. Press R to reply.
  3. Review any Compose Radar nudges.
  4. Open a source or insert a bounded phrase only when useful.
  5. Finish and send normally.

Compose Radar does not silently mutate drafts. It stays hidden or quiet when there is no high-confidence source-backed memory.

  1. Press 2 for Contacts.
  2. Open a contact with enter.
  3. Read the Herald Memories section for relationship summary, active track, open loop, vault link, and evidence.
  4. Use recent email preview for the underlying message context.
  1. Open Settings > Memories.
  2. Configure the vault path and, in advanced Obsidian output settings, destinations such as People/, Job search/, Scheduled Task Artifacts/, and Memory Inbox/.
  3. Choose frontmatter, YAML header, link, and tag modes.
  4. Generate a preview.
  5. Apply only after reviewing the generated sections.

Herald preserves user-authored content outside its stable generated-section markers.

  1. Choose a research action for a person, company, dossier refresh, or reply.
  2. Review the public-identifier query plan.
  3. Opt in to external research before anything leaves the machine.
  4. Save sourced research notes with URL, retrieval date, confidence, and what changed since last contact.

Private email bodies, private note text, attachments, and full thread summaries are not sent to external research by default.

StateWhat happens
Memory unavailableCompose and chat keep working; Herald shows a bounded empty or unavailable state.
Low confidenceMemories remain searchable or reviewable but do not become Compose Radar warnings.
Source missingDeleted, archived, moved, or cleaned-up source mail marks dependent memories stale/source-missing and blocks high-confidence nudges.
Dismissed nudgeThe dismissal scope is remembered, and the nudge does not reappear unless new evidence materially changes the situation.
Corrected memoryUser correction overrides the generated text in effective views while immutable history and evidence remain inspectable.
Forgotten memoryRetrieval hides the memory without deleting the immutable record from disk.
AI scheduler busyMemory extraction uses the managed AI scheduler; reply-prep refresh is interactive and search-triggered refresh is background.

Memory files are local by default at ~/.herald/memories. Records store compact claims, source evidence pointers, bounded snippets, confidence, freshness, prompt version, and optional Obsidian target metadata. They are not a second raw-mail archive.

Optional calendar, Obsidian, and research-note sources are off by default. When enabled, calendar ingestion reads cached calendar events, Obsidian ingestion reads Markdown only under configured destination folders, and research-note ingestion reads saved Markdown notes that contain explicit source URLs.

Obsidian sync writes only after preview approval and only to configured vault targets. Research Mode is explicit and uses public identifiers by default. MCP and daemon servers do not expose a memory API in the current UI-first release.

If no nudges appear, the draft may not have high-confidence matching memories, the source may be missing, or the relevant cache has not refreshed yet.

If Obsidian output is noisy, lower tag generation, choose no visible YAML headers, switch link mode, or raise the Obsidian write threshold in Settings > Memories.

If research is blocked, enable Research Mode and external opt-in, then retry with a public identifier such as a person name, company, domain, role, or URL.