SignalOps
SignalOps puts what is transmitting around a location on one map: Wi-Fi and Bluetooth devices, cell towers, exposed and public cameras, aircraft, satellites, ships and RF networks. It runs on your own machine. There is no account and no cloud backend.
What it finds
- Wireless and cellular: Wi-Fi access points, Bluetooth and BLE devices and cell towers around a point (WiGLE, OpenCellID), with rogue AP, tracker and IMSI-catcher heuristics.
- Cameras:
- Internet-exposed IP cameras from Shodan, FOFA, Censys, Netlas and ZoomEye.
- 21 official public camera networks, including TfL, NYC DOT, Caltrans, Digitraffic, DGT, Vegagerðin, NSW, QLDTraffic, the 511 systems, NPS and USGS.
- Air: live ADS-B traffic with emergency squawks, drone detection, routes and registrations.
- RF: GNSS jamming zones derived from ADS-B, LoRaWAN gateways, Meshtastic nodes, radiosondes with landing predictions, WSPR / PSKReporter HF paths, KiwiSDR receivers and APRS stations.
- Space and sea: satellite passes with their downlink frequencies (SatNOGS), space weather (NOAA), and AIS vessels.
- Investigation: cases, change detection between scans, a correlation graph, a timeline replay, area monitoring with webhook alerts, a watchlist, and PDF / KML / GeoJSON / CSV export.
Screenshots use mock data and documentation-range IPs.
Install
pip install signalops-sigint
signalops
The app opens at http://localhost:8080. Add whichever API keys you have under Settings. Every source is optional, and the free ones (OSM, adsb.fi, CelesTrak, SondeHub, Meshtastic, NOAA, public cameras) work without a key.
To run from source instead:
git clone https://github.com/emrekybs/signalops.git && cd signalops
./start.sh # Windows: start.bat · Docker: docker compose up -d
- State: with pip, keys, the database and data live in
~/.signalops; from source, they stay in the repo folder. - Optional datasets: the camera, ALPR and precinct datasets go in
data/. - Options:
signalops --port 9090 --home /path, plus optional Tor or a SOCKS proxy in Settings. - Turkish install guide: KURULUM.md.
Responsible use
SignalOps is for lawful, authorized research and education. Finding a device does not give you permission to access it. Follow local law and each provider's terms.
License
MIT © 2026 Emre Kybs
Metadata
Release files for signalops-sigint 2.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| signalops_sigint-2.2.0.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| signalops_sigint-2.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.6 MB
Release files / signalops_sigint-2.2.0.tar.gz
| Download URL | signalops_sigint-2.2.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e71af08513d7412b3bfe649d0d1c747031a31f0a5667a33d7b1d69049fe7db3
|
|
BLAKE2b-256 checksum How to use checksums |
0c719b54b68f71d6fa5352a366ca136e3f9eaf5cb4af8445ad8cc31e5e780782
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / signalops_sigint-2.2.0-py3-none-any.whl
| Download URL | signalops_sigint-2.2.0-py3-none-any.whl |
|---|---|
| Size | 1.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d53e50390e6639553caa2ccbf684c905461936a243987102b859d03b467544c3
|
|
BLAKE2b-256 checksum How to use checksums |
6559916b50b50e0face1a80e5bbad1cab3b6d67e1efb9acde91148c4b0a18e88
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|