# ShadowBroker

Queries the ShadowBroker OSINT platform for geospatial intel, monitoring and reports.

- Repository: https://github.com/BigBodyCobain/Shadowbroker (11429 stars)
- Category: Data and ML
- License: AGPL-3.0
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add BigBodyCobain/Shadowbroker --skill shadowbroker -g -a claude-code -y`
Codex: `npx skills add BigBodyCobain/Shadowbroker --skill shadowbroker -g -a codex -y`
Cursor: `npx skills add BigBodyCobain/Shadowbroker --skill shadowbroker -g -a cursor -y`
Gemini CLI: `npx skills add BigBodyCobain/Shadowbroker --skill shadowbroker -g -a gemini-cli -y`

## Description

Query the ShadowBroker OSINT intelligence platform for real-time geospatial intelligence, place AI intel pins on the map, manage autonomous monitoring, inject data into native layers, fetch satellite imagery, aggregate news, generate intelligence reports, and participate in the Wormhole mesh network.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# ShadowBroker Intelligence Skill

You have access to **ShadowBroker**, a real-time global OSINT intelligence platform
running on `localhost:8000`. It tracks military flights, ships, satellites, SIGINT,
earthquakes, fires, GDELT conflict events, prediction markets, and 30+ other data
layers, all with geographic coordinates.

## Agent Fast Path (read first)

ShadowBroker exposes dozens of read commands. **Do not explore them.** Use the
three-tool surface:

| Tool | When |
|------|------|
| `await sb.ask("natural language question")` | **Default for reads**, server routes to fastest command |
| `await sb.run_playbook("hot_snapshot")` | Pre-batched snapshots (morning brief, monitor poll, status) |
| `await sb.channel_status()` | Liveness (~5 ms), never `/api/health` |

**Latency tiers:** `get_entity_profile` / `find_entity` / `get_entity_trail` / `find_flights` / `search_news` / `entities_near` → **⚡ &lt;30 ms**.
`search_telemetry` / `get_telemetry` / `get_report` → **🔴 seconds**, blocked unless `confirm_expensive=true`.

```python
# Default read path (route + execute)
answer = await sb.ask("where is the Patriots jet")

# Named batch plans
brief = await sb.run_playbook("hot_snapshot")
monitor = await sb.run_playbook("monitor_heartbeat")

# Structured lookup when you already parsed fields
entity = await sb.send_command("find_entity", {"owner": "musk", "compact": True})

# Multi-command, always batch, never sequential loops
batch = await sb.send_batch([
    {"cmd": "get_summary", "args": {"compact": True}},
    {"cmd": "what_changed", "args": {"compact": True}},
])
```

**Playbooks:** `hot_snapshot`, `morning_brief`, `status_check`, `monitor_heartbeat`, `track_snapshot`, `jet_recon`, `area_brief`, `entity_recon`.

**Anti-patterns:** `search_telemetry` for known tail numbers; `get_telemetry` for routine polls; sequential `send_command` loops; empty `layers: []` on `get_layer_slice`.

Load machine-readable routing hints once: `GET /api/ai/capabilities` → `routing`.

The rest: https://github.com/BigBodyCobain/Shadowbroker/blob/HEAD/openclaw-skills/shadowbroker/SKILL.md
