A personal admin I run every day — source-available, in beta, yours to build

I built myself a personal admin.

It reads my inbox, writes my morning brief, drafts my replies, and texts me what matters — and it shows its work. Here's how I built it, so you can build your own.

Reads your Gmail and Calendar Texts you on iMessage Runs on your own accounts

The problem

Your inbox is noise and your calendar is chaos. The assistants bolted onto Gmail — Gemini, or Claude and ChatGPT once you connect them — still hand you one summary per email. None of them actually run your day.

How it works

No magic. Four steps.

Here's the whole loop, start to finish — so you know exactly what it's doing before you trust it with your inbox.

  1. It connects to your Gmail and Calendar

    You sign in with Google once, on your own account, and grant the permissions it needs: read your mail and calendar, draft replies, and — only when you approve — send a reply or add an event. Never on its own.

  2. It reads the day and groups what matters

    It folds the back-and-forth into one topic per real thing, reads dates out of flyers, and remembers the people who keep coming up — clients and vendors as much as family.

  3. It writes your brief and drafts your replies

    A short morning read of what actually needs you — and, where a reply is owed, a draft already written in your voice, waiting.

  4. You approve — it never acts alone

    Nothing sends, books, or buys without your okay. Every action lands in an audit log you can read, and any fact it learns, you can delete.

Why it's not just Gemini on your Gmail

Gemini answers. Coco runs your day.

Connect any LLM to Gmail and it will summarize an email — when you ask. Here are three things it structurally can't do, because it waits for you, forgets you between chats, and reads one message at a time.

Coco's dashboard for a solo professional: 'Thursday, June 4 — 5 events left today', then the day laid out as a list — a morning run, a team standup, a 1:1 with the manager — already there, no prompt typed.

Gemini waits for a prompt. Coco already ran your morning.

Your whole day, already laid out

Connect Gemini to Gmail and you still have to ask — "summarize my inbox" — every single morning. Coco isn't a chat box. It's a dashboard that has already built your day by the time you're up: what's happening, what to close, what's coming. You scan it in thirty seconds. You never type a thing.

What you're seeing: a real morning laid out as a dashboard — not a chat you had to start.

Coco's memory: people it has learned and kept — 'Eleanor · also Mom, Mother · 41 emails · last seen 6 d ago', 'Dana · sister · 26 emails' — each tagged with their role and traced to the emails it learned them from.

Gemini forgets you between chats. Coco remembers for good.

It already knows your people and your world

Every LLM chat starts from zero — you re-paste who your kids are, who your clients are, where you live. Coco keeps it: the people who recur, their roles, the places in your orbit, each traced to the emails it learned them from. You never re-explain who's who.

What you're seeing: Coco's standing memory of the people in one life — names, roles, how often they're in touch.

A Coco task detail: its synthesis of Eli's Saturday game, plus a 'Merged because' note — the same event surfaced across the coach's email, the team-parent chat, Morgan's text, and the venue's parking notice, folded into one task.

Gemini reads one email. Coco reads the whole topic.

One topic, not ten emails

A single real thing — a carpool, a renewal, a party — never arrives as one email. It's a flyer, two follow-ups, a reply from a different address, a calendar invite. Ask Gemini and you get ten separate summaries. Coco folds all of it into one item — across senders, across days — and tells you exactly which messages it pulled together.

What you're seeing: one task, with Coco's plain note on why it merged — the same game pulled from the coach, the team chat, a text, and the venue's parking notice.

Moments that feel like magic

Things you can't prompt your way to

Same admin — these are the parts that land precisely because no chat box, however clever, is built to do them.

Coco's News Pulse: 'Synthesized across 12 newsletters' overnight — a local digest (weekend transit changes, a reopened patio, a festival) with a note that two of them touch your commute and your weekend plans.

Gemini summarizes a newsletter you point it at. Coco read all twelve — unasked.

It read the newsletters you never opened

You subscribed to a dozen newsletters and read none of them. Overnight — no prompt, no schedule you set — Coco read all twelve and flagged the two that actually touch your week: the weekend track work on your line, the patio that books out before you'd think to call. A chatbot summarizes a newsletter when you ask; it doesn't know which item collides with your commute.

What you're seeing: "Synthesized across 12 newsletters," with the items that touch your commute and weekend pulled to the top.

Coco's chat: asked to plan Nora's birthday, it answers 'the climbing gym does parties weekends — but the 14th is your field-hockey tournament. Want me to hold the 21st instead and draft the invite?' with a pinned draft email already written.

Gemini drafts what you paste. Coco drafts what it already knows.

A draft that already knows your calendar

