# Send Fastmail Suite to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "fastmail-suite",
    "name": "Fastmail Suite",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/TassieDaddy/fastmail-suite",
    "canonicalUrl": "https://clawhub.ai/TassieDaddy/fastmail-suite",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/fastmail-suite",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=fastmail-suite",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "scripts/calendar_caldav.py",
      "scripts/contacts.py",
      "scripts/fastmail.py",
      "scripts/jmap_client.py",
      "scripts/mail.py"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "fastmail-suite",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T21:28:44.475Z",
      "expiresAt": "2026-05-06T21:28:44.475Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=fastmail-suite",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=fastmail-suite",
        "contentDisposition": "attachment; filename=\"fastmail-suite-0.1.4.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "fastmail-suite"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/fastmail-suite"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/fastmail-suite",
    "downloadUrl": "https://openagent3.xyz/downloads/fastmail-suite",
    "agentUrl": "https://openagent3.xyz/skills/fastmail-suite/agent",
    "manifestUrl": "https://openagent3.xyz/skills/fastmail-suite/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/fastmail-suite/agent.md"
  }
}
```
## Documentation

### Fastmail Suite

Use the bundled scripts (stdlib-only) to interact with Fastmail safely.

### Quick start

Set credentials/tokens:

# JMAP token (Mail + Contacts scopes)
export FASTMAIL_TOKEN='…'

# CalDAV app password (calendar)
export FASTMAIL_CALDAV_USER='you@yourdomain'
export FASTMAIL_CALDAV_PASS='app-password'

# Optional: redact output (default is 1)
export FASTMAIL_REDACT=1

Verify setup:

python3 skills/fastmail-suite/scripts/suite.py status

### Status / onboarding checks

python3 skills/fastmail-suite/scripts/suite.py status

Expected style:

Mail (JMAP): OK / MISSING TOKEN / AUTH FAILED
Calendar (CalDAV): OK / MISSING APP PASSWORD / AUTH FAILED
Contacts (JMAP): OK / MISSING TOKEN / AUTH FAILED

### Inbox triage

python3 skills/fastmail-suite/scripts/suite.py triage today
python3 skills/fastmail-suite/scripts/suite.py triage last-7d

Triage summarizes:

top senders,
action-needed subject patterns (invoice, bill, payment, due, confirm, action required, reminder, ...),
highlights for friends.tas.edu.au and bill/payment-like items.

### Search

python3 skills/fastmail-suite/scripts/suite.py search "from:billing@ subject:invoice last:7d"
python3 skills/fastmail-suite/scripts/suite.py search "has:attachment before:2026-02-01 tax"
python3 skills/fastmail-suite/scripts/suite.py search "after:2026-02-01 reminder"

Supported query tokens:

from:foo
subject:bar
has:attachment
last:7d (and other Nd forms)
before:YYYY-MM-DD
after:YYYY-MM-DD
Bare words → subject/body text search

### Thread summary

python3 skills/fastmail-suite/scripts/suite.py thread <email-id>
python3 skills/fastmail-suite/scripts/suite.py thread <thread-id>
python3 skills/fastmail-suite/scripts/suite.py thread "school invoice"

Shows concise thread summary:

participants,
rough timeline,
latest 1–2 messages with short plain-text summary.

### Email (JMAP)

python3 skills/fastmail-suite/scripts/fastmail.py mail inbox --limit 20
python3 skills/fastmail-suite/scripts/fastmail.py mail search "invoice" --limit 10
python3 skills/fastmail-suite/scripts/fastmail.py mail read <email-id>

### Contacts (JMAP)

python3 skills/fastmail-suite/scripts/fastmail.py contacts list --limit 20
python3 skills/fastmail-suite/scripts/fastmail.py contacts search "alice" --limit 5
python3 skills/fastmail-suite/scripts/fastmail.py contacts get <contact-id>

### Calendar (CalDAV)

python3 skills/fastmail-suite/scripts/fastmail.py calendar calendars
python3 skills/fastmail-suite/scripts/fastmail.py calendar upcoming --days 7

### Security & Credentials (important)

Fastmail Suite works with real Fastmail credentials, so the design is intentionally conservative.

### Required

FASTMAIL_TOKEN — Fastmail JMAP API token (Mail + Contacts scopes). Best practice is to use a read-only token for normal usage.

### Optional but supported

FASTMAIL_TOKEN_SEND — separate JMAP token with Email Submission scope for sending mail. Only used if you explicitly enable writes.
FASTMAIL_CALDAV_USER / FASTMAIL_CALDAV_PASS — Fastmail app password for calendar (CalDAV).
FASTMAIL_REDACT — controls redaction of output (default 1 = redacted).
FASTMAIL_ENABLE_WRITES — when set to 1, enables write operations (send/move/update). Omit or set to 0 to keep read-only.

### Safety model

Redaction is ON by default
Output is redacted unless you pass --raw where supported. FASTMAIL_REDACT=1 is the default.


Writes are OFF by default
The skill will not send/move/update anything unless FASTMAIL_ENABLE_WRITES=1 and you have provided appropriate tokens (for example FASTMAIL_TOKEN_SEND for sending mail).


Separation of roles
You can keep a strict separation:

Email reading: FASTMAIL_TOKEN
Email sending: FASTMAIL_TOKEN_SEND (optional, only when writes are enabled)
Calendar: FASTMAIL_CALDAV_USER + FASTMAIL_CALDAV_PASS (Fastmail app password)



Read-only mode is fully supported
You can run the entire suite (status, triage, search, thread, contacts, calendar read) with a read-only JMAP token + calendar app password, without ever enabling writes.

### v0.1.1

Contacts commands (list, search, get) tested against real Fastmail accounts.
suite.py status now probes Contacts via JMAP and reports Contacts (JMAP) health.

### v0.2

Added scripts/suite.py with onboarding status checks for JMAP + CalDAV.
Added mail workflows:

triage today
triage last-7d
search <query> with token parser (from:, subject:, has:attachment, last:, before:, after:)
thread <id-or-snippet> conversation summary


Added wrapper passthrough in scripts/fastmail.py for suite ....
Added quick-start and usage examples for status/triage/search/thread.
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: TassieDaddy
- Version: 0.1.4
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-29T21:28:44.475Z
- Expires at: 2026-05-06T21:28:44.475Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/fastmail-suite)
- [Send to Agent page](https://openagent3.xyz/skills/fastmail-suite/agent)
- [JSON manifest](https://openagent3.xyz/skills/fastmail-suite/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/fastmail-suite/agent.md)
- [Download page](https://openagent3.xyz/downloads/fastmail-suite)