walnut-mail SKILL.md skillB
walnut-mail from evanzhang008/open-walnut is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add evanzhang008/open-walnut/walnut-mail@git:20261007.54bb681Pins git:20261007.54bb681 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- B, 16 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- evanzhang008/open-walnut
- Path
src/integrations/mail/agent-skills/walnut-mail/SKILL.md- Versions recorded
- 5
- Latest version
- git:20261007.54bb681, committed Oct 7, 2026
- First version recorded
- Sep 5, 2026
- Size
- 11,379 bytes
- Repository stars
- 34
- License
- MIT
Read the user's real mailboxes, turn a message into a task, and draft replies through Walnut's mail tools (mail_list, mail_search, mail_read, mail_thread, mail_to_task, mail_draft, mail_request_send, mail_unsubscribe_request, mail_mark_read). Use when asked about the user's email, to find or summarise a message, to follow a thread, to make a task out of a mail, to write a reply, to mark mail read, or to get them off a mailing list. Covers the draft-then-ask contract…
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Walnut Mail
Walnut keeps a local cache of the user's mailboxes and gives you nine tools over it. Four read and five write. None of the writes can put a message on the wire, take the user off a list, or remove a message.
Those tools exist only once a mail account is connected, on the primary Walnut. In a Claude Code session they are Walnut ops: `walnut tools list` shows them and `walnut tools call mail_list '{"limit":20}'` runs one. If `mail_list` is in neither your tool list nor `walnut tools list`, there is no account yet: say so and point the user at the Mail app to add one, rather than guessing at their mail from anywhere else.
## The one rule: you draft, the human sends
There is **no send tool**. Not hidden, not gated, not behind a token: it does not exist.
1. `mail_draft` writes a draft row. Editable, versioned by `revision`, sends nothing.
2. `mail_request_send { draftId, revision }` sends the user a letter showing the exact stored draft.
3. The user answers Send, Edit or Discard, on the web console or on their phone. Their answer is what sends the mail.
…Read the whole file at its exact version.
How to install
mdr add evanzhang008/open-walnut/walnut-mail@sha256:45dd1e1e8b951d91The line at the top of this page pins the label git:20261007.54bb681, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_ufgavqeuhtfsrjsn)
2 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 5 versions of this file, between Sep 5, 2026 and Oct 7, 2026, about one every 8 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261007.54bb681 latest | 2026-10-07 | 54bb681 | 11,379 B | B | view · diff |
| git:20261007.9f5f42e | 2026-10-07 | 9f5f42e | 11,222 B | B | view · diff |
| git:20260922.432deed | 2026-09-22 | 432deed | 10,634 B | B | view · diff |
| git:20260905.e99b013 | 2026-09-05 | e99b013 | 9,189 B | B | view · diff |
| git:20260905.dc97a34 | 2026-09-05 | dc97a34 | 7,615 B | B | view |
Audit of the latest version
- fail: No prompt-injection phrasing (matched: ignore your previous instructions)
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (11379 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Starting a new one? Use a template for SKILL.md on mdpantry, which passes every one of these checks and says what to change in it.
Source
evanzhang008/open-walnut · 34 stars · license MIT · pushed 2026-10-22 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_ufgavqeuhtfsrjsn GET https://markdownregistry.com/api/v1/resolve?ref=evanzhang008/open-walnut/walnut-mail GET https://markdownregistry.com/api/v1/blob/45dd1e1e8b951d91f708f465cf93b02c984de929dafd40a6ef9bca0056a9bb7f
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.