Ask any LLM to draft a reply and you first paste the thread, the dates, the context. Coco's draft already knew: the climbing gym only does weekends, the 14th is the field-hockey tournament — so it offered the 21st and wrote the invite. You pasted nothing. You just say yes.

What you're seeing: a drafted party invite that routed around a calendar conflict on its own.

Coco on a phone: 'When's Eli's next soccer practice?' answered 'Eli has soccer today at 4:30 at Brookside Fields, Field 3, and again Thursday — Morgan can cover pickup if your call runs long' — context it had been tracking all week.

Gemini lives in a browser tab. Coco texts you back — and remembers.

Text it like a person, from your own number

No new app, no browser tab. Text Coco from iMessage the way you'd text a partner, and it answers from everything it's been tracking all week — the schedule, who can cover, what's still open — not a blank conversation that forgot you the moment you closed it.

What you're seeing: a reply on a phone that already knew Eli's practice and that Morgan could cover pickup.

Every screen here is the live demo, captured across different lives — a solo professional's day, a parent's pickups, a daughter caring for her mother. Same admin, whatever yours looks like.

What It Does

The left column ships in the build you'll run. The right is what I haven't built yet.

Working today

  • Writes your morning brief — reads the day's Gmail and Calendar and gives you one short read: the few things that need you, in plain language, not a pile of forwarded email.
  • Groups by topic, across days — folds related mail and events into one topic that sticks — the field trip, the renewal — instead of treating every email as brand new.
  • One thing, not ten emails — when the same plan lands across five threads and three senders, it collapses them into a single item instead of five duplicates.
  • Reads the flyer — when the date and RSVP are buried in an image — a school PDF, a club flyer — it reads the text out so the deadline never slips. Only for senders you already trust.
  • Answers about anything on screen — open the chat anywhere and it can pull a Gmail thread, check a calendar event, search what it remembers, look something up on the web, and draft a reply — never sending without you.
  • Nudges, never sends — surfaces a ready-to-go draft when something looks like it needs a reply, then waits for your okay. Nothing leaves on its own.
  • Remembers your people — learns the names that recur — a partner, the kids, a key client, the vendor you always chase, the school — and carries them everywhere, so you never re-explain who's who.
  • Your accounts, locked down — reads your mail and calendar, sends and adds only what you approve, and never deletes a thing. Runs on your own database, with prompt-injection defenses and an audit log of every action it takes. See SECURITY.md.
  • Built like a newspaper — a calm serif layout with a focus mode (⌘. / Ctrl+.), dark mode, and a real empty, loading, and error state on every screen.

Is it safe?

It touches your inbox. Here's the deal.

It runs on your own accounts. Here's exactly what it asks Google for when you sign in — and the lines it won't cross with those permissions.

What it asks Google for

  • Read your email — to build your brief and pull up a thread when you ask.
  • Read your calendar — to see what your day actually holds.
  • Draft replies — write a reply in your voice and save it as a draft in your account.
  • Send a reply you've approved — the consent screen calls this "send email on your behalf." Coco only ever uses it on the exact draft you've tapped to send.
  • Add a calendar event you've asked for — the consent screen calls this "view and edit events." Coco only adds the event you told it to.

What it never does

  • Send anything without your explicit yes — every reply waits for your one tap; nothing leaves on its own.
  • Add, move, or delete an event you didn't ask for — it only makes the calendar change you told it to make.
  • Delete or empty your email — it never trashes your mail, and never asked Google for the permission to.
  • Let anyone else in — only the address you list can sign in. Leave it blank and the door stays shut to everyone but you.
  • Share your inbox, or train an AI on it — it lives on your own accounts, not a shared Coco service; Anthropic's API doesn't train on what you send, and no one else ever sees your mail.

When you sign in, Google's screen will show those broad phrases — "send email on your behalf," "view and edit events." That's expected, not a red flag: Google's consent screen has no "send only what the human approved" setting, so it's all-or-nothing. Coco asks for the full send and calendar permissions, then only ever uses them on the one thing you've tapped to confirm. The exact scopes, the threat model, and the defenses are in SECURITY.md.

Build your own

Pick your path

Same personal admin at the end. Pick the lane that fits how you like to build — the code is source-available for personal use, and each lane has its own steps below.

Beginner

No code about an hour

Claude Code walks you through every step — the Google sign-in screens, the database, the deploy — pausing for your input and checking each one before it moves on. The closest thing to a white-glove install. You never open a terminal.

  • A Google account
  • Claude Code

Intermediate

A terminal an afternoon

Clone it, run it locally, read your brief, then deploy. The hands-on path if you like to understand exactly what you're shipping.

  • Node & Git installed
  • Comfortable in a terminal

Advanced

