OMAIR ASLAM

Omair’s Hermes · Agent Setup & Capabilities

Hermes,
at your command.

Hermes is a private AI assistant that lives on your own server and answers from WhatsApp. It reads your calendar, drafts your docs, tracks your tasks, finds a contact, builds a spreadsheet — all through tools you own and can audit.

online host oraclevps brain glm-5.1 channel whatsapp · email · discord integrations 14 live

What Hermes can do

A capable assistant, reachable from a chat thread.

Nine live integrations, a conversational brain, voice, and web access — running 24/7 on a private server and controlled entirely through everyday language in WhatsApp.

01Core

Conversational brain

Powered by GLM-5.1 with a custom persona and long-term memory, so it remembers context across conversations.

02Google

Calendar

List your schedule, add events from plain language (“lunch with Sam tomorrow 1pm”), create and delete events.

03Google

Drive & Docs

Search Drive, create Google Docs with content, read them back, append text, and organise into folders.

04Google

Sheets & Slides

Build spreadsheets — write, read, append rows — and assemble slide decks with slides and text boxes.

05Google

Tasks & Contacts

Manage your to-do lists and look up, add, or update people in your Google Contacts.

06Work

ClickUp

Create, update and browse tasks in your IBEX workspace — a focused 19-tool slice, no destructive actions.

07Knowledge

Web & docs

Live web search (Tavily) for fresh answers, plus Context7 for up-to-date library and framework documentation.

08Senses

Voice, vision & email

Transcribes voice notes, reads images, and sends/receives email under its own address on your behalf.

09Local

Weather & Prayer · Karachi

Live Karachi weather and today's prayer times (Univ-Karachi method, Hanafi) — free, no API keys.

10Maps

Maps-lite

Geocoding, place search, and driving distance/ETA over OpenStreetMap — no Google billing.

11Docs

Document Intelligence

Send a PDF/Word/Excel/CSV — it extracts text & tables, answers questions, and can push tables into a Sheet.

12News

Tech & AI news

Fresh technology and AI headlines on demand, and bundled into the daily brief.

13Proactive

Daily brief & reminders

An 11 AM brief (weather, prayer, news, calendar, Google + ClickUp tasks with links) to WhatsApp, email & Discord, plus a reminder at each prayer time.

14Ops

Health monitor

Checks every 10 min — instant Discord alerts on failure + a colorful 4-hourly heartbeat with CPU/RAM/disk bars and a witty AI sign-off.

Things to ask it

Just say it in the chat.

A few of the things Hermes can handle today. Phrase them naturally — it figures out which tool to reach for.

“What’s on my calendar this week?”
Pulls your upcoming events and reads them in order.
“Draft a doc with these meeting notes and send me the link.”
Creates a Google Doc with your content and returns a shareable link.
“Add a task to call the dentist tomorrow.”
Drops it onto your Google Tasks list with a due date.
“What’s Sarah’s phone number?”
Searches your Google Contacts and replies with the details.
“Make a spreadsheet of this month’s expenses.”
Creates a Sheet and fills in the rows you describe.
“Build a slide deck titled ‘Q3 Review’.”
Spins up a Slides presentation you can flesh out.
“Summarise this article: <link>.”
Fetches the page and gives you the gist.
🎙️ (voice note) “Remind me to follow up with the bank.”
Transcribes the audio, then acts on it.
“What are today's prayer times and the weather?”
Karachi prayer times + live weather, instantly.
“How long to drive to the airport?”
Geocodes and routes over OpenStreetMap — distance & ETA, no Google billing.
📄 (send a PDF) “What's the total and the due date?”
Reads the document and answers — or pushes its tables into a Sheet.
natural languagemulti-stepvoice in voice out (TTS)image understandingremembers context

How to talk to it

A phrasing cheat-sheet.

You never need exact commands — but here’s the kind of thing each integration responds to.

Calendar

  • “what’s on my calendar today?”
  • “schedule lunch with Sam Friday 1pm”
  • “add a dentist appt next Tuesday 3pm”
  • “cancel my 4pm”

Docs & Drive

  • “create a doc called Notes with…”
  • “find my doc about the budget”
  • “read me the doc <link>”
  • “make a folder called Trips”

Sheets

  • “make a spreadsheet of my expenses”
  • “add a row: Rent, 1500, paid”
  • “what’s in the Budget sheet?”

Slides

  • “create a deck titled Q3 Review”
  • “add a slide about revenue”

Tasks

  • “add a task to renew insurance”
  • “what’s on my to-do list?”
  • “mark ‘call bank’ done”

