RAHU turns Claude Code into an AI coworker that lives entirely in your Google apps. It auto-sorts your inbox with your own labels, drafts replies in your own voice, and writes your morning briefing — all landing as Gmail labels/drafts, Calendar notes, Google Tasks, and Docs. No new app, no dashboard. It's a Google-native take on Dimension.dev.
You only need Claude Code already installed. That's it.
git clone https://github.com/webworn/RAHU.git
cd RAHU
claudeThis repo ships a .mcp.json, so Claude Code auto-detects the Google server the moment
you open the folder and asks you to approve it — just say yes. On first use your
browser opens for a normal Google sign-in, then RAHU can read labels, draft, and
write to Calendar / Tasks / Docs.
One-time prerequisite (≈5 min): create a Google OAuth desktop client and export three values so the server can act as you — a self-hosted server needs your own credential, there's no way around it:
export GOOGLE_OAUTH_CLIENT_ID=... # from Google Cloud Console → Credentials
export GOOGLE_OAUTH_CLIENT_SECRET=...
export USER_GOOGLE_EMAIL=you@your-domain.comJust want a quick taste? Run
/mcpand pick the hosted Gmail connector instead — zero setup, but it covers labeling + drafting only (no Tasks/Docs, so/briefingand/memoare unavailable). The full experience uses the.mcp.jsonserver above.
/learn ← reads your existing labels + how you already sort mail, and learns your scheme
/label ← auto-labels new mail using what it learned (try "/label dry-run" first to preview)
That's the whole setup. Everything below is optional.
| Type this | What happens |
|---|---|
/learn |
Learns your labels, tagging rules, and writing voice from your own Gmail (run once, refresh monthly) |
/label |
Auto-applies your labels to new mail, silently. /label dry-run previews without changing anything |
/catchup |
Summarizes every new email and leaves a ready-to-send draft for each |
/briefing |
Writes today's briefing (overnight mail + meetings + tasks) as a Google Doc |
/prep |
Preps your upcoming meetings into the Calendar event |
/memo <company> |
Drafts a deal / IC memo into a Google Doc |
Want it always-on? Keep a session open and run:
/loop --interval 10m /label 15m
It re-labels new mail every 10 minutes.
- Dynamic, per-user — nothing is hardcoded. RAHU reads your live Gmail labels and learns your sorting rules from your history. A different person gets a different scheme with zero code changes.
- Local memory. What it learns (your labels, tagging rules, writing voice, contacts)
is stored in a small local file (
.claude/memory/), never uploaded. It recalls only the few facts it needs each time, so it stays fast and cheap. - Right model for the job. Cheap Haiku for high-volume triage, Sonnet for writing, Opus for deal memos.
- Safe by default. RAHU drafts and labels — it never sends email or moves your calendar without you. Learned data and any auto-send switch are git-ignored.
commands/ what you type (/learn /label /catchup /briefing /prep /memo /autopilot)
agents/ the specialists (inbox-triage, voice-drafter, briefing-writer, … model-routed)
skills/ the "how" for each capability
workflows/ multi-step orchestration (briefing, catch-up, autopilot, learn)
hooks/ optional automation + a send-safety guard
memory/ store.py — your local, private learning store
The Google server itself is already wired via .mcp.json (step 2). To also pre-approve
the safe tool calls (so RAHU stops asking on every label/draft), inject your memory
digest at session start, and turn on the send-safety latch, review and copy the
example settings:
cp .claude/settings.example.json .claude/settings.json # read it firstIt's shipped as .example on purpose — nothing grants permissions or registers hooks
until you opt in. Once copied, keep it always-on with /loop --interval 10m /label 15m.
The underlying server is the open-source
workspace-mcp.
RAHU runs on your machine through your own Claude Code. Your learned profile lives in a local file that's git-ignored. It stores distilled patterns (e.g. "mail from vendor X → label Purchase"), never raw email bodies, passwords, or one-time codes.