Inspiration

Every health app talks to the person holding the phone. The person who most needs help, a 72-year-old living alone, does not hold a phone all day. He watches television. Vita Heart puts the health room on the screen he already looks at, and puts his daughter, Alexa+, the front door and a fleet of agents around it.

What it does

  • Morning Board on Fire TV (Vega OS): greeting, what is due, one line from the family, one big button, I'm up. The family's phone shows the tick in under a second.
  • Medication Moment: boxes photographed once from a phone. Amazon Nova Lite reads the print and must quote its own transcript (a blank photo cannot become a made-up drug); RxNorm confirms identity through a Turkish-brand bridge; openFDA supplies live recalls with lot numbers. The TV never says "recalled": it gives the question to ask the pharmacist. "Twice daily" becomes slots; the household maps slots to its own clock on the TV, once.
  • Heart Session: ten seated minutes. A standalone watchOS app streams his heart rate to the television; the coach ends a set early after twenty seconds above the ceiling and shortens the next one after slow recovery. The number on screen always carries its source: live, recorded, or test signal.
  • Alexa+: a real MCP server (spec 2025-11-25, Streamable HTTP, OAuth 2.1 PKCE, bare 401 for anonymous calls) with five tools and a board card; tool calls take 120 to 160 ms behind API Gateway. The simulated Alexa+ surface uses the browser's speech recognition and Claude on Bedrock to choose a tool from the server's own schemas. "Tell Vita Heart I took the morning Coraspin" flips the dose on the TV within a second.
  • Ring: signed webhooks (HMAC-SHA256, durable idempotency), sensors normalised; Night Watch rules for the door at night, a quiet morning, a cold hall.
  • Night Watch: at 21:00 Strands agents on Bedrock AgentCore turn the day's facts into one calm paragraph for the family, delivered by SNS. The words alarm, monitor, detect and diagnose never appear.

How we built it

React Native 0.83 on Vega OS (TVFocusGuideView, D-pad only, 32 px minimum type). FastAPI on Lambda behind API Gateway with one idempotent deploy script; DynamoDB single table; S3 for photos; a long-poll events channel every surface reads. Strands Agents on Bedrock AgentCore Runtime (Identifier, Watchman, Scribe, Coach), every tool call traced. The MCP server runs inside the API. Tests: 37 pytest (moto) + 15 jest, plus live tests behind a flag.

Challenges

The Alexa+ toolkit is partner-only, so the surface is the sanctioned simulation over a real server. Lambda cannot stream through API Gateway, so live updates are a long-poll. Nova Lite completed a blank image into a plausible medicine until it was grounded in its own transcript. The MCP SDK's session manager runs once per instance and its host guard rejects any non-localhost Host; both are in the friction log.

What we learned

Reading is not identifying. Slots are not times. A Scribe with tools becomes a doctor; ours has none. And a television is a health device the customer already owns.

What's next

Ship to the Fire TV Appstore with the Vita account as the family side; connect a Ring household; real Alexa+ certification when the toolkit opens.

Pre-existing work, disclosed

Vita is our shipping iOS health companion. Everything in this repository was created during the submission window. Two things are reused with attribution: medicine-identification tools from our open-source VitaCabinet (Apache-2.0, vendored with a NOTICE) and read-only access to a household through a scoped code. The iOS app is not part of this submission.

Built With

  • amazon-bedrock
  • amazon-nova
  • api-gateway
  • aws-lambda
  • bedrock-agentcore
  • claude
  • dynamodb
  • eventbridge
  • fastapi
  • healthkit
  • mcp
  • oauth2
  • openfda
  • python
  • react-native
  • ring-api
  • rxnorm
  • s3
  • sns
  • strands-agents
  • swiftui
  • typescript
  • vega-os
  • watchos
Share this project:

Updates

Submission history