Inspiration
Inspiration
A Japanese Twitter user posted a story that stuck with us. His father passed away suddenly, leaving behind a locked iPhone. Inside: roughly 2 Bitcoin, stock accounts, and financial assets the family knew existed but couldn't touch.
To unlock it, the family had to write a letter to Apple in California, obtain a court order recognizing their inheritance rights, and wait. The estimated timeline: over two years — for assets that were rightfully theirs, sitting in a device on their own kitchen table.
His father didn't do anything wrong. He just didn't expect to die that day. Nobody does.
That's the gap: death is unplanned, but every digital system assumes the owner will always be there to unlock it. A will tells people what you wanted — nothing executes it. We built StillHere to be the missing piece: a system that holds your intent while you're alive, knows when you're truly gone, and delivers what you entrusted — without two years of lawyers and letters to Cupertino.
What it does
StillHere is a self-preserving agent runtime for long-term human intent. You encode your intentions once — contacts, assets, trigger conditions, authorized tasks, and safety rules. The system then:
- Monitors your liveness daily through warm mood check-ins, voice journals, app activity, and optional Google signals (Calendar, Gmail, Drive)
- Extracts intent from your voice — speak a journal entry and Gemini pulls out the people, assets, and wishes inside it, proposing structured updates to your legacy plan
- Escalates carefully when you go quiet — a 7-agent state machine advances from
ACTIVE→CHECKIN_MISSED→AT_RISK→UNRESPONSIVE→VERIFYING, with email reminders and phone calls at each gate - Verifies through real humans — when thresholds are crossed, an agent places real Vapi phone calls to your designated verifiers and requires ≥0.7 confidence from a live conversation before advancing
- Delivers your legacy with a passphrase gate — recipients receive a phone call where one Gemini agent verifies their identity against your secret passphrase ("Open Sesame") while a second agent silently audits the conversation for coercion and prompt injection. Only when both pass are your words read aloud.
How we built it
The system is a multi-agent pipeline on Google Cloud, where each of the 7 agents has a single responsibility, a defined trigger condition, and an explicit handoff protocol:
- Google ADK 2.2 (
LlmAgent+McpToolset) orchestrates every agent, backed by Gemini 2.0 Flash - MongoDB MCP Server is our key architectural decision: all AI reads flow through MCP, so Gemini sees Atlas collections as tools and issues
find/aggregatecalls over live data — no pre-computed summaries. All writes go through Motor for transactional safety. Clean separation of AI reasoning and state mutation. - Cloud Run hosts the FastAPI backend; Cloud Scheduler triggers hourly liveness detection and daily budget monitoring
- Firebase Auth handles identity; Vapi powers outbound verification calls with our backend as a custom LLM over SSE; Resend delivers branded legacy emails
- Next.js 16 PWA on Vercel for the mobile-first frontend
Challenges we ran into
- False positives are catastrophic. Calling someone's daughter to verify a death that didn't happen is the worst possible failure. We built deliberate friction into every gate: multi-source liveness scoring, cooldown windows (48–72h), a human confirmation requirement, and a "prefer staying in current state" rule baked into the agent's instructions.
- Voice agents over webhooks are hard. Wiring Vapi's custom-LLM protocol to ADK agents meant streaming OpenAI-compatible SSE chunks from Gemini tool-call outputs, handling mid-call state in MongoDB, and surviving webhook retries.
- Letting an LLM read your database safely. The MCP pattern is powerful but needed guardrails: capped LLM call budgets per run, closure tools that capture decisions instead of letting the model write directly, and a full audit trail of every tool call.
Accomplishments that we're proud of
- A working 7-agent state machine where agents trigger each other across real infrastructure — a scheduler tick can cascade into a real phone call, a confirmed verification, and a delivered legacy email with zero human intervention
- The dual-agent Open Sesame gate: identity verification and adversarial security auditing running in parallel on every conversation turn
- Every state transition, agent decision, and tool call logged to
audit_logswith evidence — the system can always explain why it acted - A product that handles mortality with warmth instead of clinical coldness
What we learned
Building this taught us one thing above everything else: in a system like this, the safety mechanism is the product.
An agent that delivers your legacy is easy. An agent that never delivers it to the wrong person, at the wrong time, for the wrong reason is the hard part — and it's the only version anyone would actually trust with their life's affairs. Every design decision we made — confidence thresholds, cooldown windows, dual-agent verification, human confirmation gates, audit trails — came from asking the same question: "what does it cost if we're wrong?"
We also learned that state machines and LLMs complement each other beautifully: the LLM reasons over messy, ambiguous evidence; the state machine guarantees no safety gate can ever be skipped.
What's next for StillHere
Our next milestone is pushing the core question — "is this person truly gone, and should we act?" — to its absolute limit. Liveness detection is our moat, and we want to make it near-perfect:
- Social media liveness signals — with the user's authorization, monitor activity across X/Twitter, Instagram, WhatsApp, and other platforms: posts, likes, online status. A person who stopped opening our app but liked a tweet an hour ago is very much alive.
- Wearable and health signals — heart rate and step data from Apple Watch, Fitbit, and Google Fit as passive, continuous proof of life
- Financial heartbeats — card transactions and account logins as strong liveness evidence (with consent, metadata only)
- Official record cross-checking — scanning public death registries and obituaries to confirm rather than infer
- Multi-party attestation — requiring a quorum of family confirmations, not just one, before irreversible actions
Beyond detection:
- Voice cloning (with explicit consent) — birthday messages and final words delivered in your own voice, built from the journal recordings you choose to keep
- Client-side encryption with Cloud KMS so even we can't read a legacy before its conditions are met
- Estate-grade execution: subscription cancellation agents, document vaults, and direct integrations so no family ever has to write a letter to Cupertino and wait two years again. ## What it does
Built With
- antigravity
- css
- docker
- fastapi
- firebase-authentication
- gemini
- google-cloud
- mongodb
- next.js
- pydantic
- pymongo
- python
- react
- resend
- tailwind
- typescript
- vapi
Log in or sign up for Devpost to join the conversation.