🚀 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) |
--dashboard |
Display real-time TUI analytics dashboard & recent activity log |
--auto |
Auto-approve mode (creates drafts without interactive prompts) |
--login |
Force Google re-authentication to sign in with a new Gmail account |
--setup-mcp |
1-Click Zero-Code MCP Server installer for Claude Desktop |
--logout |
Log out of your current Gmail account |
-h, --help |
Show command help and options |
🤖 Model Context Protocol (MCP) Server
Nudge includes a built-in MCP Server (nudge-mcp) allowing AI clients like Claude Desktop, Cursor, and Antigravity IDE to natively scan your inbox, generate follow-up drafts, and query local analytics!
⚡ 1-Click Zero-Code Setup:
Vibe-coders don't need to edit JSON files or touch code! Just run:
nudge --setup-mcp
This automatically detects your Claude Desktop installation and configures the nudge-mcp server! Then just restart Claude Desktop.
Exposed MCP Tools:
- 🔍
scan_unanswered_emails: Scans sent Gmail threads for follow-up candidates. - 🤖
generate_followup_draft: Generates multi-tone follow-up drafts (check_in,value_add,breakup). - ✍️
create_gmail_draft: Attaches approved drafts to Gmail threads. - 📊
get_nudge_dashboard_stats: Queries SQLite history metrics & recent log.
🛠 Architecture
nudge/
├── main.py # Rich TUI Orchestrator & interactive keypress approval loop
├── mcp_server.py # FastMCP server exposing 4 AI tools for Claude/Cursor/Antigravity
├── 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.
Release files for nudge-agent 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nudge_agent-0.2.1.tar.gz | 18.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nudge_agent-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.5 kB
Release files / nudge_agent-0.2.1.tar.gz
| Download URL | nudge_agent-0.2.1.tar.gz |
|---|---|
| Size | 18.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9e3f0f8bbd035dca4c0b7d335c607153c6f0272d32c283924b71dc7402b1f111
|
|
BLAKE2b-256 checksum How to use checksums |
bc1c140abe006595b4600ae18760c4024eecfd400dcf4945cd5797cdf9aaf033
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.
Transparency logRelease files / nudge_agent-0.2.1-py3-none-any.whl
| Download URL | nudge_agent-0.2.1-py3-none-any.whl |
|---|---|
| Size | 18.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc90c1e44635f86726a3a31dfa46b49466aa5cf887fda67ed46d819166d41809
|
|
BLAKE2b-256 checksum How to use checksums |
454d8803792bd7f8298f09ed197742b59c0c20e394414004f452f41852d64259
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.
Transparency log