← Back to Skills Marketplace
pleasechooseusername

AEGIS

by PleaseChooseUsername · GitHub ↗ · v3.4.0 · MIT-0
cross-platform ✓ Security Clean
499
Downloads
1
Stars
3
Active Installs
13
Versions
Install in OpenClaw
/install aegis
Description
Automated Emergency Geopolitical Intelligence System — real-time threat monitoring and safety alerts for civilians in conflict zones. Use when: (1) setting u...
README (SKILL.md)

AEGIS — Automated Emergency Geopolitical Intelligence System

Civilian-first threat intelligence for conflict zones. Monitors 28+ sources (RSS, web, APIs, OSINT aggregators) with two delivery modes:

  1. CRITICAL-only scan (every 15 min) — Posts ONLY for verified, active emergencies (3-phase validation)
  2. Morning/evening briefings (8am + 8pm local) — Agent-powered situation reports with actionable guidance

Powered by World Monitor (real-time geopolitical intelligence API) and LiveUAMap (verified OSINT event feed), supplemented by government sources, major news agencies, and aviation data.

Not a panic tool. Calm, factual, action-oriented. Follows official government guidance.

Requirements

  • curl — used for all HTTP fetching (RSS, web, APIs). Pre-installed on most systems.
  • python3 (3.8+) — runs all scripts. No extra pip packages needed (stdlib only).
  • No API keys required for baseline 23 sources. Optional: NewsAPI free tier for expanded coverage.
  • LLM (optional) — Improves CRITICAL alert accuracy via semantic verification. See LLM Verification below.

Quick Start

First-time setup (interactive)

python3 scripts/aegis_onboard.py

Creates ~/.openclaw/aegis-config.json with location, language, and alert preferences.

Manual config

Create ~/.openclaw/aegis-config.json:

{
  "location": {
    "country": "AE",
    "country_code": "AE",
    "city": "Dubai",
    "timezone": "Asia/Dubai"
  },
  "language": "en",
  "alerts": { "critical_instant": true, "high_batch_minutes": 30, "medium_digest_hours": 6 },
  "briefings": { "morning": "07:00", "evening": "22:00" },
  "scan_interval_minutes": 15,
  "api_keys": {}
}

Run a scan

python3 scripts/aegis_scanner.py

Set up cron monitoring

# CRITICAL-only scan (every 15 min) — posts ONLY for imminent threats
openclaw cron add --every 15m --message "Run AEGIS scan: python3 \x3Cskill-dir>/scripts/aegis_cron.py"

# Morning briefing (adjust time for user timezone — example: 4:00 UTC = 8:00 Dubai)
openclaw cron add --cron "0 4 * * *" --tz UTC --message "Run AEGIS morning briefing: python3 \x3Cskill-dir>/scripts/aegis_briefing.py morning"

# Evening briefing (example: 16:00 UTC = 20:00 Dubai)
openclaw cron add --cron "0 16 * * *" --tz UTC --message "Run AEGIS evening briefing: python3 \x3Cskill-dir>/scripts/aegis_briefing.py evening"

# Optional: Live feed (every 5 min) — for high-tempo situations only, disable during calm periods
openclaw cron add --cron "*/5 * * * *" --message "Run AEGIS live feed: python3 \x3Cskill-dir>/scripts/aegis_feed.py" --disabled

Optional: Telegram channel delivery

Set environment variables for direct channel posting:

  • AEGIS_BOT_TOKEN — Telegram bot token (from BotFather)
  • AEGIS_CHANNEL_ID — Telegram channel ID

Or add to config:

{
  "telegram": {
    "bot_token": "your-token",
    "channel_id": "-100xxxxxxxxxx"
  }
}

Data Storage

AEGIS stores scan state in ~/.openclaw/aegis-data/ (or $AEGIS_DATA_DIR if set):

  • seen_hashes.json — content dedup hashes (48h rolling window for scans, 6h for feed)
  • pending_alerts.json — alerts awaiting batch delivery
  • scan_log.json — recent scan results
  • last_scan.json — most recent scan output (used by briefings)
  • feed_state.json — live feed dedup state and last post timestamp
  • last_alert_time.json — channel post cooldown tracker
  • scan_history.log — rolling log of scan results (last 500 entries)

