{
  "id": 16229792,
  "title": "I'm too lazy to check my emails and Classroom stuff, so I built Hermes",
  "url": "https://urgent.news/2026/10/23/im-too-lazy-to-check-my-emails-and-classroom-stuff-so-i-built-hermes",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-23T21:28:05.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/uugaaabugaaa/im-too-lazy-to-check-my-emails-and-classroom-stuff-so-i-built-hermes-ifc"
  },
  "original_language": "en",
  "account": "The author registered for previous challenges but was too lazy to submit anything. Upon seeing the \"LAZY\" word, they knew this challenge was for them. After realizing they had missed a class due to a flooded college, they decided to build a system that collects emails from personal and college sources, generates audio summaries, and organizes deadlines. Thus, Hermes was created.\n\nHermes is a local-first academic triage engine and opportunity radar, designed for a very distractible student like the author. The system uses FastAPI to poll Google Classroom, Gmail, and opportunity feeds, filtering out noise and extracting real deadlines. It checks the web when an opportunity date is missing and stores everything in SQLite.\n\nThe dashboard displays the status of tasks, with three outcomes: Panic for cutoffs under 6 hours, Approaching for the next 24 hours, and Chill for anything beyond that. A Watchlist is available for items whose cutoff has not been announced. Opportunities such as hackathons, fellowships, and internships are ranked against the user's stack to maximize achievements.\n\nHermes utilizes a local llama-server running Gemma-3-4b-it at Q4_K_M. The model extracts structure from emails without inventing timestamps. A 60-second English briefing turns the radar into audio using ElevenLabs. If an API key is missing, the dashboard falls back to browser speech. The app still functions with this configuration.\n\nThe task rows in the demo come from the author's local Hermes instance, while the Render demo uses a mock judge dataset. The telemetry strip is fetched from the local llama-server and nvidia-smi on every cache miss. The free instance runs the cloud sandbox profile, displaying heuristic fallback telemetry instead of local GPU numbers.\n\nThe author emphasizes student privacy, with all extraction occurring on the laptop. Gmail and Classroom tokens stay on disk, with email bodies transmitted over 127.0.0.1 to the llama-server, not to an inference vendor. The database is local SQLite, and ElevenLabs-generated briefing scripts are the only data leaving the machine. The token bill is zero, as Gemma 3 4B runs on open weights. The app works offline when Wi-Fi is unavailable, and local inference keeps running when the network drops. Open weights are inspectable, allowing users to understand the system's operation and swap models without vendor involvement.",
  "summary": "I was registered for the two previous challenges too, but I was too lazy ( binge watching Black Clover :) ) to submit anything. When I saw this challenge and read the word \"LAZY\" , I knew this one was for me. I got up with a marker in my hand, stared at the whiteboard thinking about what I needed, looked at my phone, and realised I had missed my class ( online, because my college flooded ;-; ),…",
  "key_points": [
    "Hermes is a local-first academic triage engine for distractible students",
    "Uses FastAPI to poll Google Classroom, Gmail, and opportunity feeds",
    "Generates audio summaries and ranks opportunities against user's stack"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}