folder-to-mbox

folder-to-mbox is a command for coding agents from esaruoho/apple. It costs 109 tokens per session (744 once invoked), scanned A, original, MIT.

A command that converts folders of email-shaped files, including .eml, .mbox, text, and message-board dumps, into mailbox bundles that Apple Mail can import.

In plain words
What is it for?
Use it to import saved email archives or BBS messages into Apple Mail, with automatic format detection and selectable grouping.
Why use it?
It avoids manually converting large message archives and can organise messages into groups such as folders, senders, or dates.

Command

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/esaruoho/apple/folder-to-mbox
Clone the repo
git clone --depth 1 https://github.com/esaruoho/apple

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for folder-to-mbox

README.md
[![agentmods](https://agentmods.dev/badge/commands/esaruoho/apple/folder-to-mbox.svg)](https://agentmods.dev/commands/esaruoho/apple/folder-to-mbox)
Your own site
<a href="https://agentmods.dev/commands/esaruoho/apple/folder-to-mbox"><img src="https://agentmods.dev/badge/commands/esaruoho/apple/folder-to-mbox.svg" alt="Measured on agentmods" height="20"></a>
Per session 109 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 744 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00109 $0.00744
Opus 5 $0.00055 $0.00372
Sonnet 5 $0.00022 $0.00149
Haiku 4.5 $0.00011 $0.00074

Measured 4d ago against content hash 0f48a680ebee, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

folder-to-mbox scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/folder-to-mbox.md · 71 lines

How it starts

The opening of the file, as written. The whole thing — 71 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/folder-to-mbox

You came across a directory of saved emails / BBS dumps / message archive — hundreds, thousands, hundreds of thousands of text files. You want to read them in Apple Mail. You shouldn't have to write Python.

This command turns any folder of email-shaped files into a proper Apple-Mail-importable mailbox bundle hierarchy. Drag into Mail, import, done.

Supported input formats (auto-detected per file)

  • *.eml — RFC 5322 email files
  • *.mbox — classic Unix mbox (concatenated, From separators)
  • *.txt, *.md — BBS-style dumps (KeelyNet Message NNNNN ... DATE/TIME: headers)
  • *.txt, *.md — RFC 5322 headers at top
  • *.txt, *.md — plain text (one message per file, filename = subject, mtime = date)

Examples

# auto-detect, single mailbox bundle
/folder-to-mbox ~/archives/keelynet

# BBS dump, grouped by BBS Folder field, with custom mailbox name
/folder-to-mbox ~/archives/keelynet ~/output \
    --format bbs --group-by folder \
    --mailbox-name "KeelyNET Message Archive"

# Folder of .eml files exported from somewhere, grouped by year-month
/folder-to-mbox ~/exported-mail --group-by year-month

# Group all messages by sender so you have one mailbox per person
/folder-to-mbox ~/archive --group-by sender

Output structure

<output>/<Mailbox-Name>/                      (plain parent folder)
├── <Group1>.mbox/                            (Apple Mail bundle)
│   ├── Info.plist
│   └── mbox
├── <Group2>.mbox/
│   ├── Info.plist
│   └── mbox
...

Apple Mail import

Mail.app → File → Import Mailboxes… → Files in mbox format → select the parent folder → Continue. Mail discovers all sub-bundles and offers each as a separate mailbox.

Or double-click any individual .mbox bundle inside that folder to import just one group.

Implementation

Pure Python stdlib (Apple-skill pedigree rule — no Homebrew, no pip). Script: ~/work/apple/bin/apple-folder-to-mbox. Wiki concept: wiki/concepts/text-to-mailbox-bundle.md.

Read the full file on GitHub · 71 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 71 lines · 109 tokens per session scan A 0f48a680ebee

Subscribe to this mod's changes

folder-to-mbox is a command published in the GitHub repository esaruoho/apple (12 stars, last pushed 3d ago), licensed MIT. It adds 109 tokens to every session and 744 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.