Inspiration
Stress and low energy build up quietly; most of us notice only when the week has already gone wrong. A personal AI could help, but the people who need it most are the least willing to hand their feelings to a product that harvests them. So we built a personal AI where privacy is enforced in code, not promised in a policy.
What it does
A 30-second daily check-in. You say how you feel; Aawiz remembers your own history and answers in plain language:
- Check in: mood, energy and stress (1 to 5), optional sleep.
- Reflect: "How does this week compare to last week?" gives one plain sentence about your own pattern.
- Act: one small, low-risk action, with the reason.
- Stay in control: "What do you keep about me?" and "Delete my data", with a spoken confirmation. It never diagnoses or uses clinical labels. Crisis language stops everything before any model call, and points to real people (113 in the Netherlands).
How we built it
- NVIDIA Nemotron 3.5 Lightning (OpenMDW-1.1) on Nebius Token Factory through the OpenAI-compatible API. The model receives the live tool list of our MCP server and decides which tool to call.
- A self-hosted MCP server (official MCP Python SDK, Streamable HTTP): consent, check-in, weekly reflection, micro-action, privacy summary, export, delete. Every call appears live in the demo's MCP activity panel.
- The model chooses, the code protects: consent, check-in scores and deletion are enforced in code. Scores are parsed from the user's own words; a model-proposed number is never stored; deletion runs only after an explicit yes.
- Public demo mode: every visitor gets a pseudonym and 14 days of synthetic data, deleted after two hours; per-visitor and daily cost caps.
- Memory, skills, user-controlled data: memory is the user's own check-in history, skills are MCP tools, and the user can export or delete everything.
- 146 automated tests and CI on every push.
Challenges we ran into
Our first live recording caught the model inventing check-in scores the user never gave. Prompting alone was not enough, so we moved the rule into code and added tests that prove a model-supplied number is never stored. The same happened earlier with consent and deletion.
Accomplishments that we're proud of
- A live, public personal AI that anyone can try in seconds.
- Safety and privacy that are verified by tests, not just described.
- About one second per turn and a fraction of a cent per conversation.
What we learned
Small open models are fast and cheap enough for a real personal assistant, but the trust boundary must live in code: the model decides what to do, never what the user said.
What's next
- The same agent inside the full Aawiz app, with Elin's memory.
- Dutch and English for our home market.
- Wearable signals, only with explicit consent.
- Opt-in team insight for organizations: anonymous and aggregated, never individual.
Built With
- elevenlabs
- github-actions
- javascript
- mcp
- model-context-protocol
- nebius-token-factory
- nvidia-nemotron
- openai-api
- playwright
- pytest
- python
- render
- sqlite
- starlette
- streamable-http
Log in or sign up for Devpost to join the conversation.