- Home
- Skills
- Jacobrask
- Claude Skills
- Jmap Email
jmap-email_skill
- Shell
4
GitHub Stars
7
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill jacobrask/claude-skills --skill jmap-email- DEVELOPMENT.md3.6 KB
- package-lock.json1.8 KB
- package.json247 B
- README.md1.2 KB
- reference.md6.6 KB
- SKILL.md4.1 KB
- tsconfig.json405 B
Overview
This skill enables JMAP email operations using Node.js and the jmap-jam library. It provides ready-made scripts to list, search, read, move, and delete emails against JMAP-compatible servers like FastMail, Cyrus IMAP, and Stalwart. Set a few environment variables and run the scripts for fast programmatic inbox management.
How this skill works
Scripts use the JMAP session URL, a bearer token, and an account ID (optional) to authenticate and call JMAP endpoints. Common scripts expose filtered listing, keyword search previews, full-message retrieval, mailbox listing, message moves, and deletions. Each script accepts CLI flags (for example --unread, --mailbox, --from, --limit) and prints compact, human-readable output.
When to use it
- When you need to search or filter large volumes of email programmatically.
- To triage and move batches of messages across mailboxes with scripts.
- When building automation or integrations that require reliable JMAP access.
- To inspect full email content for specific message IDs.
- When migrating or organizing mail on FastMail, Cyrus, or other JMAP servers.
Best practices
- Set JMAP_SESSION_URL, JMAP_BEARER_TOKEN, and optionally JMAP_ACCOUNT_ID in your environment before running scripts.
- Use --limit and --mailbox flags to scope queries and avoid large responses.
- Preview matches with search-keywords.ts, then fetch full content with get-email.ts only for selected IDs.
- Group IDs by destination mailbox and call move-by-ids.ts once per mailbox to minimize API calls.
- Keep an audit or log of moved and deleted message IDs to support reversions or debugging.
Example use cases
- Batch triage: list recent unread messages, ask a user for mailbox choices, then move messages by ID.
- Automated receipt collection: search for keywords like invoice or receipt and export previews for accounting.
- Sender cleanup: list messages from a specific sender and archive or delete them in bulk.
- Mailbox mapping: list-mailboxes.ts to discover folder names, then move messages into a target mailbox.
- Forensic read: use get-email.ts to retrieve full RFC-style content for a given message ID.
FAQ
Set JMAP_SESSION_URL and JMAP_BEARER_TOKEN. JMAP_ACCOUNT_ID is optional and auto-detected if omitted.
How do I fetch full email content?
Run get-email.ts with the email ID returned by list or search scripts to retrieve the complete message.
Can I batch-move many messages efficiently?
Yes. Group message IDs by target mailbox and call move-by-ids.ts --mailbox <name> <id1> <id2> ... to minimize API requests.