Here's the full Devpost with the new opener. The same line also goes in the tagline field.

Tagline: An AI care companion that keeps dementia caregivers and clinicians connected, one iMessage at a time.

Inspiration

Taking care of someone with Alzheimer's or dementia is exhausting. Most of it happens at home, far away from the doctor's office. Then the appointment comes, and the caregiver is asked, "How has he been this month?" It's hard to remember when the agitation started, how many nights he was up, or what set it off. Doctors end up making decisions based on whatever a tired person can recall in fifteen minutes, so of course, the perspective is unlikely to be fully accurate.

We kept coming back to one thing: caregivers don't have time to learn another app, but they're already texting all day. So what if they could just text what they notice, as it happens, and something on the other end turned it into a real record for the care team? And what if the care team could answer back?

What it does

We built Lucidity, an AI care companion that keeps dementia caregivers and clinicians connected, one iMessage at a time. There's nothing to download.

For the caregiver. You text Lucidity what's going on the way you'd tell a friend ("Dad got really agitated at dinner and kept yelling that someone stole his wallet"), and it writes back like a person would. Quietly, it saves what you said as something a doctor can actually use: what kind of behavior it was, when it happened, and your exact words.

If something sounds like an emergency, like a fall, someone missing, or signs of a stroke, it immediately tells you to call 911, using wording we wrote ahead of time rather than wording the AI makes up. The care team is alerted at the same time. If you say you're at your limit, it points you to 988 and the Alzheimer's Association 24/7 Helpline.

When it notices a pattern, like several rough nights in a week, or you mentioning you're running on empty, it offers a short check-in built on two instruments clinicians already use: the NPI-Q for behavior changes, and the Zarit Burden Interview (ZBI) for caregiver strain. If you say yes, it walks you through the questions word for word, one at a time. You can answer however you want ("pretty often", "yeah, the wallet thing"), and it figures out what you meant. Then it goes back to just being someone to talk to.

It also handles reminders. "Remind me to give Dad his meds at 8pm" gets you a text at 8pm, once or every day. After your first check-in, it offers to remind you when the next one is due.

For the care team. A clinician texts Lucidity: "how is he doing?" They get back a long-term profile:

  • how the NPI-Q and Zarit results changed between check-ins
  • the caregiver's own words
  • any safety alerts
  • a few suggested questions, each with a reason

The clinician can send one of those questions, or give advice in their own words ("tell them: create a calm environment"). Lucidity drafts a caregiver-friendly version, and nothing reaches the family until the clinician approves the exact text. When the caregiver replies, the reply is saved and forwarded back. So the loop closes. Observations go in, reviewed guidance comes out, and the family's response comes back.

How we built it

Lucidity is organized into three parts:

  • Connect: the caregiver experience.
  • Intelligence: turns messages into a structured record.
  • Care: the clinician experience.

We built it on Photon Spectrum, which gave us real iMessage lines in the cloud. Every text comes into one app, and Lucidity can also text people first, for reminders, check-in invitations, safety alerts and approved messages. For the hackathon, the clinician side runs over iMessage too. The planned clinician interface is a web dashboard.

The backend is TypeScript on Node. The conversation runs on GLM-5.3 through the Vercel AI SDK. It saves each observation by calling "tools", and every call is validated before anything is written.

Everything that has to be exactly right is plain code, not AI:

  • the safety check, which runs before the AI ever sees a message
  • the questionnaires, asked word for word and scored by code, so the AI can never invent a number
  • reminder times and time zones
  • the clinician profile, compiled from the saved records

The only thing the AI writes on the care team side is the friendlier wording of a clinician's note, and the clinician approves it before it's sent.

For the demo, the clinician is a teammate labeled "Simulated clinician," and the patient's history is synthetic. No real patient data was used.

Challenges we ran into

The biggest surprise was how confidently the AI would say it did something it hadn't. It would reply "I've updated that to a 3" without saving anything, or "I'll remind you at 8" without scheduling a reminder. Telling it to stop wasn't enough. We had to add checks in the code itself, so a reply can't claim something was saved or scheduled unless it actually was.

We also fought random timeouts. The same message would sometimes take two seconds and sometimes over a minute, because the model was "thinking" too long. Turning down how much it reasons fixed it.

We had to figure out how a friendly chatbot and a strict clinical questionnaire could live in the same conversation. We landed on a handoff, a bit like a website chat that connects you to a specialist: the AI talks, the questionnaire takes over when you agree, and then hands you back.

And we had to decide how much to trust the AI on the clinician's side. We kept it out of everything except wording. The clinician texts in plain phrases, simple rules figure out what they meant, and the AI only rewrites a note into friendlier language for the family.

Accomplishments that we're proud of

We're proud that the whole loop runs end to end: caregiver to care team and back.

Safety comes first in every single message. The emergency check runs before the AI sees what you wrote, the AI never writes emergency instructions on its own, and the care team is alerted with the caregiver's exact words.

The data is honest:

  • If a caregiver says "I don't know," it's saved as unknown, not as "no."
  • If someone corrects themselves, the old answer is kept, not erased.
  • If a questionnaire is incomplete, we don't make up a total.
  • We only ask the first 12 of the 22 Zarit items, so we don't show a burden category the full scale wasn't designed to give.

And a human stays in charge. Nothing from the care team reaches a family unless a clinician approved the exact words.

What we learned

AI is great at conversation and bad at being trusted with facts on its own. The parts that need to be exactly right, like safety messages, scores, reminder times and what gets saved, are better handled by plain code. The AI does what it's good at: listening, and responding like a person.

We also learned how much care goes into clinical tools: copyright rules about wording, why "unknown" and "no" have to stay different, why a partial questionnaire can't borrow the full version's cutoffs, and why a screening score is never a diagnosis.

What's next for Lucidity

  • A clinician dashboard: NPI-Q and Zarit trends over time, the long-term profile with every line linked to the caregiver's words, an alert feed, a review queue for approving messages, and a pre-filled NPI-Q report for the clinician to verify.
  • More questionnaires, like the AD8 memory screen, the Functional Activities Questionnaire and the full 22-item Zarit, once licensing is in place.
  • Testing against our 48 synthetic cases, covering emergencies, scoring and edge cases, and fixing what fails.
  • What real use requires: a real database, privacy safeguards, licensed instruments and real clinical review, before it's ever used with a real family.

Built With

Share this project:

Updates

Submission history