Inspiration

  • 4 in 10 Americans say they would be afraid to walk alone at night within a mile of home, the highest share since 1993. Among women it is 53%, double the 26% of men (Gallup).
  • On campus the fear has a basis: in a survey of 181,752 students at 33 universities, 13% reported nonconsensual sexual contact since enrolling (AAU 2019).
  • Panic buttons need a free hand and an unwatched screen. Shared location needs someone to be looking. Phone calls need you to speak out loud, which is exactly what you can't do when the person you're worried about is behind you.
  • And every one of them ends the same way: one person gets notified, and nobody coordinates the response.
  • We are students at Georgia State in downtown Atlanta, and most of us have taken that late walk home. So we asked: what if one ordinary sentence could bring in everyone who cares about you, tell them exactly what to do, and put a human on the line with 911, without the person next to you noticing anything at all?

Safeword is our answer. Say it once. We take it from here.

What Safeword does

Safeword is a personal-safety agent that lives in the two places you already are: your messages and your phone calls. It runs two conversations at once, and each one is a different technology.

The conversation in your pocket: iMessage, powered by Photon. You text Safeword like a friend. Photon Spectrum puts a single agent behind the thread, so there is no app to install and nothing to open under stress. It is where you say "walk me home," where the check-ins arrive, and where the people who love you get the whole story as it happens.

The conversation in your ear: voice, powered by ElevenLabs. Some moments are not for typing. ElevenLabs Agents gives Safeword a calm, natural voice that picks up when you call, stays on the line, and keeps you company all the way home. It listens for one thing in particular: your duress phrase. Say "can you water my plants?" and the agent fires a silent escalation while replying with a perfectly ordinary answer. Nobody next to you can tell.

Level 1: Stay With Me. You are uneasy, not in danger. Safeword stays with you and checks in. If you go quiet for 15 seconds, it sends follow-up texts. If there is still no reply after 15 more seconds, it escalates and alarms your emergency contact. Say the duress phrase and it escalates immediately.

Level 2: Help Me Now. One phrase, said once. Safeword hands you off to people:

  • A phone rings. Your emergency contact gets an automatic call that says who needs help and where.
  • A WhatsApp message lands with everything: your name, your location, what happened, what to do next.
  • A human calls 911, reading a ready-made script so the dispatcher gets the facts in seconds. The software never calls 911 itself.

Take Photon away and Safeword has no front door: no thread to text, nobody to loop in. Take ElevenLabs away and it has no voice: no company on the walk, no way to say the phrase out loud. Remove either one and what is left is a panic button. Together they are a response.

A night with Safeword

Maya is walking back to her car after a late shift and feels someone following her. In iMessage, she texts Safeword: "walk me home." The agent answers over Photon and starts checking in. A block later she calls, and the ElevenLabs voice picks up like a friend on the line. The footsteps get closer. She says, casually, "can you water my plants?" The voice replies, "Of course, I'll remind you tomorrow," and that is the alarm. Her emergency contact's phone rings, a WhatsApp message arrives with her location and the details, and a person who knows her calls 911 with a script in hand. Maya never had to explain, and the person behind her never knew.

The rule that shapes everything

Software never calls 911. A person who knows her does, with our script. That keeps the system honest, avoids faking a dispatch path, and still gets a human response in minutes.

How we built it

Safeword has two levels. In Stay With Me, an AI companion talks with you by text or voice like a friend while it quietly listens for a duress phrase or a silence. After 15 seconds of inactivity the agent sends follow-up texts, and after 15 more seconds with no reply it escalates and alarms your emergency contact. In Help Me Now, there is no conversation: it escalates immediately. Either way, the emergency contact gets two things at once, a phone call and a WhatsApp message with all the details.

  • Photon Spectrum (spectrum-ts) is the messaging layer. One agent loop reads messages from any provider, so the same logic runs in iMessage and the terminal. The first message returns a menu: 1 for Stay With Me, 2 for Help Me Now.
  • ElevenLabs Agents powers the voice version of Stay With Me. A custom escalate webhook tool fires the instant it hears the duress phrase, while the spoken reply stays normal.
  • Twilio places the automated call to the emergency contact. The call says it is an automated safety alert from an AI assistant, gives her name and address, and tells the contact to check WhatsApp and call 911.
  • WhatsApp (via Twilio) delivers the full alert: her name, address, a map link, the time, and a word-for-word script to read to 911, including "I am not at the scene."
  • Node and Express hold session state, the inactivity timers and the escalation logic. The alert is fire-and-forget, so the companion's reply never lags.
  • A Cloudflare tunnel lets ElevenLabs' servers reach our local webhook.

Architecture

User (iMessage or voice)
        |
        v
Photon Spectrum  -->  Safeword agent (Node)
                              |
            +-----------------+-----------------+
            |                                   |
      1. Stay With Me                    2. Help Me Now
  (companion; listens for            (no chat; escalates
   duress phrase and silence)         immediately)
            |                                   |
            +-----------------+-----------------+
                              v
                         Escalation
                  +-----------+-----------+
                  v                       v
          Twilio phone call       WhatsApp message
          to emergency contact    with all the details

Stack

Layer Tool Job
Messaging Photon Spectrum One agent loop across channels
Voice ElevenLabs Agents Companion and duress detection
Calls and alerts Twilio Phone call and WhatsApp message
Server Node, Express Session state and escalation
Tunnel Cloudflare Lets the voice agent reach the server

Safety by design

  • Never calls 911; the emergency contact does, with the script.
  • Contacts opt in, and every automated call says it is an AI safety assistant.
  • Location is shared only for the alert.
  • The reply a person sees and the alert that fires are independent, so the screen stays innocent while help is on the way.

Challenges we ran into

  • SMS was blocked. US carriers silently drop unregistered business texts, so the alert text came back undelivered. We moved the script into the voice call and added WhatsApp.
  • Calls need permission. Twilio's default geo-permissions blocked the first outbound call until we enabled US and Canada.
  • The voice agent didn't fire. Our escalate tool failed to save at first (a required description was empty), and a dead local server looked identical to a working one.
  • Webhooks and tunnels. ngrok's warning page blocked the webhook, so we switched to a Cloudflare tunnel.
  • Voice over SIP is hard. We chose ElevenLabs plus Twilio instead of routing a call through Spectrum's SIP line.
  • Designing around real emergencies. We cut a simulated dispatch path and kept a human in the loop.

What we're proud of

  • A voice companion that stays natural while silently triggering a real phone call and a written 911 script.
  • An alert that tells the emergency contact everything in one WhatsApp message, with nothing faked or hidden.
  • A clear line between what software does and what a human does.

What we learned: the first version of safety is deciding what the software must not do. Carrier rules, consent for AI voice calls, and false-alarm control shape the product as much as the model does.

What's next

What's next: Atlanta first with verified dispatch numbers, then campus pilots with campus safety teams, then a national directory of local dispatch numbers. Later: an evidence mode with photos and

Tracks to select: Cox Social Good (main), Photon, MLH ElevenLabs.

Built With

Share this project:

Updates

Submission history