AI Assistant
AI Assistant
The AI assistant understands natural language — in Dutch or English — and translates it into actions across all FamilyHub modules: shopping lists, tasks, and the calendar. It is available as both text input and push-to-talk voice. Language follows the family preference you set in Admin > Settings.
How It Works
Every AI request goes through the same pipeline:
- Text or voice input — type a command or tap the mic and speak
- Transcription (voice only) — audio is sent to a Whisper speech-to-text service (self-hosted or cloud)
- Context snapshot — FamilyHub builds a summary of your current shopping lists, upcoming tasks, and calendar events
- Intent parsing — the AI (Claude or OpenAI) receives your command + context and returns a structured intent
- Execution — the intent is routed through the same application logic as all button taps and form submissions
- Confirmation — you see a response message; all connected devices update via WebSocket
The AI never directly modifies data. It only produces an intent. The actual data change goes through the same validated code path as a manual action.
Voice Input
- Tap the microphone button in the AI input bar (visible on every screen)
- Speak your command in Dutch or English
- Release the button (or it auto-detects silence after ~1.5 seconds)
- Watch the confirmation message
Target latency: under 5 seconds from release to confirmation on screen (assumes a healthy network and the Cloud plan; BYOK setups depend on your AI provider's latency).
Text Input
Type any command in the AI input bar and press Enter. The same AI pipeline runs, just without the transcription step.
Supported Intents
Today FamilyHub understands 17 distinct intents across three domains, plus an "undo last action" meta intent. The examples below are in Dutch for illustration; English phrasing works the same.
Shopping
| Command example | What happens |
|---|---|
| "voeg melk, eieren en brood toe" | Adds 3 items to Boodschappen, auto-categorized |
| "voeg Billy kast toe aan de IKEA lijst" | Adds to the IKEA list specifically |
| "heb ik al boter op de lijst?" | Checks and responds yes/no |
| "kruis boter af op de lijst" | Marks butter as checked |
| "zet melk terug" | Unchecks milk |
| "verwijder boter van de lijst" | Removes the item permanently |
| "verwijder alle afgevinkte items" | Clears checked items from the list |
| "voeg een IKEA lijst toe" | Creates a new shopping list |
| "verwijder de IKEA lijst" | Deletes the list |
Tasks
| Command example | What happens |
|---|---|
| "planten zijn water gegeven" | Marks today's instance of "planten water geven" as complete |
| "maak een taak aan om de goten schoon te maken volgende week" | Creates a one-off task with a due date |
| "snooz de vuilnis taak naar morgen" | Snoozes the instance to tomorrow |
| "archiveer de taak ramen lappen" | Archives the task |
| "wijzig de vuilnis taak naar elke dinsdag" | Updates task recurrence |
Calendar
| Command example | What happens |
|---|---|
| "voeg tandarts toe volgende dinsdag 10:00" | Creates a calendar event |
| "voeg voetbaltraining Louen toe vrijdag 17:00 tot 18:30" | Creates event with end time |
| "verplaats de tandarts naar woensdag" | Updates the event |
| "wanneer is Louen's volgende voetbaltraining?" | Queries and responds with the date/time |
| "verwijder de tandarts afspraak van volgende week" | Removes the matching event |
Meta
| Command example | What happens |
|---|---|
| "maak dat ongedaan" | Undoes the last AI action |
| (anything unrecognized) | Responds: "Ik begreep dat niet, kun je het anders formuleren?" |
Context Awareness
The AI sees your current data before every request:
- All active shopping lists and their items
- Upcoming tasks (next 14 days)
- Calendar events (this week + next week)
This is why "heb ik al boter op de lijst?" works without specifying which list — the AI knows what's on Boodschappen.
Configuration
Self-Hosted
Your family admin configures the AI provider in Admin > Services:
- Claude (Anthropic) — recommended. Requires an Anthropic API key.
- OpenAI — alternative. Requires an OpenAI API key.
Speech-to-text can use a self-hosted faster-whisper server (best privacy) or the OpenAI Whisper API.
Trial
During the 14-day trial, AI is pre-configured with these limits:
- 100 AI requests total over the whole trial
- Max voice recording: 20 seconds
The paid Cloud plan lifts this to a generous monthly cap (3000 requests/month at the time of writing). For unlimited usage, bring your own Anthropic or OpenAI key via the Cloud BYOK plan or self-host.
Language
FamilyHub supports Dutch (NL) and English (EN). The active language, set per-family under Admin > Settings, drives both the AI prompt and the speech-to-text model. The Dutch path uses a Whisper large-v3 model tuned for Dutch accuracy; the English path uses the equivalent English model.