imap-client
Read, search, and download email over IMAP from the command line using the `myl` CLI client. Use this skill whenever the user wants to interact with their mailbox from a terminal — checking the inbox, listing or searching messages, reading a specific email, opening HTML or raw source, or saving attachments. Trigger on any of these cues even when `myl` is not named explicitly — "check my email", "look in my inbox", "search my mail for X", "find the email from Y", "download the attachment", "is there an email about Z", "read the latest message", "show me unread", "connect to my IMAP server", "imap.gmail.com", "imap.yandex.com", "imap.yandex.ru", "imap.mail.ru", "imap.fastmail.com", "Yandex Mail", "Mail.ru", "Gmail IMAP", "проверить почту", "новые письма", "найти письмо", and similar. Also trigger when the user asks to script or automate any of the above. Do not trigger for outgoing mail (sending, SMTP, drafting) — `myl` is read-only — or for desktop/GUI mail clients.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/aggrrrh/imap-clientimap-client
Read mailboxes over IMAP from the terminal using myl, a small Python CLI client. Maintained and distributed by codd-tech. Designed to drop into OpenClaw and any other AgentSkills-compatible runtime (Claude Code, generic).
myl is read-only and intentionally minimal: it lists, searches, and fetches messages and attachments. It does not send mail, manage folders, or modify state beyond optionally marking messages as seen.
How credentials reach this skill
This is the most important section. You do not type passwords on the command line. Credentials live in environment variables that the runtime injects per agent run. The skill reads them and assembles the right myl flags through the wrapper at {baseDir}/scripts/imap.sh.
The variables the wrapper expects:
| Variable | Required | Purpose |
|---|---|---|
IMAP_USER | yes | Login (usually full email address) |
IMAP_PASSWORD | yes | App-specific password (see references/authentication.md) |
IMAP_PROVIDER | no | One of auto (default), gmail, yandex, mailru, manual |
IMAP_SERVER | only with manual | IMAP host |
IMAP_PORT | no | Defaults to 993 |
IMAP_STARTTLS | no | 1 to add --starttls (use only with port 143) |
Set them once, use them every session. How depends on the runtime — references/authentication.md covers OpenClaw's skills.entries.imap-client.env, generic shell export, and a ~/.config/imap-client/credentials fallback file. Do not invent your own scheme; use one of those three.
If the wrapper detects IMAP_USER or IMAP_PASSWORD is missing, it prints the setup instructions and exits without contacting any server. That's the signal to stop and walk the user through credential setup before retrying.
Workflow at a glance
- Check that
mylis installed. OpenClaw gates this skill onrequires.bins: ["myl"], so it shouldn't load without it. For non-OpenClaw runtimes, runbash {baseDir}/scripts/check_myl.sh. If missing, followreferences/installation.md. - Confirm credentials are configured. Run
bash {baseDir}/scripts/imap.sh --count 1 >/dev/nullonce. Success means the env vars are wired and the connection works. Failure means walk the user throughreferences/authentication.md. - Run the requested operation through the wrapper. Listing, searching, fetching by ID, getting HTML, saving raw
.eml, or pulling an attachment. - Summarise the result. Don't dump full raw email bodies into the chat unless the user asked.
Every myl example in this skill goes through {baseDir}/scripts/imap.sh, which expands env vars into the right myl flags. You do not need to remember --google vs --auto vs --server/--port; the wrapper picks based on IMAP_PROVIDER.
When to read what
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-aggrrrh-imap-client": {
"enabled": true,
"auto_update": true
}
}
}