Dulus
An AI agent for your desktop and terminal, on any model you choose. Hosted models run on Fuel, paid in $DULUS.
منصة ذكية لإدارة الكوارث وإنقاذ الأرواح – AI-powered disaster management and rescue platform (prototype).
Translation pending
OtherTypeScript · CSSGitHub @Azzam-AlrashedOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗منصة ذكية لإدارة الكوارث وإنقاذ الأرواح. An AI-powered platform that helps residents stay safe during disasters and missile threats, and helps emergency teams prioritise and respond faster.
Live demo: rescuepath-ai.vercel.app (resident app) · /dashboard (operations dashboard)
⚠️ Prototype. All alerts, zones, shelters, routes and incidents are simulated demo data for Riyadh. This is not a real emergency service. In a real emergency call 911.
/)/dashboard)/dashboard/reports): reports handled, response times, outcomes, and team utilisation.Both views are Arabic-first (RTL) with an English toggle.
npm install
cp .env.example .env.local # optional: add ANTHROPIC_API_KEY for AI triage
npm run dev
Open http://localhost:3000, then use the Simulation panel to start a scenario, press "Move me into the zone", and try sending an SOS. You can also drag the blue marker to change your position.
Open http://localhost:3000/dashboard in a second window to see the report arrive, review it and dispatch a team, then watch the resident's "My reports" tab update. To send reports from a phone, open the dev server's Network URL on the same Wi-Fi. Reset demo on the dashboard restores the sample cases.
Cases and teams are kept in the server's memory, so they reset when the server restarts, and the prototype assumes a single server instance. A real deployment needs a database and authentication for the dashboard.
POST /api/reports sends each new report to Claude (claude-opus-5-5, low effort, structured output) when Anthropic credentials are available. If there are no credentials, or the call fails, the app falls back to a keyword- and rule-based classifier (src/lib/triage/rules.ts), which also triages the sample cases, so an SOS is never blocked by the AI service. Set TRIAGE_MODE=rules to skip the AI entirely.
The live demo is hosted on Vercel, and every push to main deploys automatically. Add ANTHROPIC_API_KEY under the Vercel project's environment variables to enable Claude triage there; without it the demo uses the rule-based classifier. Because cases live in server memory, the hosted demo can reset after it has been idle.
src/
app/
page.tsx # resident app
dashboard/page.tsx # operations dashboard
api/reports/ # residents: submit SOS (triaged), poll response status
api/ops/ # dashboard: live state, case actions, scenario, demo reset
components/ # resident UI, dashboard/, map/
lib/
data/ # scenarios, shelters, guidance, response teams
triage/ # Claude triage + rule-based fallback
dispatch.ts # priority ordering and team suggestions
server/ops-store.ts # in-memory case and team store
geo.ts, routing.ts # zone checks, nearest safe place, OSRM routing
store.tsx, i18n.tsx # resident state and Arabic/English strings
Tech: Next.js 16, React 19, TypeScript, Tailwind CSS 4, Lucide icons, Leaflet with OpenStreetMap tiles, OSRM routing (routing.openstreetmap.de), and the Anthropic SDK.