AI-powered standup email agent — summarizes your GitHub commits and Jira tickets before every meeting.
Project description
Daily Summary Agent
Automatically emails you a standup summary before every meeting — what you worked on (from GitHub commits), what's in progress (from Jira), and any blockers. Powered by Gemini.
How it works
- Runs in the background, checking your Google Calendar every 5 minutes
- When a meeting is ~1 hour away, it fetches your recent GitHub commits and active Jira tickets
- Generates a concise standup summary using Gemini
- Emails it to you before the meeting starts
Installation
pip install daily-summary-agent
Requires Python 3.11+.
Setup
Run the interactive setup wizard — it walks you through everything:
daily-summary-agent setup
The wizard will ask for:
| What | Where to get it |
|---|---|
| Gemini API key | aistudio.google.com/app/apikey |
| GitHub token | github.com/settings/tokens → Generate new token (classic) → repo scope |
| GitHub username | Your GitHub handle (e.g. john-doe) |
| Gmail address | Your Gmail address |
| Gmail App Password | myaccount.google.com/apppasswords — requires 2FA enabled |
| Jira | Optional — press Enter to skip |
| Google credentials.json | See below |
Getting credentials.json (one-time)
- Go to console.cloud.google.com
- Create a project → APIs & Services → Enable APIs → enable Google Calendar API
- APIs & Services → Credentials → Create Credentials → OAuth 2.0 Client ID
- Choose Desktop App → download the JSON file
- Provide the path to that file when the wizard asks
All credentials are stored in ~/.daily-summary-agent/ on your machine — nothing is committed to the repo.
Running
daily-summary-agent start
On first run, a browser window opens asking you to grant Google Calendar read access. After you approve, it's saved automatically and all future starts are silent.
Run in the background with Docker
# Run locally once first to complete the Google Calendar browser auth
daily-summary-agent start # approve in browser, then Ctrl+C
# Then run persistently in Docker
docker compose up -d
docker compose logs -f
Configuration
After setup, you can edit ~/.daily-summary-agent/config.env to change these:
| Variable | Default | Description |
|---|---|---|
MEETING_ALERT_MINUTES |
60 |
Send email this many minutes before the meeting |
CHECK_INTERVAL_MINUTES |
5 |
How often to poll Google Calendar |
Project structure
daily_summary_agent/
cli.py # Entry point — setup wizard + start command
config.py # Config loading from ~/.daily-summary-agent/
agent.py # Gemini summarization
scheduler.py # APScheduler polling loop
integrations/
calendar.py # Google Calendar
github.py # GitHub commits (all branches, including org repos)
jira_client.py # Jira tickets
email_sender.py # SMTP email
Contributing
Issues and PRs welcome at github.com/naga-a11y/daily-summary-agent.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file daily_summary_agent-0.1.1.tar.gz.
File metadata
- Download URL: daily_summary_agent-0.1.1.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d33efd6f5bd0acbdbdacf4b202eed77e184d3bb89ca66acd93716894a6a72202
|
|
| MD5 |
43991ae8e24143b0acafa5c3540c3be0
|
|
| BLAKE2b-256 |
339c93d05e6e990b0d19c7463bd53827105c6b7e5f8719eb6616a2b5b53ea8f0
|
File details
Details for the file daily_summary_agent-0.1.1-py3-none-any.whl.
File metadata
- Download URL: daily_summary_agent-0.1.1-py3-none-any.whl
- Upload date:
- Size: 13.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbd802ccd0de7a44aafd576d4c555116e77ac447d3b6f7040b8fa6b7d0a6aef2
|
|
| MD5 |
961bf71c204a24317a9cef10edff6fdc
|
|
| BLAKE2b-256 |
2fa6ec21f0a72f2cf92e2fdaf5c34254eb6541d6c1250c78977399f12a7e2d79
|