email-reports
Configure and trigger weekly habit progress email reports via SMTP. Use when you need to set up email delivery, test SMTP settings, send the weekly report immediately, or preview the report content. Triggers include "send report", "email summary", "weekly digest", "SMTP setup", or "habit email".
Best use case
email-reports is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Configure and trigger weekly habit progress email reports via SMTP. Use when you need to set up email delivery, test SMTP settings, send the weekly report immediately, or preview the report content. Triggers include "send report", "email summary", "weekly digest", "SMTP setup", or "habit email".
Teams using email-reports should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/email-reports/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How email-reports Compares
| Feature / Agent | email-reports | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Configure and trigger weekly habit progress email reports via SMTP. Use when you need to set up email delivery, test SMTP settings, send the weekly report immediately, or preview the report content. Triggers include "send report", "email summary", "weekly digest", "SMTP setup", or "habit email".
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# email-reports
Configure and trigger weekly habit progress email reports from habit-tracker.
## When to use
- Setting up SMTP credentials for email delivery
- Testing that email delivery works
- Triggering the weekly report immediately (without waiting for the scheduled time)
- Debugging email delivery problems
- Previewing what the report will contain
## Configuration
Email reports require SMTP credentials. Configure via API or environment variables.
### Via API (persisted to database)
```bash
curl -X PATCH http://localhost:3000/api/settings \
-H "Content-Type: application/json" \
-d '{
"email_enabled": "1",
"email_smtp_host": "smtp.gmail.com",
"email_smtp_port": "587",
"email_smtp_user": "you@gmail.com",
"email_smtp_pass": "your-app-password",
"email_to": "you@gmail.com",
"email_report_day": "0",
"email_report_hour": "8",
"timezone": "America/Los_Angeles"
}'
```
`email_report_day`: 0=Sunday, 1=Monday, ..., 6=Saturday
### Via environment variables
```bash
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=0
SMTP_USER=you@gmail.com
SMTP_PASS=your-app-password
REPORT_TO=you@gmail.com
TIMEZONE=America/Los_Angeles
```
Environment variables take effect on server restart.
## Send test email
```bash
curl -X POST http://localhost:3000/api/email/test
# Sends a minimal test message to the configured REPORT_TO address
# Response: { "sent": true } or { "error": "..." }
```
## Trigger weekly report now
```bash
curl -X POST http://localhost:3000/api/email/report
# Sends the full weekly report immediately regardless of schedule
# Response: { "sent": true, "habits": 5, "weekRate": 0.86 }
```
## Get current settings
```bash
curl http://localhost:3000/api/settings
```
Response includes all email settings (passwords are masked as `****`).
## Report schedule
The report is sent by a cron job that runs every hour. When the current hour matches `email_report_hour` and the current day matches `email_report_day` (in the configured timezone), the report is sent.
To prevent duplicates, the server records `last_report_sent_at`. If a report was already sent within the past hour, the cron job skips.
## Report contents
The HTML email (inline CSS only, no external assets) contains:
- Week date range (Mon-Sun)
- Overall completion rate this week vs last week
- Per-habit breakdown: 7 dots showing each day, percentage
- "Best habit" callout (highest completion rate)
- "Room to improve" callout (lowest completion rate, below 80%)
## Troubleshooting
### "Connection refused" or "ECONNREFUSED"
SMTP host or port is wrong. Check `SMTP_HOST` and `SMTP_PORT`.
### "Authentication failed"
For Gmail: use an App Password, not your account password. Generate at myaccount.google.com/apppasswords.
### Report not arriving on schedule
Check that `email_enabled` is set to `1` in settings. Verify `email_report_day` and `email_report_hour` match your expected send time. Check that `timezone` is set correctly (e.g., `America/New_York`).
Use `POST /api/email/report` to send manually and confirm SMTP is working.
### "No recipients defined"
`email_to` or `REPORT_TO` is not set. Configure a recipient address.Related Skills
email-digest
Configure, test, and troubleshoot the reading-list daily email digest delivered via nodemailer.
time-reports
Generate time tracking reports from terminal-time-tracker data. Use when summarizing hours by project, comparing weeks, analyzing daily patterns, or exporting time data for invoicing. Triggers include "time report", "hours by project", "weekly summary", "time breakdown", "how long did I spend", "invoice export".
Skill: email-digest-builder
Use email-digest-builder to manage feeds, topics, and digest delivery through the REST API.
Skill: Uptime Monitoring
## Overview
Skill: Status Page
## Overview
Skill: unit-conversion
## Overview
Skill: recipe-scaler
## Overview
reading-list
Operate the reading-list API to save, manage, tag, search, and export articles.
websocket-realtime
Use the WebSocket connection in poll-builder to receive live vote updates. Use when you need to stream real-time poll results, monitor a poll for new votes, or build a live dashboard. Triggers include "live results", "real-time updates", "stream votes", "watch poll", or "WebSocket".
poll-builder
Self-hosted poll creation tool with real-time results. Use when you need to create a poll, check vote counts, close a poll, export results, or get the shareable link for a poll. Triggers include "create poll", "vote", "poll results", "survey", "collect votes", "share poll", or any task involving polling or voting.
Skill: personal-finance
## Overview
Skill: csv-import
## Overview