Autonomous disaster logistics - open source

Built for neighbors,
run by AI agents.

Resqio watches weather and grid feeds 24/7, matches spare generators, ice, and food to the most vulnerable requests texted in over plain SMS - and pings a volunteer captain on WhatsApp only when a delivery needs a human yes.

Apache 2.0 · Strands Agents SDK · Amazon Bedrock AgentCore

resqio · live watchAutonomous

The system

Four moving parts. Zero busywork.

01

Grid & Weather Monitor

strands_grid_monitor.py

Polls NOAA/NWS alerts and county-level outage records around the clock, correlating hazards that share county FIPS codes. An extreme heat warning colliding with a 12,400-customer feeder outage is read as the compounding emergency it is - and scored 0–5.

02

Resource Matcher

strands_resource_matcher.py

Parses informal community SMS into structured offers and requests, then matches supply to need on urgency, vulnerability, and distance. Medical refrigeration, infants, and elderly residents outrank everything. Every proposal is re-validated against the live board.

03

Volunteer Router

strands_volunteer_router.py

Plans crisis-condition transit with per-hazard guidance - dark intersections during outages, heat exposure, flooded roads - and writes the single approval message a captain sees, always ending with two reply options.

04

WhatsApp Dispatch

twilio_whatsapp_dispatcher.py

The pipeline's only outward surface. One ping, two buttons - Accept dispatches the delivery, Pass puts both sides back on the board. Signature-validated inbound webhooks close the loop when the captain replies DELIVERED.

The principle

Silent until a human must decide.

During a disaster, the last thing a community needs is another feed to monitor. Resqio produces no dashboards to babysit and no alerts to triage. It works in the background - and the only time a phone buzzes is when a physical delivery needs a one-tap approval from a volunteer captain. No crisis, no noise.

And because a disaster tool can't assume the cloud is healthy mid-disaster, every AI reasoning step degrades to deterministic logic if Amazon Bedrock is unreachable. The pipeline keeps flowing on the worst day, not just the demo day.

Inbound SMS - demo scenario
“HELP: My father is 82, insulin needs refrigeration and our power is out at 42 Maple St. Urgent.”

One cycle later

Matched to a 7.5 kW generator, 1.2 km away. One tap. Delivered.

24/7

autonomous watch on weather and grid feeds

3

Strands agents reasoning on Amazon Bedrock

1

tap on WhatsApp to dispatch help

0

messages sent when nothing needs a human

The loop, frame by frame

Real crisis. Real logistics.

Four moments from the Austin heatwave scenario - the same loop the live animation above plays end to end, and the same one you can drive yourself on the situation board.

DETECT

Heat warning × feeder outage on overlapping counties - crisis level 5/5.

INGEST

Offers and requests arrive as plain SMS. No app, no account, no training.

APPROVE

One WhatsApp ping to a volunteer captain. Two buttons. A human decides.

DELIVER

Generator to 42 Maple St - 1.2 km, ~7 min - confirmed and closed out.

Run it

Two modes. One pipeline.

Demo mode

$0no credentials · any laptop
  • The full loop, fully offline
  • Simulated NOAA + EAGLE-I-schema feeds
  • Console-rendered WhatsApp pings
  • Deterministic agent fallbacks
  • 82-test suite, zero credentials
Launch demo board

Live mode

AWSyour account · your county
  • Claude reasoning on Amazon Bedrock
  • Live NOAA alert polling
  • Real WhatsApp pings via Twilio
  • AgentCore background daemon
  • Signature-validated inbound webhooks
Deployment guide

Who it serves

Built for the people who show up.

Neighborhood blocks

A block captain, a WhatsApp group, and whatever's in the garages - organized the moment the grid fails.

Food banks

Perishables and cold-chain capacity matched to households that lose refrigeration in an outage.

Shelters

Cooling, power, and transport needs surfaced and staffed without another spreadsheet.

Mutual-aid networks

Volunteer capacity dispatched with routes and hazard guidance instead of group-chat chaos.

One cycle

What happens every five minutes.

01

WATCH

Feeds polled, hazards correlated, crisis scored. Feed failure means "no change", never "all clear".

02

LISTEN

Community texts parsed into offers and urgent requests, on the board in seconds.

03

MATCH

Supply paired to need - urgency first, then vulnerability, then distance. Never double-booked.

04

APPROVE

Route planned, hazards flagged, one captain pinged. Silence otherwise.

Questions

Asked before the storm.

Does it work without AWS credentials?

Yes. Every agent has a deterministic degraded-mode fallback, so the full loop - detection, matching, routing, approval - runs offline with simulated feeds and console pings. That's how the demo and the 82-test suite run. Add AWS credentials and the same pipeline switches to live Claude reasoning on Amazon Bedrock.

What happens if Bedrock is unreachable mid-disaster?

The pipeline keeps flowing. A disaster tool can't assume the cloud is healthy during a disaster, so LLM failures drop each agent to pure logic: severity thresholds for crisis detection, a compatibility matrix plus haversine distance for matching, a deterministic route planner for dispatch. Slower thinking, same protocol.

How do neighbors participate?

Plain SMS. "OFFER: generator available in Sector 4" or "HELP: insulin needs refrigeration at 42 Maple St." No app to install, no account to create, nothing to learn during a crisis. Location can come from WhatsApp location sharing or a street address in the text.

Can the agent dispatch a volunteer on its own?

Never. Every physical action passes through a one-tap human approval on WhatsApp, and the match lifecycle is a guarded state machine - a second captain's stale PASS can't reopen a delivery someone already accepted, and unanswered pings expire and free both sides for re-matching.

Where does the outage data come from?

Weather alerts are live from NOAA's api.weather.gov. For power outages there is no free real-time national feed (EAGLE-I is restricted to government accounts; poweroutage.us is a paid API), so the grid source is a pluggable protocol shipping realistic EAGLE-I-schema county records - any utility API can implement the same two methods.

Is it really open source?

Apache 2.0, the whole thing - the three Strands agents, the AgentCore runtime, the Twilio integration, the situation board, the tests, and the architecture docs. Fork it for your county.

The next storm isn't waiting.