extension-email — скилл для Claude Code: что делает и как установить
Скилл учит агента отправлять сервисные и транзакционные письма из канистр Motoko. Пригодится для разовых системных оповещений и чеков.
npx skills add caffeinelabs/skills --skill extension-email -a claude-codeЧто делает extension-email
Скилл добавляет инструкции по работе с готовым модулем mo:caffeineai-email/emailClient.mo. Он предназначен для отправки сервисных сообщений: чеков, статусов заказов и уведомлений. Для маркетинговых рассылок или подтверждения адресов этот инструмент использовать нельзя.
Каждому получателю уходит отдельное письмо через функцию sendServiceEmail. Вызов возвращает тип SendResult со значениями #ok или #err. Метод принципиально не выбрасывает исключений, поэтому любая сетевая ошибка или сбой шлюза возвращается в виде текста внутри #err.
Для работы требуется подписка Caffeine AI уровней plus или pro и пакет caffeineai-email версии ~0.4.0. Отправка идёт через шлюз с переменными INTEGRATIONS_GATEWAY_URL и INTEGRATIONS_GATEWAY_API_KEY. Если платформа не передала эти настройки при развёртывании, вызов завершится ошибкой #err.
Какие задачи решает
- отправить подтверждение заказа из бэкенда на Motoko
- разослать сервисные уведомления отдельными письмами каждому адресату
- обработать сбои отправки почты через тип SendResult без выброса исключений
Примеры запросов агенту
- Напиши функцию отправки подтверждения заказа через
sendServiceEmailиз модуляmo:caffeineai-email/emailClient. - Добавь обработку результата
SendResultпри отправке сервисного письма в бэкенде Motoko.
Как установить extension-email
1Через Skills CLI (Vercel)
npx skills add caffeinelabs/skills --skill extension-email -a claude-code2Вручную: положить файлы
~/.claude/skills/extension-email/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/extension-email/
1Через Skills CLI (Vercel)
npx skills add caffeinelabs/skills --skill extension-email -a codex2Вручную: положить файлы
.agents/skills/extension-email/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add caffeinelabs/skills --skill extension-email -a cursor2Вручную: положить файлы
.cursor/skills/extension-email/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install caffeinelabs/skills extension-email2Вручную: положить файлы
.github/skills/extension-email/SKILL.md1Через Skills CLI (Vercel)
npx skills add caffeinelabs/skills --skill extension-email -a gemini-cli2Командой платформы
gemini skills install https://github.com/caffeinelabs/skills --path skills/extension-emailВручную: положить файлы
.devin/skills/extension-email/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add caffeinelabs/skills --skill extension-email -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о extension-email
Как установить extension-email в Claude Code?
Выполните команду npx skills add caffeinelabs/skills --skill extension-email -a claude-code в терминале.
Можно ли использовать этот скилл для маркетинговых рассылок?
Нет, он рассчитан только на служебные и транзакционные письма. Для маркетинга и подтверждения почты у Caffeine AI предусмотрены отдельные скиллы.
Что нужно для работы extension-email?
Понадобится пакет caffeineai-email версии ~0.4.0, подписка Caffeine AI уровня plus или pro, а также ключи INTEGRATIONS_GATEWAY_URL и INTEGRATIONS_GATEWAY_API_KEY, передаваемые платформой.
Исходный текст
SKILL.md · Apache-2.0
---
name: extension-email
description: Support for sending service/transactional emails. Don't use this for sending marketing emails or verification emails.
version: 0.4.1
compatibility:
mops:
caffeineai-email: "~0.4.0"
caffeineai-subscription: [plus, pro]
---
# Email — Service/Transactional
Service/transactional email extension for [Caffeine AI](https://caffeine.ai?utm_source=caffeine-skill&utm_medium=referral).
## Overview
This skill adds support for sending service and transactional emails from the backend canister. Use `sendServiceEmail` for order confirmations, notifications, and similar one-off emails.
# Backend
This component is for sending service/transactional emails.
There is the prefabricated module `mo:caffeineai-email/emailClient.mo` which cannot be modified.
- Use the sendServiceEmail function.
- Each recipient is sent an individual email
- It returns a SendResult which is #ok if the email is sent successfully otherwise #err(error) with the error text.
- A failed send never throws. Every failure, a gateway error included, comes back as `#err`.
```mo:caffeineai-email/emailClient.mo
module {
public type SendResult = {
#ok;
#err : Text;
};
public func sendServiceEmail(
fromUsername : Text,
recipients : [Text],
subject : Text,
htmlBody : Text,
) : async SendResult;
};
```
Usage for `sendServiceEmail`:
```motoko filepath=src/backend/main.mo
import Runtime "mo:core/Runtime";
import EmailClient "mo:caffeineai-email/emailClient";
actor {
public func sendOrderConfirmationEmail(recipientEmailAddress : Text, username : Text, orderReference : Text) : async () {
let result = await EmailClient.sendServiceEmail(
"no-reply",
[recipientEmailAddress],
"Order " # orderReference # " confirmed",
"Hello " # username # ",\nYour order " # orderReference # " has been confirmed. Your items will ship tomorrow.",
);
switch (result) {
case (#ok) {};
case (#err(error)) {
Runtime.trap("Failed to send order confirmation email: " # error);
};
};
};
};
```
## Upgrading from the previous version
An app built with `caffeineai-email` 0.3.x re-pins with `mops add [email protected]`. `sendServiceEmail` and `sendRawEmail` keep their signatures. Every send now goes through the mail gateway with the settings the platform injects on every deploy (`INTEGRATIONS_GATEWAY_URL` / `INTEGRATIONS_GATEWAY_API_KEY`); the transport canister and `INTEGRATIONS_CANISTER_ID` are no longer used, and a send without those settings returns `#err` instead of falling back. Apps that use verification, marketing or calendar email follow the upgrade sections of those skills.
An app built with `caffeineai-email` 0.2.x re-pins with `mops add [email protected]`. `sendServiceEmail` and `sendRawEmail` keep their signatures; every send now carries an idempotency key, so a retried outcall is sent and charged once. Apps that use verification or marketing email follow the upgrade sections of those skills.
© caffeinelabs · Apache-2.0 · caffeinelabs/skills