A developer about an hour

You already ship on Next.js and Vercel, so you skip the hand-holding — fork, wire up the accounts, customize, and add iMessage texting.

  • You know Next.js / Vercel
  • A Mac, for texting
ServiceWhat it's forMinimum you need
Google accountSign-in, Gmail, CalendarFree
VercelHosting + cacheHobby (free)
NeonPostgres databaseFree tier
ClaudeThe brain, and the setupClaude Pro
iMessageTexting (optional)Built into macOS

Building the Advanced way with ChatGPT Codex instead? Swap Claude Pro for ChatGPT Plus — everything else is the same.

The code is source-available — yours to run for personal use. Fork github.com/gzones1974/coco-personal-admin and follow your lane below. The live demo shows you exactly what you're building.

Texting needs a Mac. The dashboard, brief, and voice run anywhere. Coco only texts you from a Mac that stays on — it reads Apple Messages. On Windows, you skip the texting and keep the rest.

Your data stays yours. It runs on your Vercel, your database, your Google sign-in. No shared server. No one sees your inbox.

Never written code? Let Claude Code do the setup with you — it walks you through every screen, asks before each step, explains as it goes, fixes its own errors, and you can stop any time. First-timers, give yourself an evening.

The easy way about an hour

  1. Open Claude Code

    Open Claude Code (claude.com/claude-code). It drives a setup like this end to end, pausing for you at each step.

  2. Point it at an empty folder

    Make a new folder and let the assistant work there. It will fork the repo and set everything up inside it.

  3. Paste this

    Help me set up my own Coco (https://mydashy-demo.vercel.app) from
    https://github.com/gzones1974/coco-personal-admin. Walk me through it
    end to end: fork the repo, make the accounts, set up Google sign-in,
    deploy, and fill in my family details. I'm on a Mac — set up texting too.
  4. Answer and approve

    It asks about you, then does the technical parts, asking before each step. It fixes errors as they come up.

Worried about the Google sign-in? That's the one step that looks technical — and it's exactly the part the assistant walks you through, screen by screen, including Google's "this app isn't verified" warning (expected: it's your private build, not a published app). You can stop and ask it anything as you go, and the full written guide is in the repo if you'd rather read along.

Or do it yourself, in the browser

Heads up: this hands-on route has a few copy-paste commands (all in your browser — nothing to install). The assistant route above runs them for you.

  1. Fork the project

    Make a GitHub account. One click on Fork at coco-personal-admin copies it to you.

  2. Sign up for the free accounts

    Vercel (hosting), Neon (database), Anthropic (the brain). Free tiers everywhere except the AI. Save each key.

  3. Put it online

    In Vercel, import your fork and click Deploy. An error the first time is normal.

  4. Paste your keys

    Add each key under Settings → Environment Variables. Make secrets at generate-secret.vercel.app.

  5. Set up Google sign-in

    Follow the Advanced lane, slowly. Get the redirect URL exactly right.

  6. Give it a memory

    On GitHub: Code → Codespaces → Create. Run npm install then npm run db:migrate.

  7. Make it yours

    Open lib/familyContext.ts, click the pencil, fill in your details, commit. No spouse or kids? Delete those lines.

  8. Sign in

    Open your address, sign in with Google. You built it.

Questions

What do I need to pay for?

Hosting (Vercel), the database (Neon), and Google sign-in are all free tiers. The one paid piece is the AI: a Claude Pro subscription. (Building the Advanced way with Codex instead? ChatGPT Plus.) That's it.

Does this work with ChatGPT Codex instead of Claude?

For the developer paths, yes. On the Intermediate and Advanced lanes, Codex is a great driver for the fork-and-customize work — and once Coco is running it calls Claude's models either way. For the no-terminal Beginner setup, we point you to Claude Code instead: it's built to walk a non-developer through the Google sign-in screens and validate each step before moving on, which is exactly what a first install needs. Codex is a strong coding agent; it just isn't a setup concierge.

Do I need to code?

No. The Beginner lane has Claude Code do the setup with you. There's also a click-through path with a few copy-paste commands, no app to install.

I don't have kids — is this still for me?

Yes. The family details are optional — delete the lines you don't need. It runs the same for a solo professional, a couple, or anyone with a noisy inbox, and it remembers clients and vendors exactly the way it remembers a school or a coach. The brief, the topics, the drafts, the memory — none of it needs you to have a household.

Can I set it up for a parent or someone I care for?

You can. One thing to understand first: each Coco runs on one person's Google account, so you'd set it up on theirs (or run it from your own account, if that's where their mail reaches you). It drafts and sends only what you approve, never deletes their mail, and the audit log lets you see everything it's done on their behalf. Treat it as a helper you supervise, not an autopilot.

Windows or Mac?

Either, for everything but texting. The dashboard, brief, and voice run in any browser. The iMessage texting needs a Mac left on.

Does it really text me?

Yes, on a Mac. Coco drafts a reply, you approve it, and a small program sends it from your own number. It only reads your messages and sends what you okay.

Does it buy or book things on its own?

No. Coco gets you to the one-tap moment — a reservation page with the date and party size filled in, a cart with the right items, a draft ready to send — and you do the final tap. It never spends money or sends mail on its own.

Can it talk? Why robotic?

Yes — tap the mic to speak, tap play to listen. The default voice is your browser's, so it's a little flat. You can swap in a natural voice later.

Is there one chat or many?

One. A single sparkle button floats on every screen. Ask it anything, and when you open an item first it picks up that context automatically — same chat, now answering about that exact thing. A small "Asking about" tag shows what it's scoped to; clear it to go back to general. ⌘K opens it too.

What is "Coco's synthesis"?

It's the short read Coco writes for each thing — the decision, the date, what's owed, what to bring. You read Coco's summary, not a wall of forwarded email. When it isn't sure, it says so instead of guessing.

How do I know why it concluded something?

Open the item and it shows its work — who and what it read, when, and the source email behind each point. Settings keeps a full audit log of every action Coco's tools have taken. It's a personal admin you can check, not a black box.

How do I review what it did, or undo something?

Two places. Settings keeps an audit log — every action Coco's tools have taken, in order — so you can scan the week at a glance. And anything it remembers, you open and delete with one tap; a merge it suggested undoes the same way. Nothing it does is permanent or hidden from you — useful if you're keeping an eye on it for someone else.

Why does it bundle some emails together?

One real thing — a field trip, a renewal — usually arrives as a back-and-forth. Coco folds the whole thread into one topic and shows a small "+N" for the rest, so your list has one row, not ten. When two separate threads are clearly the same thing, it asks before merging them — and a tap undoes it.

It pulled text out of an image — how?

Some senders — a school, a club — send the real details inside a flyer image. For senders you already trust, Coco reads the text out of the image (Haiku 4.5) so it doesn't miss the date. It only does this for people you actually correspond with.

Which model?

Claude Sonnet 4.6 writes the brief, runs the chat, and clusters look-alike threads. Haiku 4.5 does the fast, cheap work in the background — sorting, extracting, and reading text out of image-only emails.

Is my data private?

Yes. It runs on your Vercel, your database, your Google sign-in. There's no shared server in the middle, and only the email address you list can sign in. Your prompts go to Claude's API to do the thinking — and Anthropic's API doesn't train on what you send it.

What permissions does it ask Google for?

More than just "read," and the consent screen will show it. Coco asks to read your mail and calendar, draft replies, send a reply you've approved ("send email on your behalf"), and add an event you've asked for ("view and edit events"). Google's permission model has no "only what the human approved" option, so the grants read broad — but Coco only ever uses send and calendar after your one-click confirmation, and it can't delete your email at all. The full breakdown is in the "Is it safe?" section above.

Can it look things up on the web?

Optionally, yes. Add a search key and the chat can look things up online — a phone number, an address, a fact to check — right alongside your mail and calendar. It's off until you turn it on.

Can my partner share it?

It's built for one person and one Google account. A couple can share an account, or each build their own. Every build is separate.

What do I maintain?

Very little. Keep your Claude subscription active, and sign in with Google again about once a week. That's it.

Is Coco open source?

Not in the strict, OSI-approved sense — and we'd rather say that plainly than stretch the word. Coco is source-available under the PolyForm Noncommercial 1.0.0 license: the full code is public, and you're free to clone it, read it, change it, and run your own for personal, academic, or government use. The one thing the license holds back is commercial hosting — running Coco as a paid service for other people. That carve-out is the point: the code stays open for you to build your own personal admin, while no one can spin it up as a paid hosted competitor. Personal use is exactly what this site is for.

Common snags

The build failed

FixA missing env var, usually. Check all of them are set for Production, then redeploy.

Sign-in loops

FixThe redirect URL must match exactly: https://your-coco.vercel.app/api/auth/callback/google, no trailing slash. Check NEXTAUTH_URL too. If sign-in is refused outright, add your Google address to NEXTAUTH_ALLOWED_EMAILS.

The dashboard is empty

FixTurn on the Gmail and Calendar APIs in Google Cloud, and make sure you added a KV store. Sign out and back in.

The daemon errors on start

FixGive Terminal Full Disk Access. A 401 means the daemon secret doesn't match Vercel. macOS prompts once to control Messages — allow it.