Skip to content

nanocoai/family-assistant

v1.0.0

Household assistant agent: morning briefs, meal planning and grocery lists, week-ahead logistics, school tracking, price watch, and bookings

Family Assistant Agent Template

A NanoClaw agent template for a whole household. It runs a morning brief, plans meals and builds a grocery list (hunting the best prices), looks ahead at the week's logistics, stays on top of the kids' school, watches prices on things the family wants, and helps book appointments and reservations.

Layout

NanoClaw stamps an agent from the parts of this folder its plugin reader loads (skills/ and the ai.nanoco.nanoclaw/ extension dir); README.md is not one of them.

family-assistant/
├── plugin.json                       # Agent Plugins manifest (marks the folder as a plugin)
├── ai.nanoco.nanoclaw/
│   ├── context/
│   │   └── instructions.md           # persona + the 7 ground rules
│   └── tasks/                        # shipped tasks, each created PAUSED
│       ├── daily-morning-brief.md
│       ├── weekly-week-ahead.md
│       └── weekly-memory-hygiene.md
├── skills/
│   ├── welcome/                      # first contact: intro + onboarding (overrides the built-in)
│   │   └── SKILL.md
│   └── family-assistant/             # the router + all mechanics
│       ├── SKILL.md                  #   entry: capabilities → references routing
│       └── references/               #   one file per capability + setup
│           ├── connecting-google.md
│           ├── family-onboarding.md
│           ├── morning-brief.md
│           ├── meals-and-grocery.md
│           ├── week-ahead.md
│           ├── school.md
│           ├── price-watch.md
│           └── book-it.md
└── README.md                         # this file

There's no mcp.json and no scripts; every tool reaches its API through the OneCLI proxy, so there's nothing to pin or format deterministically.

What it does

Six capabilities, routed by the family-assistant skill (mechanics live in the matching references/*.md):

CapabilityWhat it's for
morning-brieftoday at a glance: events, owners, the critical few from email/chats, weather
meals-and-groceryplan the week's dinners off real recipes, build the list, hunt sourced deals
week-aheadthe wider planning view: deadlines, pickups, prep, what needs an owner
schoolopt-in tracker: sweep dates/forms onto the calendar, track grades over time
price-watcha standing wishlist; ping only when a price really drops
book-itfind a place, request the appointment or reservation, hold the slot

Configure before first use

Nothing to fill in by hand. The agent builds the family's profile conversationally on first contact and keeps it in its memory (see skills/family-assistant/references/family-onboarding.md): the people, the calendars and inbox to read, food staples and allergies, schools, activities, and which recurring tasks they want and when. That profile is the source of truth every capability grounds in, and the agent keeps it current as things change.

Stamp an agent from this template

ncl groups create --template lifestyle/family-assistant --name "Family Assistant"

Then wire it to the family's group chat as usual (/manage-channels). Give it write access to the chat you want it to post into; anywhere it should only read for context, keep it read-only and it stays silent there.

Recurring tasks

Three tasks ship in ai.nanoco.nanoclaw/tasks/, each created paused (the engine stamps every template task paused): the morning brief and week-ahead come as standard, so at onboarding the agent confirms their times, updates the schedules, and resumes them; memory hygiene is a non-destructive weekly audit of the agent's own memory that the agent offers during onboarding. The remaining capability runs (meal plan, school sweep, price-watch) are opt-in and ship as no files at all: the agent creates each task once the family says yes and picks the time. Every schedule cron in a shipped file is only a sensible default.

Credentials: via OneCLI, not env vars

The agent uses three tools, all through the OneCLI proxy: Gmail, Google Calendar, and web search. No API keys live in this template; NanoClaw never passes secrets into agent containers as env vars; the OneCLI gateway holds credentials in its vault and injects them into outbound HTTPS calls at the proxy boundary.

The default is one Google account where the family funnels everything into, used for both Gmail and Calendar. OneCLI also supports more than one account per provider (e.g. each parent's own Gmail) as an optional path. Full step-by-step lives in skills/family-assistant/references/connecting-google.md; the short version:

ToolSetupScopesWhere
GmailOAuth sign-in via OneCLI; an instance without platform Google credentials asks for your own Web-app OAuth client (Client ID + Secret) from Google Cloud Consolegmail.readonly, gmail.modify, gmail.sendOneCLI → Apps → Gmail → Connect
Google CalendarSame flow; one OAuth client covers both appscalendar.readonly, calendar.eventsOneCLI → Apps → Google Calendar → Connect
Web searchProvided by the runtime: used for prices, weather, and finding places to bookn/ano per-family setup

If a Google call ever returns 401 / 403 / "not connected," the connector has no credential in the vault yet; the agent walks the family through connecting it, then retries. Until Calendar is connected, the calendar-dependent capabilities work from what they can see and say what's missing.

One-time Google prerequisite (self-hosted OneCLI)

The Connect screen asks for a Client ID + Secret. Create your own Web-application OAuth client in Google Cloud Console; one client covers both Gmail and Calendar, and the agent walks the family through the console steps in chat when a call first fails.

Running on a remote box?

If NanoClaw runs on a VM, the Google connect flow still happens in your browser, and Google's sign-in has to reach OneCLI back; that usually means an SSH tunnel from your machine (never expose OneCLI publicly when a tunnel is possible). The agent walks you through it in chat; the exact steps live in skills/family-assistant/references/connecting-google.md under "Remote box?".