All files are local JSON. No data is sent to external servers beyond the listed sources in source-registry.json.

Sources (30+)

All sources are defined in references/source-registry.json. The scanner only contacts URLs listed there.

Tier Type Count Examples
0 🏛️ Government & Emergency 7 GDACS, NCEMA, UAE MoD, US/UK embassies, MOFAIC
1 📰 Major News & RSS 11 Al Jazeera, Reuters, BBC, Gulf Business, Emirates 24/7, Gulf Today
2 🔍 OSINT & Conflict Mapping 5 World Monitor API, LiveUAMap (3 regions + feed)
2 ✈️ Aviation 2 FAA NOTAMs (DXB, AUH)
3 📋 Analysis 2 Crisis Group, War on the Rocks
4 🔑 API-Enhanced (optional) 1+ NewsAPI (free tier), GDELT

Outbound connections

The scanner contacts only:

  1. URLs listed in references/source-registry.json (RSS feeds, news sites, government pages)
  2. https://world-monitor.com/api/signal-markers (World Monitor public API)
  3. LiveUAMap regional pages (e.g., https://iran.liveuamap.com)
  4. Telegram Bot API (https://api.telegram.org/bot.../sendMessage) — only if channel delivery is configured

No telemetry. No analytics. No phone-home.

Alert Classification

Level Meaning Trigger
🔴 CRITICAL Immediate physical danger in user's country Missiles inbound, sirens, shelter orders, airport shutdown, CBRN
🟠 HIGH Significant regional threat Attacks on neighbors, strait disrupted, flights cancelled, general "UAE hit by" context
ℹ️ MEDIUM Situational awareness Regional strikes, diplomacy, oil prices, sanctions

CRITICAL is reserved for "act now, your life may be in danger." Regional developments and background context are HIGH.

CRITICAL Validation Pipeline (v3.2)

CRITICAL alerts go through 3-phase validation to eliminate false positives:

  1. Regex pre-filter — Tightened patterns match only active attacks, sirens, shelter orders
  2. Negative pattern filter — Disqualifies: past tense ("has been hit"), sports, analysis, speculation, historical context
  3. LLM verification (optional) — Confirms the item describes an ACTIVE emergency

Additionally:

  • Government trust — Tier 0 sources (NCEMA, government) bypass LLM verification
  • Source corroboration — Single source: 4h cooldown; 2+ sources: 1h cooldown
  • Fail-open safety — If LLM unavailable or disabled, CRITICAL alerts pass through (safety first)

LLM Verification

LLM verification is optional but recommended. It adds a semantic check that catches false positives the regex filters miss (e.g., "cricket match cancelled due to war" triggering CRITICAL).

Three modes (configured in aegis-config.json under "llm"):

Mode Provider Cost Accuracy Setup
Local Ollama "ollama" Free (runs on your GPU) Best Install Ollama, pull a model
OpenAI-compatible API "openai" ~$0.001/verification Best Any OpenAI-compatible endpoint (OpenRouter, Together, vLLM, LiteLLM, etc.)
No LLM "none" Free Good (regex + negative patterns only) No setup needed

Without LLM: AEGIS still works well — the regex pre-filter and negative pattern filter catch most false positives. You may see occasional false CRITICAL alerts that would have been caught by LLM verification.

Config examples:

// Local Ollama (recommended if you have a GPU)
"llm": { "enabled": true, "provider": "ollama", "endpoint": "http://localhost:11434", "model": "qwen3:8b" }

// OpenRouter (cheap cloud API)
"llm": { "enabled": true, "provider": "openai", "endpoint": "https://openrouter.ai/api", "model": "meta-llama/llama-3-8b-instruct", "api_key": "sk-or-..." }

// No LLM (regex-only, no external calls)
"llm": { "enabled": false, "provider": "none" }

The onboarding wizard (aegis_onboard.py) will help you choose during setup.

Anti-Hoax Protocol

  • Tier 0 sources: trusted directly (government/emergency)
  • Tier 1+ CRITICAL candidates: must pass LLM semantic verification
  • Tier 2+: require corroboration from ≥1 Tier 0-1 source for HIGH
  • Social media: excluded entirely
  • Extraordinary claims: require ≥3 independent sources

Briefings

Morning and evening briefings use agent-powered synthesis to create human-readable situation updates:

Situation Update Format

Each briefing includes:

  • Summary — What happened in plain English with real numbers
  • Status — Current safety status (threat level with description)
  • Actions — 4-6 concrete things a civilian should do right now
  • Daily Impact — Flights, schools, work, supplies, roads, hospitals
  • Outlook — What to expect in the next 12-24 hours
  • Sources — Where to verify and get more info

Delivery Modes

Mode Frequency Posts on
CRITICAL scan Every 15 min Imminent danger only (missiles inbound, shelter orders)
Morning briefing Once daily (8am local) Full situation update with overnight summary
Evening briefing Once daily (8pm local) Full situation update with daytime summary
Live feed Every 5 min (optional) Discrete verified events from LiveUAMap + World Monitor

Anti-Spam

  • CRITICAL scan: 4-hour cooldown (single source) / 1-hour cooldown (multi-source corroborated)
  • Live feed: 5-minute batch interval, max 8 events per post
  • Briefings: Agent-powered, pin to channel, once per cycle

Country Profiles

Each supported country has a profile in references/country-profiles/. Profiles contain:

  • Emergency contacts and hotlines
  • Neighboring countries and regions of interest (for source filtering)
  • Local threat keyword patterns
  • Shelter and evacuation info

Currently available: UAE (uae.json). To add a country: copy _template.json, fill in details, submit PR.

Preparedness Resources

See references/preparedness/ for:

  • go-bag-checklist.md — What to pack for emergency evacuation
  • communication-plan.md — Family communication plan
  • shelter-guidance.md — Shelter-in-place protocol
  • evacuation-guidance.md — Routes, transport, embassy registration

Configuration Reference

See references/config-reference.md for all configuration options.

Cost

  • Sources (30+): Free (RSS + web scraping + public APIs)
  • LLM verification (optional): Free with Ollama; ~$0.001/check with cloud APIs; or disabled (regex-only)
  • Briefings: Free with Copilot or local models; ~$0.03-0.05/day with commercial LLMs
  • Optional NewsAPI: Free tier (100 req/day) is sufficient
Usage Guidance
This skill appears internally consistent with its stated purpose. Before installing or running it, consider: (1) If you enable Telegram channel delivery, you must provide a bot token and channel ID — those credentials will allow the skill to post messages to that channel. Only give the bot token to channels you control. (2) If you enable LLM verification using a cloud endpoint (OpenAI/OpenRouter/etc.), alert text and related context will be sent to that provider; use a local model (Ollama or self-hosted) if you want to keep data private. (3) Review references/source-registry.json to confirm the external sources the scanner will contact; if you need a narrower footprint, disable specific sources in the config. (4) The skill writes state under ~/.openclaw/aegis-data/ and creates ~/.openclaw/aegis-config.json — run it in a sandbox or with a non-privileged account if you want to limit its filesystem impact. (5) Because this is an operational safety tool, test it with non-critical settings (disable CRITICAL instant posting, enable quiet hours) to validate behavior and avoid accidental alerts. If you need higher assurance, review the contents of scripts/aegis_scanner.py and aegis_channel.py for any unlisted outbound endpoints before enabling networked features.
Capability Analysis
Type: OpenClaw Skill Name: aegis Version: 3.4.0 The AEGIS skill is a comprehensive geopolitical intelligence and emergency alerting system designed for civilians. It monitors verified sources like World Monitor, LiveUAMap, and government RSS feeds. The code is well-structured, uses Python's standard library to avoid supply chain risks, and includes explicit security measures such as the `_sanitize_for_prompt` function in `aegis_briefing.py` to mitigate indirect prompt injection from untrusted web content. It handles sensitive data (Telegram tokens) using standard OpenClaw environment patterns and performs network requests only to the stated intelligence and messaging endpoints (e.g., world-monitor.com, liveuamap.com, and api.telegram.org).
Capability Assessment
Purpose & Capability
Name/description (real-time threat monitoring, briefings, Telegram channel delivery) match the included files and declared requirements: Python scripts for scanning/briefings, a source registry, threat regexes, and optional Telegram credentials. The optional LLM support and NewsAPI key are documented and make sense for improving classification/coverage.
Instruction Scope
SKILL.md instructs the agent to create/read a config at ~/.openclaw/aegis-config.json and to store scan state under ~/.openclaw/aegis-data/. It explicitly says the scanner only contacts URLs in references/source-registry.json plus World Monitor, LiveUAMap and Telegram (if enabled). There is no instruction to read unrelated system files or harvest credentials. Note: if you enable cloud LLM verification or Telegram delivery you will be sending scan content (including location/alerts) to those external services.
Install Mechanism
No install spec; this is instruction-led Python code using standard binaries (python3, curl). There is no download-from-URL install step or package manager install in the skill metadata. The code files are bundled with the skill rather than pulled at runtime.
Credentials
No required environment variables; only optional ones (AEGIS_DATA_DIR, AEGIS_BOT_TOKEN, AEGIS_CHANNEL_ID) are listed and are appropriate for local data directory and Telegram delivery. The config schema documents optional API keys (newsapi) and LLM api_key fields. These optional secrets are justified by the described features, but enabling a cloud LLM or supplying a channel bot token will expose alert content and metadata to those external services.
Persistence & Privilege
Skill does not request always:true and does not modify other skills or system-wide settings in the instructions. It stores state/config under its own ~/.openclaw path, which is proportionate for a scanner/cron-driven skill.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install aegis
  3. After installation, invoke the skill by name or use /aegis
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v3.4.0
Incident-level dedup: prevents channel spam. Multiple reports about the same event (e.g., 7 DXB airport updates) now collapse into 1 alert.
v3.3.0
CRITICAL FIX: World Monitor dedup bug — new events silently filtered. Keyword word-order bug — DXB airport attacks missed. Both fixed.
v3.2.0
v3.2: Optional LLM verification (ollama/openai/none), improved CRITICAL validation with negative patterns, corroboration-aware cooldowns
v3.0.3
v3.0.3: Security hardening — TLS verification enforced (no --insecure); removed ssl_verify=false sources; sanitize/truncate untrusted source text before embedding into LLM prompts
v3.0.2
v3.0.2: channel publisher can load AEGIS_BOT_TOKEN/AEGIS_CHANNEL_ID from ~/.openclaw/.env; enables CRITICAL daytime posting without hardcoded secrets
v3.0.1
v3.0.1: AEGIS-scan posts CRITICAL alerts to channel using CRITICAL ALERT format + pins
v3.0.0
Release v3.0.0: CRITICAL-only daytime, briefing pipeline, live-feed toggle
v1.4.1
Fix ClawHub metadata: declared binaries (curl, python3), optional env vars, homepage/source URLs, documented all outbound connections. No telemetry.
v1.4.0
CRITICAL threshold tightened: only immediate physical danger in-country triggers instant alerts. Regional threats (Hormuz, neighbor attacks) are HIGH. Updated README with 23+ sources, alert classification docs.
v1.3.0
World Monitor integration (168 geolocated conflict zones). OPSEC hardening — zero personal info in channel output.
v1.2.0
LiveUAMap integration — near-instant conflict events from Iran, Ukraine, Israel. 22 sources, 161 items/scan.
v1.1.0
Anti-spam architecture: silent 15-min scans (only CRITICAL alerts post), formatted morning/evening briefings, channel publisher script
v1.0.0
Initial release — 19 verified sources, UAE country profile, 3-tier alerts, emergency preparedness guides, interactive onboarding, morning/evening briefings. Zero API keys required.
Metadata
Slug aegis
Version 3.4.0
License MIT-0
All-time Installs 3
Active Installs 3
Total Versions 13
Frequently Asked Questions

What is AEGIS?

Automated Emergency Geopolitical Intelligence System — real-time threat monitoring and safety alerts for civilians in conflict zones. Use when: (1) setting u... It is an AI Agent Skill for Claude Code / OpenClaw, with 499 downloads so far.

How do I install AEGIS?

Run "/install aegis" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is AEGIS free?

Yes, AEGIS is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does AEGIS support?

AEGIS is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created AEGIS?

It is built and maintained by PleaseChooseUsername (@pleasechooseusername); the current version is v3.4.0.

💬 Comments