Guides  /  iOS · Android · desktop

Playbook: a human account in a JMAP client (Mailtemi, etc.)

Goal: [email protected] in a modern JMAP client — Mailtemi, the bullmoose CLI, or any RFC 8620 client. This is the native face: full mailboxes/folders, threads, server-side search, live push, drafts, vacation — and it is entirely serverless and $0 (no popcorn, unlike the Apple Mail playbook).

Endpoint placeholder: jmap.<your-domain> is your jmap worker’s Workers custom domain (or the bullmoose-jmap.<acct>.workers.dev fallback).

1. Create the account

bullmoose admin account create [email protected] --tenant t_home --name "Your Name"
bullmoose admin password [email protected]          # login password (prompts)

2. Mint a device app-password

mail covers every mail verb (read/draft/send/move/…). One token per device:

bullmoose login [email protected]
bullmoose token create --name "mailtemi" --scopes mail    # → bm_… , shown once

3. Connect the client

JMAP clients authenticate with the app-password, never the login password. Two ways in:

Mailtemi: add a JMAP/email account, enter your address + the app-password; if prompted for a server, give the session URL above.

CLI (the reference client):

bullmoose login [email protected]     # autodiscovers via SRV; --base <url> to override
bullmoose watch                     # live push
echo "hi" | bullmoose send --to [email protected] --subject "sent from the CLI"

4. What to expect

Troubleshooting

Source: docs/playbooks/jmap-client.md — edit it in the repo and this page updates.