Skip to main content

Rule-based daily Gmail inbox triage. Zero LLM, read-only, Windows-friendly.

Project description

morning-brief

Rule-based daily Gmail inbox triage. Zero LLM, read-only, Windows-friendly.

Classifies the last day of mail into HIGH / MEDIUM / LOW / SPAM from a YAML rules file, writes a markdown digest, and pops a desktop toast. Scan your inbox in thirty seconds instead of thirty minutes.

Why not an LLM-based tool

Paid-LLM triage tools like mailtrim and gmail-digest work, but cost money per run and fail silently when the API is down. For a personal inbox, most of the signal lives in sender domain plus a handful of subject keywords. Rules handle that case reliably and for free.

Install

pip install morning-brief

Windows users also want the toast helper:

pip install "morning-brief[windows]"

One-time setup

  1. Create a Google Cloud project, enable the Gmail API, create an OAuth 2.0 Client ID of type Desktop app, and download the JSON as credentials.json.
  2. Run morning-brief init to scaffold ~/.morning-brief/.
  3. Drop credentials.json into ~/.morning-brief/.
  4. Edit ~/.morning-brief/rules.yaml to match your senders.
  5. Run morning-brief run. First run opens your browser for read-only consent and writes token.json locally.

Daily run

Windows Task Scheduler, WSL cron, or macOS launchd can each fire the command once a day at 8am.

Windows Task Scheduler: create a basic task triggered daily at 08:00 running morning-brief run.

WSL cron:

0 8 * * * /home/you/.local/bin/morning-brief run >> /tmp/morning-brief.log 2>&1

For toast notifications from WSL cron, install wsl-notify-send; morning-brief will pick it up automatically.

Rules

rules.yaml uses case-insensitive substring matching. The starter generated by morning-brief init covers GitHub notifications, common spam patterns, and a placeholder high-priority sender list.

Classification precedence: spam wins first, then high, then github-low, then medium (default).

Scope

  • Read-only Gmail access. The tool never marks, labels, moves, or deletes mail.
  • Writes digests to ~/.morning-brief/digests/YYYY-MM-DD.md.
  • Tracks processed message IDs locally for 7 days so reruns are idempotent.

Status

Alpha. Classifier is covered by unit tests; integration tests for the Gmail client come next.

License

MIT.

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

morning_brief-0.2.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

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

morning_brief-0.2.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file morning_brief-0.2.0.tar.gz.

File metadata

  • Download URL: morning_brief-0.2.0.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for morning_brief-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4d11263c68092a146c0e5f636864293ff8931ad0831635ce9c0b8360c924a95f
MD5 f7e199227f4b90316413b80e52e68a87
BLAKE2b-256 2db0e9cf95762bc558f8e0a7d2299075436ea870b3db80eddccc8813dc6e9b59

See more details on using hashes here.

File details

Details for the file morning_brief-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: morning_brief-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for morning_brief-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 86c1451f4876f83940e7ea06242d0b6163dc349667ae6596b7209bb70b2bc386
MD5 d43b1e364fcfdc0e14158128636c7477
BLAKE2b-256 c11cc5dd81dabe995f3f2321a2d0845f3987f4bc1b00fa9a647d176ad8248954

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