Skip to content

OpenClaw skill

Custom Mail ships an OpenClaw skill so an agent can pull the Docker image, set secrets, and start the console. The skill lives in the repo at skills/custom-mail/SKILL.md (ClawHub slug: custom-mail-skill, version 1.0.0).

It requires the docker binary on the machine where the agent runs. It does not deploy to Cloudflare; that is still Deploy.

Install

ClawHub

bash
clawhub install custom-mail-skill

Browse the published skill: custom-mail-skill on ClawHub (version 1.0.0). CLI notes: ClawHub.

From this repository

Copy the skill folder into the OpenClaw workspace (highest priority) or the shared skills directory:

bash
git clone https://github.com/InnoNestX/Custom-Mail.git
cp -R Custom-Mail/skills/custom-mail ~/.openclaw/workspace/skills/custom-mail

Shared install (all agents on that instance):

bash
cp -R Custom-Mail/skills/custom-mail ~/.openclaw/skills/custom-mail

OpenClaw reloads SKILL.md from those directories. See Skills.

What the skill does

When you ask to run Custom Mail locally, the agent should:

  1. Confirm Docker is available.
  2. Set ADMIN_PASSWORD (required) and the provider API key you give it.
  3. Optionally set MAIL_PROVIDER, MAIL_THEME, MAIL_LAYOUT, MAIL_LOGO.
  4. docker pull xuxuclassmate/custom-mail:1.0.0 (or :latest / GHCR ghcr.io/innonestx/custom-mail:1.0.0).
  5. docker run on port 8787 (or PORT).
  6. Tell you to open http://localhost:8787 and sign in.

Health check: curl -s http://localhost:8787/api/health.

Full Docker flags and Compose: Docker.

Environment the skill knows

VariableRequiredDescription
ADMIN_PASSWORDyesConsole login
MAIL_PROVIDERnobrevo, resend, sendgrid, mailgun, postmark, mailersend, smtp2go, sparkpost
MAIL_THEMEnoforest, midnight, ocean, paper, rose, slate, aurora, sunset, nord, …
MAIL_LAYOUTnocard, minimal, banner, digest, compact
MAIL_LOGOnoauto, image, monogram, none
BREVO_API_KEYnoDefault provider; needed to send unless another key is set
MAIL_API_KEYnoFallback API key
RESEND_API_KEYnoWith MAIL_PROVIDER=resend
SENDGRID_API_KEYnoWith MAIL_PROVIDER=sendgrid
PORTnoContainer port, default 8787

The skill metadata lists the same keys under metadata.openclaw.envVars. Map them in ~/.openclaw/openclaw.json if you keep secrets in the OpenClaw config instead of the chat.

Example prompts

Pull and run Custom Mail on port 8787 with ADMIN_PASSWORD=dev-secret and my Brevo key.
Start the custom-mail Docker container with MAIL_PROVIDER=resend, MAIL_THEME=nord, and RESEND_API_KEY.
Clone InnoNestX/Custom-Mail and bring it up with docker compose.

Chinese triggers in the skill include 「帮我本地跑一下 Custom Mail」 and 「用 Docker 启动发信控制台」.

After it is up

Use the console: compose Markdown, preview, attach files, send, browse history.

To change baked-in mail.json / plugins/ files, clone the repo and rebuild with Compose. Slot env vars still override the active plugin without a rebuild.

Production

The skill can remind you of the Cloudflare path, but secrets for production stay on the Worker:

bash
git clone https://github.com/InnoNestX/Custom-Mail.git
cd Custom-Mail
npx wrangler secret put ADMIN_PASSWORD
npx wrangler secret put BREVO_API_KEY
npm run deploy

See Deploy.

Open Source · MIT License