Most OpenClaw write-ups focus on solo agents. The community keeps asking a different question: “Can I host one OpenClaw that the whole household shares?” Short answer: yes, and it works surprisingly well once you wire up multi-user pairing and some per-person preferences. This guide shows the exact setup I run for my family of five—two adults, one teenager, two younger kids—covering grocery lists, chores, the family calendar, and kid-safe guardrails.
Why run a single OpenClaw instance for the family?
Running one shared agent instead of N personal agents simplifies life:
- One memory graph for household context—no duplicated or conflicting state.
- Central scheduling: the agent sees everyone’s events and can resolve conflicts.
- Lower cost: a single ClawCloud container or Raspberry Pi server instead of scattered VM bills.
- Easier maintenance: update Node 22.6 once, back up one SQLite memory file.
The downside: you must think about identity isolation and permissions. We’ll tackle that head-on.
Prerequisites and quick install
I host on ClawCloud because I got tired of SD-card corruption on the Pi. Cold start to live agent is 60 seconds:
# sign up, choose "FamilyAssistant" as the agent name
clawcloud login --token <redacted>
clawcloud create FamilyAssistant --plan hobby --node 22
If you self-host, the commands are the same minus the cloud wrapper:
npm create openclaw@latest FamilyAssistant
cd FamilyAssistant
npm run gateway # web UI on http://localhost:3210
npm run daemon # keeps the agent brain alive
Either way, bookmark the Gateway UI; that’s where we’ll do most configuration.
Multi-user pairing: WhatsApp, Telegram, Slack
OpenClaw allows any number of endpoints. The trick is tying messages back to a user object you define. The current pairing flow (v0.27.4) is QR-based for WhatsApp, token-based for everything else.
- Create user profiles under
Settings → Usersin the Gateway. Give each family member a short handle:alice,bob,carol,dan,eve. - Generate pairing links. Example for Telegram:
/pair telegram alicein the Gateway console spits out a deep link likehttps://t.me/OpenClawBot?start=claw_abc123. Send that to Alice, she taps once, and her chat is linked. - Repeat for WhatsApp using QR codes. The
/pair whatsapp bobcommand renders ASCII QR in the terminal; Bob scans it, done.
You can mix channels. My partner prefers iMessage (through Matrix bridge); the teenager lives on Discord. OpenClaw doesn’t care—as long as the transport maps back to the correct user ID.
Per-person preferences and identity separation
User objects support arbitrary JSON metadata. The ones that matter for a family assistant:
locale– language and regional settings (en-US,de-AT).timezone– important for calendar math.voice– if you use the TTS plugin. Younger kids get a different, friendlier voice.allow_shell– defaultfalse. I only enable shell access for myself.allowed_tools– fine-grain which Composio integrations each user may invoke.
Example snippet in users.json:
{
"alice": {
"locale": "en-US",
"timezone": "America/New_York",
"voice": "en-US-Wavenet-F",
"allow_shell": false,
"allowed_tools": ["todoist", "calendar_google", "notion"]
}
}
OpenClaw hot-reloads that file, so tweak and save—no restart needed.
OpenClaw family shared assistant setup for household management
Here’s the core of the search query in plain sight. The pieces we wire next make the agent actually useful day to day.
1. Grocery list that everyone can add to
Community survey on GitHub #482 showed 70% of households use Google Keep for groceries. I switched to Notion because Composio’s Notion adapter supports append-only edits (safer for accidental deletes).
# once per account
clawctl tools connect notion --user alice
# create the shared page, grab its URL, then set an environment var
export GROCERY_PAGE="https://www.notion.so/family/Groceries-123abc"
Add a prompt snippet under brain/prompts/grocery.md:
You maintain a Notion list at $GROCERY_PAGE titled "Groceries".
When any user says something like "we're out of milk" or "add cereal to the list",
append an unchecked item with that text.
Confirm with a short reply: "added milk".
Reload prompts with /reload prompts in the Gateway console. Now anyone can text “add bananas” from WhatsApp and it shows up in Notion instantly.
2. Chore rota with fairness logic
We tried plain Todoist but ran into duplicate assignments. Instead we built a tiny SmartScript inside OpenClaw’s shell tool (yes, I enabled allow_shell just for this):
#!/usr/bin/env bash
jq '.chores[] | select(.due=="$(date +%F)")' chores.json | while read chore; do
assignee=$(jq -r '.assignee' <<< "$chore")
if [[ "$assignee" == "" ]]; then
assignee=$(python rotate.py) # round-robin script
jq --arg a "$assignee" '.assignee = $a' <<< "$chore" | sponge chores.json
fi
openclaw message "$assignee" "Reminder: $chore" --priority high
done
Crontab entry:
0 7 * * * /home/claw/chorebot.sh
The teenager called it “fair(ish)”. Close enough.
3. Family calendar merge
OpenClaw’s Calendar AI integration (powered by Composio) can watch multiple Google calendars and write to a single Family calendar. Connect once per Google account:
clawctl tools connect calendar_google --user bob
clawctl tools connect calendar_google --user alice
Then add a system rule:
Any event created by Alice, Bob, or Carol in their personal calendars
should be copied to "Family" unless marked private.
Prefix the title with the owner’s emoji: 🟢, 🟣, 🔶.
Because the integration exposes triggers, the copy happens server-side without LLM latency.
Age-appropriate interactions and parental controls
This part took the most tinkering. My guardrails stack:
- Moderation model: OpenAI’s moderation endpoint, threshold bumped to allow mild sarcasm but block explicit topics.
- Role prompts per user group. Example:
# prompts/kids.md
You are talking to a child under 12.
Keep replies under 20 words.
No links.
Binding is a one-liner in users.json:
"eve": { "prompt_profile": "kids" }
You can do similar for the teenager—he requested meme-friendly language and it works.
Automation recipes the community actually uses
Below are three crowd-sourced automations from the #family-assistant Discord channel. They’ve been stable for months.
- “Who’s picking up?” When school ends, OpenClaw checks traffic (Mapbox API) and pings the parent with the shorter commute.
- “Laundry done” via Home Assistant Webhook. Washer publishes
/laundry/done, OpenClaw notifies whoever started the cycle. - Allowance ledger in Google Sheets. Kids can type “balance?” in Telegram; the agent reads the sheet and replies.
Maintenance and backups
Family assistants become critical very quickly—don’t lose data.
- Memory snapshots:
clawctl backup create --target s3://claw-backups/family --interval 6h - Log retention: set
LOG_TTL=14dto avoid endless WhatsApp transcripts. - Security patches: ClawCloud auto-patches Node LTS. If self-hosting, subscribe to the Node.js 22 RSS feed and redeploy within 24 h of a CVE.
What still hurts (and workarounds)
Engineers appreciate honesty, so here it is:
- Identity bleed: When two people message at the exact same millisecond, the logs sometimes swap user IDs. Rare but annoying. I added a 50 ms jitter client-side; no issues since.
- Calendar race: Concurrent writes to the shared Google Calendar can hit the 429 quota. We batch requests in a Redis queue; a proper fix is coming in OpenClaw 0.28.
- Mobile UI: The Gateway is desktop-first. We rely on Telegram slash commands on phones. Hoping for a PWA soon.
Next steps: extend, don’t rebuild
If you reached this point you have a functioning household assistant. My advice: resist the urge to “rewrite it properly”. Instead, add one integration per weekend, commit configs to git, and let the agent earn trust incrementally. Your family will tell you which parts matter.
Have tweaks or bug reports? The #family-assistant tag on GitHub Discussions is active and friendly. See you there.