Skip to content

[Feature]: AI assistant — auto-tagging/labeling, summaries, and compose (self-hostable, OpenAI-compatible endpoint) #602

Description

@Xytronix

Problem / Motivation

Modern open-source clients treat LLM assistance as a headline feature — in particular AI auto-tagging / labeling (automatically classify incoming mail into categories/labels), plus thread summaries, smart replies, and compose/rewrite. Bulwark has no AI at all: it offers manual multi-tag / color labels and server-side Sieve rules (deterministic, hand-authored), but nothing that categorizes mail by content, so users coming from AI clients lose auto-triage.

Doing this against a self-hosted, operator-chosen LLM endpoint keeps it consistent with Bulwark's privacy-first stance — unlike hosted clients that route mail through their own infra + cloud LLMs.

Reference open-source implementations:

  • elie222/inbox-zero (MIT) — AI categorization + AI rules + auto-labeling over Gmail/Outlook.
  • Mail-0/Zero (MIT) — AI agents/LLMs including auto-labeling.

Proposed Solution

Bulwark already has a strong plugin surface (composer-sidebar slot, email-banner slot, email-body access, onBeforeEmailSend, /api/translate proxy, http:fetch + httpOrigins, the privileged crypto-plugin tier — see the community paulhenry46/pgp-plugin). Expose the few missing primitives so a first-party or community "AI Assistant" plugin can run entirely against an operator-configured endpoint:

  • Auto-tagging hook — an onNewEmail/post-fetch hook that can read a message's decoded content and apply JMAP keywords/tags (map an LLM classification onto existing tags), scoped to an allow-list of target tags.
  • Composer editor API — read selection/body and insert/replace/stream text into the Tiptap editor (today a plugin can render a sidebar but can't write into the compose body).
  • Thread-content read API for summarization.
  • Admin-lockable LLM endpoint config (base URL + key + model) pointing at a self-hosted OpenAI-compatible gateway (Ollama / vLLM / LiteLLM / etc.).
  • Reference plugin: auto-tag on arrival, summarize thread, compose/rewrite with tone, smart-reply chips.

Alternatives Considered

Sieve rules (current) — deterministic keyword/sender rules, no content understanding. External AI clients (Inbox Zero, Zero) — route mail through their infra + cloud LLMs, defeating self-hosting. A fully external plugin today — blocked: no API to apply tags from a content hook or to write into the composer.

Feature Area

No response

Mockups / Examples

Inbox Zero AI categorization + auto-label; Mail-0/Zero AI labeling.

Additional Context

Keeping the model endpoint operator-configured preserves "your data, your server". Only the plugin primitives above are required from core; the assistant itself can ship as a plugin like S/MIME does.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions