Examples
Runnable examples from the jmap-kit repository demonstrating library features. Each example is self-contained with its own README explaining what it does and how to run it.
Prerequisites
Most examples require a JMAP server and a bearer token. Create a .env file in the repo root:
JMAP_BEARER_TOKEN = your - token JMAP_HOSTNAME = api . fastmail . com JMAP_LOG_LEVEL = info
Copy
Examples
Basic — Connect to a JMAP server and send Core/echo invocations
Capability Registration — Register additional capabilities (e.g. FastMail Masked Email)
Invocations — Create and inspect invocations without a server connection
Request Builder — Build multi-method requests with result references
Response Dispatch — Handle responses by ID, method name, data type, or default handler
Email Operations — List mailboxes, find the inbox, query emails
Blob Operations — Upload and download files via the JMAP blob API
Custom Capability — Write a complete custom capability from scratch
Validation Plugins — Write and register custom validation plugins
Shared Utilities
The utils/ directory contains shared code used across examples:
env.ts — Environment variable validation with Zod
fetch-transport.ts — A fetch-based Transport implementation
logger.ts — A coloured console logger with configurable log levels