AI-powered Gmail follow-up CLI agent
Project description
🚀 Nudge — Autonomous AI Gmail Follow-up Agent
Nudge is an intelligent, zero-setup CLI agent that audits your sent Gmail threads, identifies unanswered emails, and generates short, natural human follow-up replies using Groq AI (Llama 3.3 70B).
Designed for job hunters, founders, recruiters, and sales teams who want to follow up fast without writing generic AI fluff.
✨ Features
- 🔑 0-Setup Google OAuth: No Google Cloud Console setup or
credentials.jsonrequired! Sign in via Google in 5 seconds. - 🗄️ SQLite History Persistence (
~/.nudge/history.db): Remembers drafted and skipped threads so you never get prompted twice for the same email. - 📧 Full Email MIME Context: Reads full thread history instead of short snippets for deeply contextual follow-ups.
- 🎭 Interactive Multi-Tone AI Generator:
[1] Check-in: Quick, warm status update request.[2] Value-Add: Shares project accomplishments or progress updates.[3] Breakup: Sends a polite final note to give the recipient a low-pressure way to respond.
- 🧠 Smart Decision Engine:
- Skips threads where the recipient already replied.
- Skips threads sent
< 2 daysago. - Skips threads where you've already sent
2+follow-ups.
- ⌨️ Single Keypress CLI Control: Approve (
[A]), Edit ([E]), Change Tone ([1],[2],[3]), Switch Account ([L]), Skip ([S]), or Quit ([Q]).
⚡ Instant Installation
Install Nudge globally via pip or pipx:
pip install nudge-agent
Then run nudge anywhere in your terminal:
nudge
⚙️ Environment Configuration
Set your Groq API Key in your .env file or export it in your terminal environment:
export GROQ_API_KEY="gsk_your_groq_api_key_here"
Nudge also automatically loads configuration from ~/.nudge/.env if present.
💻 CLI Usage Options
nudge [OPTIONS]
| Flag | Description |
|---|---|
--limit <N> |
Number of sent Gmail threads to scan (Default: 50) |
--auto |
Auto-approve mode (creates drafts without interactive prompts) |
--login |
Force Google re-authentication to sign in with a new Gmail account |
--logout |
Log out of your current Gmail account |
-h, --help |
Show command help and options |
🛠 Architecture
nudge/
├── main.py # Rich TUI Orchestrator & interactive keypress approval loop
├── gmail_client.py # Gmail API authentication, MIME body parser & SQLite history DB
├── followup_agent.py # Decision engine & Groq Llama 3.3 70B prompt generator
└── pyproject.toml # Packaging metadata & entrypoints
🔒 Privacy & Security
- Local Storage: Your Google token (
token.json), SQLite database (history.db), and local state are stored 100% locally on your computer inside~/.nudge/. - Draft Mode Guarantee: Nudge attaches approved replies as drafts inside your Gmail account so you maintain 100% control before sending.
- Privacy Policy: Read our complete Privacy Policy.
👤 Author & License
Built by @bydhruvil ;)
Licensed under the MIT License.
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 nudge_agent-0.1.6.tar.gz.
File metadata
- Download URL: nudge_agent-0.1.6.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ca7ce609ff7ca1b94b2fe1feafd306dbade4db7a859d870170374076d78828c
|
|
| MD5 |
beb09b7a2dd4d4b35851b70627e000f2
|
|
| BLAKE2b-256 |
c4669e83fade0522a5bd2b0c2ea066a5ca36ee1ac2aef87744fe2e3ab44f24ce
|
Provenance
The following attestation bundles were made for nudge_agent-0.1.6.tar.gz:
Publisher:
publish.yml on dhruvil-codes/nudge-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nudge_agent-0.1.6.tar.gz -
Subject digest:
8ca7ce609ff7ca1b94b2fe1feafd306dbade4db7a859d870170374076d78828c - Sigstore transparency entry: 2255950593
- Sigstore integration time:
-
Permalink:
dhruvil-codes/nudge-agent@3b2ec75cb45aa12d1ff0a51819585f93f437cc60 -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/dhruvil-codes
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3b2ec75cb45aa12d1ff0a51819585f93f437cc60 -
Trigger Event:
push
-
Statement type:
File details
Details for the file nudge_agent-0.1.6-py3-none-any.whl.
File metadata
- Download URL: nudge_agent-0.1.6-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09b583a977b4671697e1b38536d621ec9840800d603d640dc365c2984ddf57d3
|
|
| MD5 |
fbcc869ebbc15191a0abe06bb366cc46
|
|
| BLAKE2b-256 |
26b4ab00133fa8347ced22928c743ee40abf17169ef413589d239d9f2a118e11
|
Provenance
The following attestation bundles were made for nudge_agent-0.1.6-py3-none-any.whl:
Publisher:
publish.yml on dhruvil-codes/nudge-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nudge_agent-0.1.6-py3-none-any.whl -
Subject digest:
09b583a977b4671697e1b38536d621ec9840800d603d640dc365c2984ddf57d3 - Sigstore transparency entry: 2255950600
- Sigstore integration time:
-
Permalink:
dhruvil-codes/nudge-agent@3b2ec75cb45aa12d1ff0a51819585f93f437cc60 -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/dhruvil-codes
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3b2ec75cb45aa12d1ff0a51819585f93f437cc60 -
Trigger Event:
push
-
Statement type: