Stop drowning. Start doing.
Personal AI agent for students. Gmail, Calendar, and Notion in one loop — Coral SQL reads your data, Bedrock writes the nudges, Nudge acts when you don't.
| 🚀 Live Demo | 📺 Video Demo | 📈 Daily Reports | 📝 Task Sheet |
|---|---|---|---|
| Open App | Watch on YouTube | View Reports | View Tasks |
Open the app → enter your name → Run pipeline.
- Buried deadlines — professor emails with due dates missing from Notion or Calendar
- Smart inbox triage — Bedrock decides which emails become Notion tasks; promos filtered out
- Overload warnings — meetings + tasks scored so you see collision days early
- Auto-actions — calendar blocks, Notion tasks, Gmail drafts, reschedule suggestions
- Morning brief — daily summary from live Coral queries
- Notion daily report — pipeline output appended to a public page
Calendar actions stay in-app; Google links need the account owner. Demo uses read-only aggregation, not shared calendar access.
Dashboard is home base. The watch is for when you don't have your laptop.
Walking out of class, your professor mentions a lab report due Friday — no laptop, just your watch:
"Add a Notion task: finish lab report, due Friday."
Same backend, real Notion task. Or: "Did Professor Chen email about the assignment?" — Coral runs wear_professor_gmail.sql and reads back what matters. Also: "Am I free at 3?" · "What's on today?"
| Screen | What it does |
|---|---|
| Main tile | Overload score, nudge count, top priority |
| Voice | Book tasks, check schedule, query professor mail |
| Today | Calendar + Notion due today, read aloud |
| Inbox | Recent Gmail subjects summarized |
| Brief | Morning brief from the pipeline |
Thin client on the watch — Coral + Bedrock stay on the backend. See nudge-wear/README.md.
Every read goes through Coral SQL. No hand-rolled REST joins — Gmail, Calendar, and Notion are queryable schemas.
| Source | Type | Data |
|---|---|---|
gmail |
file (jsonl) | Gmail API → gmail_messages.jsonl |
calendar |
http | Google Calendar via OAuth |
notion_tasks |
http | Notion tasks DB via integration |
Manifests in coral/sources/. Register: bash scripts/setup_phase1_sources.sh
Queries: hero_deadline · hero_overload · action_notion_task · action_calendar_block · wear_professor_gmail · …
Orchestrator → coral/client.py → Bedrock for nudge text → Google/Notion APIs for writes.
Python · FastAPI · Coral CLI · AWS Bedrock · Next.js · Wear OS (Kotlin) · Vercel + EC2
Nudge/
├── coral/sources/ # Coral manifests
├── nudge-backend/ # Agent + actions
├── nudge-dashboard/ # Web app
├── nudge-wear/ # Watch app
└── scripts/ # Setup & OAuth
# .env at repo root — Google OAuth, Notion, AWS Bedrock, NUDGE_API_KEY
bash scripts/setup_google_oauth.sh
bash scripts/setup_phase1_sources.sh
bash scripts/run_backend.sh # :8000
cd nudge-dashboard && npm i && npm run dev # :3000API test
curl http://localhost:8000/api/health
curl -H "X-API-Key: YOUR_KEY" http://localhost:8000/api/nudges
curl -X POST -H "X-API-Key: YOUR_KEY" http://localhost:8000/api/nudge/runDeploy
- Vercel:
BACKEND_URL+NUDGE_API_KEY - EC2: Coral CLI, uvicorn on
:8000, open port 8000 - Demo links:
nudge-dashboard/lib/demo-links.ts
Pirates of Coral–Bean hackathon submission — built by Naomi.