Contacts

  • “what’s Ali’s email?”
  • “add a contact: Mark, mark@x.com”

ClickUp

  • “show my open ClickUp tasks”
  • “create a task in <list>”

Web & email

  • “search for…”, “summarise <link>”
  • “email Omair about the demo”
  • “check my email”

Weather & Prayer

  • “what's the weather?”
  • “weather in Lahore tomorrow”
  • “today's prayer times”
  • “when's Maghrib?”

Maps

  • “directions to the airport”
  • “how far is Dolmen Mall?”
  • “find a pharmacy in Clifton”

Documents

  • send a 📄 file + “summarise this”
  • “what's the total on this invoice?”
  • “put these tables in a Sheet”

News

  • “latest AI news”
  • “top tech headlines”
  • “news about <topic>”

General

  • “remember that I prefer…”
  • send a 🎙️ voice note
  • send an 🖼️ image to describe

Connected systems

Integrations matrix.

Every connected service, how it’s built, and its current status. Google services are in-house adapters over official Google APIs.

IntegrationTypeStatusToolsNotes
CalendarGoogle · in-houselive4events, quick-add
Drive & DocsGoogle · in-houselive6create/read/append docs, search
SheetsGoogle · in-houselive5read/write/append
SlidesGoogle · in-houselive4decks, slides, text
TasksGoogle · in-houselive5lists & tasks
ContactsGoogle · in-houselive5People API
ClickUpThird-partylive19IBEX workspace, no deletes
Context7Third-partylive2live library docs
TavilyThird-partyliveweb search
WeatherIn-house · Open-Meteolive2Karachi default, any city
Prayer timesIn-house · AlAdhanlive2Karachi · Hanafi method
Maps-liteIn-house · OpenStreetMaplive4geocode · search · directions
Document IntelligenceIn-houselive5extract · Q&A · tables → Sheet
NewsIn-house · Tavilylive3tech · AI · any topic
DiscordNative channellive3rd channel · allowlisted to you
Health monitorIn-house · cronliveDiscord alerts + 4-hourly metrics + AI summary
Morning brief + remindersIn-house · cronliveWhatsApp + email · 11 AM · prayer alerts
Maps (Google)Google · API keyparkedneeds billing — using Maps-lite instead
Gmail APIGoogleidearicher than IMAP/SMTP
KeepGoogledeclinedAPI is Workspace-only

Under the hood

How it’s actually built.

Hermes runs as a small set of services on a private VPS. Every Google integration is an in-house adapter calling Google’s official APIs — no third-party connectors hold your data.

01 Infrastructure

host
Oracle VPS · ssh oraclevps
os
Ubuntu 24.04 · aarch64 · 24 GB
services
hermes-gateway, hermes-dashboard (systemd)
ops
weekly backups · model watcher

02 The brain

primary
GLM-5.1 via z.ai coding endpoint
fallback
Gemini 2.5 Flash
speech
Groq Whisper (STT) · Gemini (TTS)
vision
Gemini

03 Channels

whatsapp
Baileys bridge · self-chat
email
IMAP/SMTP as its own address
dashboard
localhost:9119 via SSH tunnel
access
allowlisted to you

04 Integrations

google
in-house adapters, official APIs
libraries
google-api-python-client · google-auth
others
ClickUp · Context7 · Tavily
protocol
MCP (stdio) per service

05 Resource footprint

compute
4-core ARM · 24 GB · always-on
model
GLM coding plan (z.ai)
aux
Gemini (free tier) · Groq
storage
local STT model + caches

06 Custom adapters

location
~/.hermes/custom-mcp/
runtime
Python 3.12 venv (via uv)
auth
shared gauth.py + 1 token
size
~300 lines you can audit

Security posture

One OAuth client, one combined-scope refresh token in a 0600 file behind a shared auth helper — no secrets live in the config. Scopes are minimal per service, the OAuth app is published to production (long-lived tokens), and all access is allowlisted to your number and address.

The shape of it

System architecture.

Messages flow in from WhatsApp or email, through the gateway to the GLM-5.1 agent, which reaches in-house MCP adapters that speak to each provider’s official API.

