mail_summariser

Start safely with the resettable Sample Mailbox, then switch to live IMAP/SMTP when the account settings are ready.

Task-first browser workspace

Quick filters, digest output, message review, and scoped actions share one operational surface.

Grounded summaries

Empty searches skip LLM providers and return an explicit no-message state instead of ungrounded text.

Provider choice

Use Ollama locally, OpenAI, Anthropic, or deterministic fallback summaries when providers are unavailable.

Safe action trail

Mark read, tag summarised, email summaries, inspect logs, and undo supported actions from the same job.

Browser client

The web UI is a static app that talks to the local FastAPI backend. It preserves manually selected backend targets and keeps developer fake-mail tools gated.

  • Sample Mailbox and live mailbox modes
  • Message detail pane with stable table scanning
  • Provider prompts, model tools, and admin controls

macOS client

The SwiftUI client shares the backend API and user-facing Sample Mailbox language, so browser and desktop setup flows stay aligned.

  • Native settings and summary workflows
  • Backend bridge for local runtime calls
  • Release archive built in CI

Latest published release

Loading release metadata from GitHub...

Open release page

Windows

x64 backend zip for Windows local service use.

Download zip

Architecture

The backend is the system of record for settings, mailbox access, summaries, logs, and runtime model controls.

Architecture diagram for web, macOS, backend, storage, mail services, and model providers.
Runtime architecture
Summary request flow showing sample mailbox, live mailbox, empty result guard, provider call, fallback, and persistence.
Summary request flow

Run locally

Start the backend, serve the static browser client, and use the Sample Mailbox for a safe first summary.

./start_backend.sh
python -m http.server 8000 --directory webapp
python -m playwright install chromium
python scripts/validate_rendered_ui.py