Skip to main content

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

  1. Runs in the background, checking your Google Calendar every 5 minutes
  2. When a meeting is ~1 hour away, it fetches your recent GitHub commits and active Jira tickets
  3. Generates a concise standup summary using Gemini
  4. 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)

  1. Go to console.cloud.google.com
  2. Create a project → APIs & Services → Enable APIs → enable Google Calendar API
  3. APIs & Services → Credentials → Create Credentials → OAuth 2.0 Client ID
  4. Choose Desktop App → download the JSON file
  5. 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

daily_summary_agent-0.1.1.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

daily_summary_agent-0.1.1-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

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

Hashes for daily_summary_agent-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d33efd6f5bd0acbdbdacf4b202eed77e184d3bb89ca66acd93716894a6a72202
MD5 43991ae8e24143b0acafa5c3540c3be0
BLAKE2b-256 339c93d05e6e990b0d19c7463bd53827105c6b7e5f8719eb6616a2b5b53ea8f0

See more details on using hashes here.

File details

Details for the file daily_summary_agent-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for daily_summary_agent-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cbd802ccd0de7a44aafd576d4c555116e77ac447d3b6f7040b8fa6b7d0a6aef2
MD5 961bf71c204a24317a9cef10edff6fdc
BLAKE2b-256 2fa6ec21f0a72f2cf92e2fdaf5c34254eb6541d6c1250c78977399f12a7e2d79

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page