flowchart TD
  U["📱 You · WhatsApp / Email"] --> GW["Hermes Gateway
(systemd · allowlisted)"] GW --> AG["Hermes Agent
GLM-5.1 · persona · memory"] AG -. fallback / senses .-> AUX["Gemini · Groq Whisper
vision · STT · TTS"] AG --> MCP{{"MCP adapters (stdio)"}} subgraph INH["In-house adapters · official Google APIs"] CAL["gcal"] DRV["gdrive · Docs"] SHT["gsheets"] SLD["gslides"] TSK["gtasks"] CON["gcontacts"] end subgraph EXT["Other integrations"] CU["clickup"] C7["context7"] TV["Tavily"] end MCP --> INH MCP --> EXT INH --> GAPI["Google APIs
Calendar · Drive · Docs · Sheets · Slides · Tasks · People"] CU --> CUAPI["ClickUp API"] AUTH["gauth.py · 1 OAuth client
1 token · 0600 file"] -. credentials .-> INH
in-house · official Google API third-party API brain & senses

Trust & data

Security & privacy.

Plain-language account of where your data lives, what Hermes can touch, and how access is locked down.

  • Your data stays on your turf. Everything runs on your VPS and talks directly to your Google account. No third-party server sits in the middle holding your data.
  • Official auth, minimal scopes. One Google OAuth client with only the scopes each feature needs — Calendar, Drive, Docs, Sheets, Slides, Tasks, Contacts. Nothing broader.
  • One token, well guarded. A single refresh token in a 0600 file (owner-only) behind a shared helper. No secrets in the config file.
  • Locked to you. WhatsApp and email are allowlisted to your number and addresses — no one else can talk to it.
  • Auditable by design. The Google adapters are ~300 lines of our own code calling Google’s official libraries; you can read every line in ~/.hermes/custom-mcp/.
  • What it can’t do. No admin/Workspace powers, no access to other people’s accounts, and destructive ClickUp actions are deliberately excluded.
  • Recoverable. Weekly encrypted-at-rest backups of the whole setup; tokens are revocable and re-mintable at any time.

Keeping it running

Operations & recovery.

The handful of things worth knowing to run, watch, and recover Hermes.

01 Services

gateway
systemctl restart hermes-gateway
dashboard
hermes-dashboard · :9119
logs
~/.hermes/logs/
reload
after MCP change: /new in chat

02 Backups

when
weekly · Sunday 03:00
keep
4 rotating snapshots
scope
whole ~/.hermes
extras
config .bak-* per change

03 Dashboard access

tunnel
ssh -L 9119:localhost:9119
open
http://localhost:9119
bind
loopback-only (not public)

04 Watchers

models
glm-5.2 watcher · 6-hourly
alert
emails you on a new model
tokens
long-lived (app in production)

Common questions

FAQ.

Is my data private?
Yes. Hermes runs on your own VPS and talks straight to your Google account using your own OAuth client. No third-party service holds your tokens or data, and access is allowlisted to you.
What model powers it?
Primary brain is GLM-5.1 via z.ai’s coding endpoint, with Gemini 2.5 Flash as a fallback. Speech-to-text uses Groq Whisper; text-to-speech and vision use Gemini.
What happens if it goes offline?
The gateway runs as a systemd service and restarts on boot. Messages sent while it’s busy are queued, not dropped. If it’s fully down, a restart (systemctl restart hermes-gateway) brings it back.
Can anyone else use it?
No. WhatsApp and email are allowlisted to your number and addresses. Other senders are ignored.
Why build your own Google connectors instead of off-the-shelf ones?
Google’s official MCP servers are cloud-hosted and Workspace-oriented — they don’t fit a self-hosted, personal-Gmail setup. Rather than trust third-party connectors with your tokens, the Google features are small in-house adapters over Google’s official client libraries.
How do I add a new capability?
Most are a small adapter + an OAuth scope (or API key) + enabling the relevant Google API, then /new in the chat. Just ask — that’s the workflow that built this.
Why is Google Maps not available?
Maps is API-key based and requires a billing account on the cloud project. It’s parked until you’re comfortable enabling billing.

What's next

Roadmap & ideas.

Recently shipped, what's parked, and ideas worth exploring next.

✅ Recently shipped

Shipped

Maps-lite (free)

Geocoding, place search and driving distance/ETA over OpenStreetMap — no Google billing.

Shipped

Document Intelligence

Reads PDF/Word/Excel/CSV — extracts text & tables, answers questions, pushes tables to a Sheet.

Shipped

Daily brief & reminders

11 AM brief to WhatsApp + email + Discord, plus a reminder at each prayer time.

Shipped

Discord channel

Same Hermes, now reachable on Discord alongside WhatsApp & email.

Shipped

Health monitor

Self-checks every 10 min, instant Discord alerts on trouble, plus a 4-hourly metrics heartbeat with an AI one-liner.

Parked

Google Maps

Richer data than Maps-lite, but it needs a billing account — on hold by choice.

💡 Ideas to explore next

Idea

Multi-doc & knowledge base

Ask across many documents at once, with a personal "remember this" store to query later.

Idea

OCR & field capture

Read scanned PDFs and photos, and auto-extract invoice & contract fields.

Idea

Gmail API

Richer email than IMAP/SMTP — labels, threads, search, smarter drafting & triage.

Idea

Scheduled digests

Weekly summaries, end-of-day recaps, or topic digests on a cadence you set.

Idea

Deeper ClickUp

Auto-create tasks from chat/email/docs, recurring tasks, and status roll-ups.

Idea

Finance & expenses

Track spending, bill & card reminders, and stock or crypto price alerts.

Idea

Smart home

Control lights, devices & routines via Home Assistant, from chat.

Idea

Proactive follow-ups

"Nudge me if X hasn't happened yet" — smart reminders beyond the brief.

Idea

GitHub

Repos, issues & PRs — "what changed?", create issues, review summaries.

Idea

Voice-first & calls

Richer voice replies — and maybe a number you can actually call.

Idea

Travel & currency

Flight tracking, live PKR/USD conversion, and trip itineraries.

Idea

Image generation

"Make me a graphic / logo / diagram" straight from chat.

Idea

Urdu & multilingual

Converse in Urdu and translate on the fly.

Current limitations

  • Google Maps is parked — using free Maps-lite (OpenStreetMap) instead; Google's version needs billing.
  • Google Keep is unavailable — its API is Workspace-only and won't work with a personal account.
  • Unverified-app caps — the OAuth app is in production but unverified: a one-time consent warning and a 100-user cap (you're the only user).
  • Maps-lite is driving-only — OpenStreetMap routing covers car routes; walking/transit aren't wired yet.

History

Changelog.

How Hermes got here, by date.

2026 · 06 · 14 — Personal assistant
Karachi life-tools, a proactive brief & document intelligence
  • Added Weather (Open-Meteo) and Prayer times (AlAdhan · Karachi/Hanafi) — free, no API keys.
  • Shipped a proactive morning brief at 11 AM to WhatsApp + email — weather, prayer, Tech + AI news, calendar (with links), tasks due today, and open tasks from Google Tasks + ClickUp (clickable links) — plus a reminder at each prayer time.
  • Built Maps-lite on OpenStreetMap (geocode, search, driving directions) — no Google billing.
  • Added Document Intelligence — send a PDF/Word/Excel/CSV and it extracts text & tables, answers questions, and can push tables into a Google Sheet.
  • Added Discord as a third channel (same Hermes, allowlisted to you) and routed the morning brief to WhatsApp + email + Discord.
  • Built a health monitor — every 10 min it checks services/channels/brain/disk and posts to a Discord #health channel: instant @mention alerts (also email + WhatsApp) on failure/stress, recovery notices, and a colorful 4-hourly heartbeat with CPU/RAM/disk progress bars, full system metrics, and a witty AI one-liner.
  • Validated & hardened the ClickUp integration — added comments & tags (now 19 tools), fixed task moves & duplication, added request timeouts and rate-limit handling, taught it Karachi-time due dates, and moved its API key out of config into a secrets file. Still no destructive deletes.
  • Named this portal Omair Aslam · Hermes Agent Setup and folded all of the above in.
2026 · 06 · 13 — The Google build-out
Docs, Tasks, Contacts & the in-house migration
  • Added Google Docs / Drive / Sheets / Slides, then Tasks, then Contacts.
  • Investigated Google Keep (Workspace-only) and declined it.
  • Pivot: on the “official components only” rule, rebuilt every Google integration as in-house adapters over Google’s official client libraries.
  • Published the OAuth app to production (long-lived tokens); consolidated to one shared token, no secrets in config.
  • Migrated Calendar, Drive/Docs, Tasks & Contacts in-house; added Sheets & Slides in-house. Retired all third-party Google connectors.
  • Installed a GLM-5.2 watcher (emails you when a newer model lands); built this dossier; Maps parked on billing.
2026 · 06 · 12 — Hardening
Dashboard, backups & tuning
  • Web dashboard shipped as a permanent service (SSH-tunnel access).
  • Weekly rotating backups of the whole setup.
  • ClickUp tools trimmed 154 → 19; auxiliary chores offloaded to Gemini Flash.
2026 · 06 · 11 — Deployment day
Hermes goes live
  • Deployed on the Oracle VPS with a WhatsApp self-chat gateway and email.
  • Brain set to GLM-5.1 (z.ai); Gemini fallback + vision + TTS; Groq Whisper STT.
  • First integrations: ClickUp, Context7, Google Calendar; Tavily web search; custom persona.
  • Retired a duplicate bot (OpenClaw) sharing the same number.