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
Share this project:

Updates

Submission history