I Built Doris, A Personal Ai Assistant For My Family And Today I'm Open-sourcing It.
Hey everyone. I've been working on this for a while and finally feel ready to share it.
About a year ago I started building an AI assistant for my family. Two young kids, a busy household, and the constant feeling that something was falling through the cracks. A school email I didn't open in time, a calendar conflict I didn't notice, a reminder that came too late to be useful. I wanted something that could actually pay attention on my behalf.
What started as a weekend project turned into something my family actually depends on. Her name is Doris, and she runs on a Mac Mini in our home.
What she actually does
- An afterschool registration email arrives with a semester of activities. Doris reads it, parses all the dates and times, creates recurring calendar events through June, and lets me know it's handled. Before I've opened my inbox.
- It's 4:25pm on a Tuesday. Doris knows there's a 5pm pickup, knows where I am, and sends a notification with transit options and timing.
- "What was that restaurant we talked about for our anniversary?" She searches months of conversations by meaning, not keywords, and finds the exact discussion.
- She learns from feedback. If she flags an email that wasn't important, I tell her, and after a few corrections she adjusts. She adapts to how I want things handled, not the other way around.
How it works
Doris is a Python backend with 42 tools (calendar, email, reminders, iMessage, weather, contacts, music, smart home, and more). She has 9 "scouts," lightweight agents that monitor things like your inbox, calendar, and weather on a schedule and surface what matters. The scouts run on cheap models (Haiku-class, ~$1/month total) and escalate to the main brain only when something is worth your attention.
She's provider-agnostic. Works with Claude, OpenAI, or Ollama. You can swap providers by changing one environment variable.
She also has channel adapters for Telegram, Discord, iMessage (via BlueBubbles), and a generic webhook, so you can talk to her from wherever you prefer.
The memory system
The most interesting part of building Doris turned out to be the memory. Not the LLM, not the tool calling. The memory. Because memory is what makes an assistant feel like it actually knows you.
I ended up pulling the memory system out into its own package called maasv. It handles the full lifecycle: extracting entities and relationships from conversations, building a knowledge graph, consolidating and pruning during idle time, and retrieving with three-signal fusion (semantic search + keyword matching + graph traversal). Everything runs on SQLite. No Redis, no Postgres.
If you're building your own agent and want this kind of memory without building it from scratch, maasv is a standalone package on GitHub. It works with any LLM provider. Doris is one integration, but maasv was designed to be independent.
Why I'm sharing this
This is my first open-source project. I've been building Doris for my own family and sharing it is honestly a little nerve-wracking. But the problems she solves aren't unique to my household, and I think the memory system in particular could be useful to a lot of people building agents.
I'd genuinely love feedback. What's confusing, what's missing, what could be better. I'm not a company, there's no business model here. Just a dad who built something useful and wants to share it.
Links:
- Doris (the assistant): https://github.com/ascottbell/doris
- maasv (the memory/cognition layer): https://github.com/ascottbell/maasv
Thanks for reading.
[link] [comments]
Popular Products
-
Orthopedic Shock Pads For Arch Support$71.56$35.78 -
Remote Control Fart Machine$80.80$40.78 -
Adjustable Pet Safety Car Seat Belt$57.56$28.78 -
Adjustable Dog Nail File Board$179.56$89.78 -
Bloody Zombie Latex Mask For Halloween$123.56$61.78