Inspiration

People with kidney disease have to limit sodium, potassium, phosphorus and fluids all at once. Foods that sound healthy, like bananas, beans and whole grains, can be the wrong choice, and phosphorus isn't even required on US nutrition labels. Many patients are older and don't want another app. Everyone already knows how to make a FaceTime call.

What it does

RenaLine is a renal dietitian you can FaceTime. You call a number, point your camera at a food label, a plate, your fridge or a store shelf, and hear whether it fits your limits. You can also just ask about a food by name. It remembers what's in your kitchen, suggests meals from it, and keeps a shopping list between calls. It always says it follows the limits set by your care team and doesn't replace them.

How we built it

  • The call: Chert gives the agent a real FaceTime line, bridged into a LiveKit room. The agent runs on the LiveKit Agents SDK in Node.
  • Voice and vision: Gemini Live handles the conversation. Gemini reads a camera snapshot when the caller asks about something in view.
  • The renal brain: a hand-checked food list first, then USDA FoodData Central, then Gemini with Google Search for branded products. Hard rules sit on top, for example colas are always "limit" because of phosphate additives.
  • Actions: a browser fills a grocery cart, and the agent can text links and recipes over iMessage through Chert.
  • Team: three tracks (the call, the renal brain, actions) built in parallel behind a shared contract, then merged.

Challenges we ran into

  • No sound in either direction on our first calls. A tone-only test agent showed the fault wasn't in our code.
  • Gemini's main model was overloaded during the hackathon, so we added an automatic fallback model.
  • USDA search returned wrong matches for brand names (Coca-Cola came back as lemonade), so we reject any match that doesn't credibly fit.
  • An AI lookup can sound confident and be wrong. We only accept an online answer if a real search ran and returned a source.
  • Merging three tracks that were built against placeholder modules.

Accomplishments that we're proud of

  • It works on a real FaceTime call with no app to install.
  • It says "I can't judge that" instead of guessing, and never invents a nutrient number.
  • It tells the caller when a number came from the web and not their care team's list.
  • 350 automated tests, none of which need a network or API keys.

What we learned

  • For health guidance, a wrong "okay" is worse than "I don't know", and that shaped every lookup rule.
  • Voice agents need short answers and a way to recover when a tool fails mid-call.
  • Agreeing on a shared contract up front let three people build in parallel.

What's next for RenaLine

  • Texting recipes and cart links to the patient, and accepting a photo by iMessage when the video is unclear.
  • Real serving sizes for every food, so verdicts aren't based on 100 grams.
  • Limits entered by the care team, not a demo profile.
  • Mealtime check-in calls and review by a renal dietitian.

Built With

Share this project:

Updates

Submission history