Skip to content

Commit 952dd62

Browse files
authored
feat(email): add GPG/PGP email signing and verification (#13)
1 parent 2449d56 commit 952dd62

33 files changed

+5908
-50
lines changed

CLAUDE.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ make ci # Runs: fmt → vet → lint → test-unit → test-race → secu
6464
- **CLI Framework**: Cobra
6565
- **API**: Nylas v3 ONLY (never use v1/v2)
6666
- **Timezone Support**: Offline utilities + calendar integration ✅
67+
- **Email Signing**: GPG/PGP email signing (RFC 3156 PGP/MIME) ✅
6768
- **Credential Storage**: System keyring (see below)
6869
- **Web UI**: Air - browser-based interface (localhost:7365)
6970

@@ -123,10 +124,12 @@ Credentials from `nylas auth config` are stored in the system keyring under serv
123124

124125
**Quick lookup:** CLI helpers in `internal/cli/common/`, HTTP in `client.go`, Air at `internal/air/`
125126

126-
**New packages (2024):**
127+
**New packages (2024-2026):**
127128
- `internal/ports/output.go` - OutputWriter interface for pluggable formatting
128129
- `internal/adapters/output/` - Table, JSON, YAML, Quiet output adapters
129130
- `internal/httputil/` - HTTP response helpers (WriteJSON, LimitedBody, DecodeJSON)
131+
- `internal/adapters/gpg/` - GPG/PGP email signing service (2026)
132+
- `internal/adapters/mime/` - RFC 3156 PGP/MIME message builder (2026)
130133

131134
**Full inventory:** `docs/ARCHITECTURE.md`
132135

docs/COMMANDS.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ nylas email read <message-id> # Read email
115115
nylas email read <message-id> --raw # Show raw body without HTML
116116
nylas email read <message-id> --mime # Show raw RFC822/MIME format
117117
nylas email send --to EMAIL --subject SUBJECT --body BODY # Send email
118+
nylas email send --to EMAIL --subject SUBJECT --body BODY --sign # Send GPG-signed email
119+
nylas email send --list-gpg-keys # List available GPG signing keys
118120
nylas email search --query "QUERY" # Search emails
119121
nylas email delete <message-id> # Delete email
120122
nylas email mark read <message-id> # Mark as read
@@ -136,7 +138,7 @@ nylas email ai analyze --provider claude # Use specific AI provider
136138
nylas email smart-compose --prompt "..." # AI-powered email generation
137139
```
138140

139-
**Details:** `docs/commands/email.md`, `docs/commands/ai.md`
141+
**Details:** `docs/commands/email.md`, `docs/commands/email-signing.md`, `docs/commands/ai.md`
140142

141143
---
142144

0 commit comments

Comments
 (0)