AI-powered email reply generator — paste an email, pick your tone and language, get a polished reply in seconds.
Built with Streamlit + Google Gemini API, featuring real SMTP email sending and multi-language support.
- AI Reply Generation — Gemini drafts context-aware, professional replies to any email
- 5 Tone Modes — Professional · Friendly · Apologetic · Persuasive · Concise
- 24+ Language Support — Generate replies in English, Hindi, Spanish, French, Arabic, Japanese, and more
- Edit Before Send — Review and tweak the AI reply before it goes out
- One-Click Send — Built-in SMTP integration to send directly from the app
- Free-Tier Smart Fallback — Automatically cycles through Gemini models to stay within quota limits
- Fully Responsive UI — Dark cyberpunk theme with green accent, works on desktop & mobile
reply-nexa/
├── main.py # Streamlit app entry point
├── requirements.txt # Python dependencies
├── agents/
│ └── email_agent.py # Gemini AI reply generation logic
└── utils/
└── email_sender.py # SMTP email sending utility
git clone https://github.com/your-username/reply-nexa.git
cd reply-nexapip install -r requirements.txtCreate a .streamlit/secrets.toml file:
GEMINI_API_KEY = "your-google-gemini-api-key"
SENDER_EMAIL = "your-gmail@gmail.com"
EMAIL_PASSWORD = "your-gmail-app-password"
# Optional — defaults shown
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587Gmail users: Generate an App Password (requires 2FA enabled). Do not use your regular Gmail password.
streamlit run main.pyOpen http://localhost:8501 in your browser.
- Go to Google AI Studio
- Sign in with your Google account
- Click Get API key → Create API key
- Copy the key into your
secrets.toml
The app uses free-tier Gemini models with automatic fallback:
| Model | Daily Quota |
|---|---|
gemini-2.5-flash-lite |
1,000 req/day (primary) |
gemini-2.5-flash |
250 req/day |
gemini-2.0-flash-lite |
fallback |
gemini-2.0-flash |
last resort |
- Push your code to a public or private GitHub repo
- Go to share.streamlit.io → New app
- Select your repo, branch, and set
main.pyas the entry file - Under Advanced settings → Secrets, paste your
secrets.tomlcontents - Click Deploy
English · Hindi · Spanish · French · German · Portuguese · Arabic · Japanese · Chinese (Simplified) · Korean · Italian · Russian · Bengali · Gujarati · Marathi · Tamil · Telugu · Kannada · Punjabi · Dutch · Polish · Turkish · Vietnamese · Thai
| Layer | Technology |
|---|---|
| Frontend | Streamlit |
| AI Model | Google Gemini (via google-generativeai) |
Python smtplib + MIME |
|
| Styling | Custom CSS (Bebas Neue · DM Sans · JetBrains Mono) |
- Paste the email you received into the text area
- Select your desired tone (Professional, Friendly, etc.)
- Choose the language for your reply
- (Optional) Enter a recipient email and any extra instructions
- Click ⚡ GENERATE REPLY
- Review and edit the generated reply
- Click SEND EMAIL to send, or COPY TO CLIPBOARD to use elsewhere
Generation failed / quota error
Wait a few minutes and retry. The app will automatically try the next available Gemini model. Check your quota at aistudio.google.com.
SMTP / sending failed
Ensure you're using a Gmail App Password, not your account password. Verify
SENDER_EMAIL,EMAIL_PASSWORD,SMTP_SERVER, andSMTP_PORTin your secrets.
Secrets not found (local)
Make sure
.streamlit/secrets.tomlexists at the project root and is correctly formatted TOML.
All Rights Reserved © 2026 Ravi Panchal