115 lines
4.2 KiB
Markdown
115 lines
4.2 KiB
Markdown
# Hermes ProtonMail Plugin
|
|
|
|
> Nützliches Add-on für [Hermes Agent](https://hermes-agent.nousresearch.com/)
|
|
> um ProtonMail als E-Mail-Plattform zu nutzen — direkt über die Proton REST API, ohne Bridge, ohne GUI, Headless.
|
|
|
|
Stellt einen nativen Mail-Client für das Hermes Agent Gateway bereit — mit end-to-end-verschlüsseltem Senden & Empfangen, lokalem Mail-Index und Event-gesteuertem Sync.
|
|
|
|
---
|
|
|
|
## Warum dieses Plugin?
|
|
|
|
| Anforderung | Lösung |
|
|
|-------------|--------|
|
|
| 🔐 End-to-End-Verschlüsselung | OpenPGP in Python (PGPy / python-gnupg) |
|
|
| 🖥️ Headless-Betrieb auf VPS | Keine GUI, kein WireGuard, keine Bridge |
|
|
| 🚀 Echtzeit-Push | gRPC Events oder intelligentes Polling |
|
|
| 📦 Mail-Sync | Lokaler SQLite-Index mit inkrementellem Sync |
|
|
| ✍️ Mail verfassen | Verschlüsselter Versand via Proton API |
|
|
|
|
---
|
|
|
|
## Status
|
|
|
|
| Phase | Fortschritt | Beschreibung |
|
|
|-------|-------------|--------------|
|
|
| 1 — Auth POC | 🔲 | SRP-6a Login + API-Zugriff |
|
|
| 2 — Crypto POC | 🔲 | OpenPGP Entschlüsselung + Attachment-Handling |
|
|
| 3 — Sync Engine | 🔲 | SQLite-Index + Senden/Empfangen |
|
|
| 4 — Hermes Plugin | 🔲 | Gateway-Integration + Daemon |
|
|
| 5 — Produktion | 🔲 | Resilienz + Tests + Monitoring |
|
|
|
|
> **Aktuell:** Phase 1 — Implementierungsplan steht, Setup-Phase läuft.
|
|
|
|
---
|
|
|
|
## Schnellstart (später)
|
|
|
|
> Hinweis: Dieses Plugin befindet sich noch in der Entwicklung.
|
|
> Die ersten Releases erscheinen nach Abschluss der Phase 3 (Sync Engine).
|
|
|
|
```bash
|
|
# (Später verfügbar)
|
|
git clone https://gitea.thomander.de/andreas/Hermes_ProtonMail_Plugin.git
|
|
cd Hermes_ProtonMail_Plugin
|
|
./install.sh
|
|
```
|
|
|
|
---
|
|
|
|
## Features (geplant)
|
|
|
|
| Feature | Beschreibung |
|
|
|---------|-------------|
|
|
| 🔐 SRP-6a Auth | Sicheres Login ohne Passwort-Übertragung |
|
|
| 🔑 OpenPGP Crypto | End-to-End Entschlüsselung im Agent |
|
|
| 📨 Mail-Sync | Lokaler SQLite-Index mit Konversationen |
|
|
| 📤 Mail senden | Automatisch verschlüsselter Versand |
|
|
| 📎 Attachments | Verschlüsselte Anhänge senden & empfangen |
|
|
| 🔔 Push / Poll | Echtzeit-Benachrichtigung oder intelligentes Polling |
|
|
| 🏷️ Labels & Ordner | Proton-Labels synchronisieren |
|
|
| 👥 Kontakte | Public-Key-Discovery für Empfänger |
|
|
|
|
---
|
|
|
|
## Architektur
|
|
|
|
```
|
|
┌─────────────────────────────────────────┐
|
|
│ Hermes Gateway (Agent Core) │
|
|
│ └── Platform Adapter: ProtonMail │
|
|
│ ├── Auth Manager (SRP-6a) │
|
|
│ ├── Crypto Engine (OpenPGP) │
|
|
│ ├── Sync Engine (SQLite) │
|
|
│ └── Notifier (Push → Hermes) │
|
|
└─────────────────────────────────────────┘
|
|
│
|
|
▼ HTTPS
|
|
┌─────────────────────────────────────────┐
|
|
│ ProtonMail API (mail.proton.me) │
|
|
│ ├── REST: Auth, Messages, Labels │
|
|
│ ├── gRPC: Events (neue Mail-Push) │
|
|
│ └── Key Server: Public Key Discovery │
|
|
└─────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Was ist im Paket?
|
|
|
|
```
|
|
Hermes_ProtonMail_Plugin/
|
|
├── README.md ← Diese Datei
|
|
├── IMPLEMENTATION_PLAN.md ← 5-Phasen Entwicklungsplan
|
|
├── plugin.yaml ← Plugin-Metadaten
|
|
├── install.sh ← Interaktives Setup (später)
|
|
├── lib/
|
|
│ ├── __init__.py
|
|
│ ├── auth.py ← SRP + Token Management
|
|
│ ├── crypto.py ← PGP Wrapper
|
|
│ ├── api.py ← HTTP Client
|
|
│ ├── sync.py ← SQLite Sync Engine
|
|
│ └── models.py ← Dataclasses
|
|
├── scripts/
|
|
│ └── proton_daemon.py ← Long-running Sync + Push
|
|
├── tests/
|
|
│ └── ... ← Unit + Integration Tests
|
|
└── LICENSE ← Unlicense (Public Domain)
|
|
```
|
|
|
|
---
|
|
|
|
## Lizenz
|
|
|
|
[Unlicense](LICENSE) — Public Domain
|