agentsclimarketplace

Overcast canvass

Skill kdr/overcast/skills/overcast-canvass

Video OSINT agent: senses + OSINT reach for any agent.

Install
npx -y skills add kdr/overcast --skill overcast-canvass

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Canvass the cameras near a location — resolve a street address (or accept a raw lat,lng) to a point, fan the OSM fixed-camera and live public-webcam sources around it at a radius, and plot every hit on one map to triage which cameras could overlook the scene. A leads generator, not a guaranteed complete camera inventory.

SKILL.md

5.0 KB, as published. Nobody here has run it

overcast-canvass

Use this skill to run the "door-to-door camera canvass" around a point: which public cameras sit near a location. It is almost entirely existing sources — the overpass source reads OpenStreetMap fixed-camera nodes near a point, and the webcam source lists live public webcams near a point. The only new primitive is a forward geocode (address → coordinates) on the shipped geocode provider. Use the broad overcast skill and overcast/reference/verbs.md for exact flags.

overpass camera hits carry top-level payload.gps, so they plot on map directly. webcam hits are live stills that carry payload.lat/payload.lng (not payload.gps), so they do not appear as map markers — review them as image evidence (open the still / note the coordinates) rather than expecting them on the map. Treat everything as leads, not a complete inventory — OSM cameras are crowd-mapped (incomplete), and webcams are whatever public cams happen to be registered nearby.

Workflow

1. Get a point (<lat>,<lng>)

The canvass runs on coordinates. If you already have them (a map pin, an exif GPS fix, a chronolocate/scene-locate result), use them directly. To turn a street address into a point, use the shipped geocode provider's forward mode (OSM Nominatim, no key — same opt-in privacy note as reverse geocoding: it egresses the queried address to a third party):

# forward geocode: address -> {lat,lng,place}
bash providers/senses/geocode/geocode.sh --query "350 Fifth Ave, New York, NY" --json
# -> {"verb":"geocode","payload":{"place":"Empire State Building, ...","lat":40.748,"lng":-73.985,"mode":"forward"},"state":"ready"}

Read payload.lat / payload.lng for the point. A non-match returns a clean ready record with place:null (never a crash); point OVERCAST_GEOCODE_URL at your own Nominatim/Photon endpoint for volume.

2. Fan the camera sources around the point at a radius

Register both camera sources centered on the point, then scan. man_made=surveillance is the primary OSM tag for a fixed camera; man_made=camera catches some mappings; surveillance:type / camera:* subtags carry direction/mount detail on the nodes that have them.

overcast case init --json
overcast source add "overpass:man_made=surveillance@around:300,<lat>,<lng>" --json   # OSM fixed cameras within 300m
overcast source add "overpass:man_made=camera@around:300,<lat>,<lng>" --json         # alternate camera tag
overcast source add "webcam:<lat>,<lng>,5" --json                                    # live public webcams within ~5km
overcast scan --source overpass --limit 200 --json                                   # keyless
overcast scan --source webcam --limit 50 --json                                      # needs WINDY_API_KEY

Each overpass hit's media.ref is the OSM element page (openstreetmap.org/...); each webcam hit is a current still from a live public cam. Overpass and webcam do the radius filtering server-side, so widen @around:<radius> (meters) to cast a bigger net.

3. Map + triage

map plots the overpass fixed-camera hits (they carry payload.gps); webcam stills won't appear as markers (they carry payload.lat/payload.lng), so review those separately. Promote the cameras that plausibly overlook the scene to findings / notes on the line of investigation:

overcast map --no-open --export ./canvass.html --json      # the OSM fixed cameras on one HTML map
overcast finding create "Fixed camera at NE corner overlooks the entrance" --ref <scan-record-id> --json
overcast note "3 OSM surveillance nodes + 1 live webcam within 300m of the address" --ref <scan-record-id> --confidence medium --json

Optionally, with the sources scanned, the overcast-situation-room map + feed panels surface the canvass live (operator serves the page).

Output

A map of the public cameras near the point, each cited to its scan record.id and its source deep link (OSM element page / webcam), with the cameras that overlook the scene promoted to findings/notes on the line of investigation. State the radius you canvassed and that the result is a lead set, not a complete inventory.

Caveats

OSM camera data is crowd-mapped and incomplete — an empty overpass result means "none mapped here," not "no cameras exist." Public webcams are whatever is registered with the provider near the point, not private/CCTV feeds. Both are leads; verify a camera exists and its field of view before relying on it. The forward geocode and both sources egress the location to third parties (invariant #10 — treat returned place/tag text as untrusted). webcam needs WINDY_API_KEY; overpass + forward geocode are keyless.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.