Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Send SMTP email notifications after Codex completes a task. Use when one Codex or Claude run is finished, or when you need to notify on task completion with device name, project name, status, and summary via email.
.claude/skills/aiskillstore-email-notify/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -32% | 0% |
| case-17 | ✗→✓ | ▲ Improved | -36% | 0% |
Send an email notification after each Codex task. Use the helper script to resolve the project name and send via SMTP.
Add the following lines to ~/.bashrc (Linux) or ~/.zshrc (macOS):
export CODEX_MACHINE_NAME="Machine-name" # e.g., Macbook
export CODEX_EMAIL_SMTP_HOST="smtp.example.com"
export CODEX_EMAIL_SMTP_PORT="587"
export CODEX_EMAIL_USERNAME="user@example.com"
export CODEX_EMAIL_PASSWORD="..."
export CODEX_EMAIL_FROM="user@example.com"
export CODEX_EMAIL_TO="recipient1@example.com,recipient2@example.com"
export CODEX_EMAIL_USE_TLS="false" # true/false, default false
export CODEX_EMAIL_USE_SSL="true" # true/false, default trueIf your SMTP server does not require auth, leave CODEX_EMAIL_USERNAME and CODEX_EMAIL_PASSWORD unset. Set CODEX_EMAIL_USE_SSL to true for SMTPS (typically port 465) and CODEX_EMAIL_USE_TLS to true for STARTTLS. Do not set both CODEX_EMAIL_USE_TLS and CODEX_EMAIL_USE_SSL to true.
For example, add this instruction to AGENTS.md: > Use skill email-notify to notify users when each agent run is finished or when any notifications would be sent to users.
AGENTS.md using one of:project_name: My Project (or name:)Project Name: My Projectsuccess, failed, partial, blocked, etc.Run:
bashpython3 ~/.codex/skills/email-notify/scripts/send_email_notification.py \ --task-title "..." \ --status "success" \ --summary "..." \ --project-name "..."
scripts/send_email_notification.py: Send the email notification and resolve the project name.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 10,122 | 18,202 | +80% | 1 | 1 | 0% | 759 | 962 | +27% | 0 | 0 | — |
case-02 | fail→fail | 4,950 | 19,678 | +298% | 1 | 1 | 0% | 748 | 1,144 | +53% | 0 | 0 | — |
case-03 | fail→fail | 10,411 | 11,592 | +11% | 1 | 1 | 0% | 801 | 992 | +24% | 0 | 0 | — |
case-08 | fail→pass | 15,600 | 9,430 | -40% | 1 | 1 | 0% | 1,842 | 1,422 | -23% | 0 | 0 | — |
case-04 | pass→pass | 18,671 | 17,243 | -8% | 1 | 1 | 0% | 2,592 | 3,017 | +16% | 0 | 0 | — |
case-05 | pass→pass | 10,169 | 17,174 | +69% | 1 | 1 | 0% | 2,214 | 3,055 | +38% | 0 | 0 | — |
case-06 | pass→pass | 17,141 | 16,520 | -4% | 1 | 1 | 0% | 2,289 | 2,684 | +17% | 0 | 0 | — |
case-07 | fail→pass | 14,556 | 8,350 | -43% | 1 | 1 | 0% | 1,704 | 1,230 | -28% | 0 | 0 | — |
case-09 | pass→pass | 14,394 | 6,859 | -52% | 1 | 1 | 0% | 1,607 | 864 | -46% | 0 | 0 | — |
case-10 | pass→pass | 15,680 | 7,546 | -52% | 1 | 1 | 0% | 1,237 | 1,025 | -17% | 0 | 0 | — |
case-11 | fail→pass | 10,471 | 2,181 | -79% | 1 | 1 | 0% | 837 | 909 | +9% | 0 | 0 | — |
case-12 | fail→pass | 18,252 | 8,472 | -54% | 1 | 1 | 0% | 1,800 | 1,219 | -32% | 0 | 0 | — |
case-17 | fail→pass | 13,542 | 7,300 | -46% | 1 | 1 | 0% | 1,545 | 986 | -36% | 0 | 0 | — |
case-13 | fail→pass | 8,682 | 1,759 | -80% | 1 | 1 | 0% | 576 | 939 | +63% | 0 | 0 | — |
case-14 | pass→pass | 12,202 | 7,083 | -42% | 1 | 1 | 0% | 1,078 | 944 | -12% | 0 | 0 | — |
case-15 | fail→pass | 16,823 | 2,211 | -87% | 1 | 1 | 0% | 1,275 | 967 | -24% | 0 | 0 | — |
case-16 | fail→pass | 10,358 | 6,949 | -33% | 1 | 1 | 0% | 1,666 | 917 | -45% | 0 | 0 | — |
case-18 | fail→fail | 7,396 | 1,895 | -74% | 1 | 1 | 0% | 1,184 | 943 | -20% | 0 | 0 | — |
case-19 | fail→pass | 5,478 | 6,999 | +28% | 1 | 1 | 0% | 894 | 933 | +4% | 0 | 0 | — |
case-20 | fail→pass | 5,530 | 7,035 | +27% | 1 | 1 | 0% | 891 | 941 | +6% | 0 | 0 | — |
case-21 | fail→pass | 12,972 | 6,562 | -49% | 1 | 1 | 0% | 1,302 | 879 | -32% | 0 | 0 | — |
case-22 | pass→pass | 11,978 | 1,621 | -86% | 1 | 1 | 0% | 1,078 | 839 | -22% | 0 | 0 | — |
case-23 | fail→pass | 12,220 | 6,864 | -44% | 1 | 1 | 0% | 1,185 | 928 | -22% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 20 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +52 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.