Query a live San Francisco situational awareness system. Use this skill when the user asks about current SF conditions — aircraft overhead, active fire/police/EMS incidents, Muni transit, radio scanner activity, traffic events, or system health. Connects to the Monitoring the Situation REST API.
npx @senso-ai/shipables install Alexgodoroja/sf-situation-monitorYou are connected to a live situational awareness system for San Francisco that fuses P25 radio scanner data, aircraft ADS-B, fire/police dispatch, Muni transit, and traffic feeds. Use the REST API below to answer user questions about what's happening in the city.
The API runs at http://localhost:8766 by default. All endpoints return JSON with this envelope:
json { "ok": true, "timestamp": "...", "total": 42, "data": [...] }
bash curl -s http://localhost:8766/api/status Returns uptime, feed counts, connected WebSocket clients, and OpenSearch status. Use this first to verify the system is running.
bash
curl -s http://localhost:8766/api/aircraft
curl -s "http://localhost:8766/api/aircraft?type=military,helicopter"
curl -s "http://localhost:8766/api/aircraft?callsign=N911SF"
curl -s "http://localhost:8766/api/aircraft?min_alt=500&max_alt=10000" Returns aircraft with fields: hex, callsign, type, model, lat, lon, altitude, speed, heading, classification.
bash
curl -s http://localhost:8766/api/dispatch
curl -s "http://localhost:8766/api/dispatch?type=fire,medical"
curl -s "http://localhost:8766/api/dispatch?priority=A"
curl -s "http://localhost:8766/api/dispatch?since=2026-03-28T12:00:00Z" Returns incidents with: callType, address, priority, units, status, lat, lon, timestamp.
bash
curl -s http://localhost:8766/api/transit
curl -s "http://localhost:8766/api/transit?line=N,T,J"
curl -s "http://localhost:8766/api/transit?occupancy=full" Returns vehicles with: line_ref, line_name, destination, direction, occupancy, lat, lon, bearing, color.
bash curl -s http://localhost:8766/api/traffic/work-zones curl -s "http://localhost:8766/api/traffic/work-zones?status=active" curl -s "http://localhost:8766/api/traffic/work-zones?road=Market"
bash curl -s http://localhost:8766/api/traffic/events Returns active traffic incidents: type, headline, severity, road_name, lat, lon.
bash
curl -s http://localhost:8766/api/radio/recent
curl -s "http://localhost:8766/api/radio/recent?talkgroup=33116"
curl -s "http://localhost:8766/api/radio/recent?group=SF%20Fire"
curl -s "http://localhost:8766/api/radio/recent?limit=20" Returns radio messages with: transcript, talkgroup_tag, talkgroup_group, timestamp, duration, freq, emergency, encrypted.
bash
curl -s http://localhost:8766/api/incidents
curl -s "http://localhost:8766/api/incidents?type=fire&severity=high,critical" Returns Gemini-enriched incidents: title, description, type, severity, status, coordinates, related radio messages.
bash curl -s http://localhost:8766/api/sdr/stats Returns RTL-SDR device info, signal stats, active frequencies, recorder status.
bash
curl -s "http://localhost:8766/api/search/radio?q=fire+market&limit=20"
curl -s "http://localhost:8766/api/search/enrichments?q=structure+fire&type=fire"
curl -s "http://localhost:8766/api/search/incidents?q=medical&severity=high"
bash curl -s http://localhost:8766/api/geojson/aircraft curl -s http://localhost:8766/api/geojson/dispatch curl -s http://localhost:8766/api/geojson/transit curl -s http://localhost:8766/api/geojson/work-zones curl -s http://localhost:8766/api/geojson/incidents Returns standard GeoJSON FeatureCollections — useful for piping into mapping tools.
1. Check /api/status for system health 2. Check /api/incidents for active AI-enriched incidents 3. Check /api/dispatch for raw dispatch calls 4. Check /api/radio/recent?limit=10 for latest radio chatter
1. Query /api/incidents?severity=high,critical 2. Query /api/dispatch?type=fire,medical 3. Cross-reference lat/lon with the user's area of interest
1. Use /api/search/radio?q=... for historical transcript search 2. Use /api/search/enrichments?q=... for enrichment analysis search
1. Query /api/aircraft and count 2. Filter with ?type=military,helicopter for interesting ones
1. Query /api/transit for all active vehicles 2. Filter with ?line=N for specific lines 3. Check /api/service-alerts for disruptions