WiFi + BLE + Network passive scanning with tactical HUD radar. No camera. No mic. No cloud. Just signal.
Built as a free, open source alternative to SOPHIA CIVOPS. Runs on Android (Termux), Raspberry Pi, and Linux.
- Live WiFi scanning — SSID, BSSID, RSSI, security type, distance estimate
- Passive BLE scanning — device name, manufacturer ID, AirTag detection
- LAN network scanner — ARP + nmap device discovery
- OUI vendor lookup — IEEE database bundled locally
- Risk scoring — 15+ flag types including camera vendor OUIs, open networks, hidden SSIDs
- Device classification — Static / Transient / Mobile / New / Baseline
- Intel Timeline — persistent event log in SQLite
- AirTag / FindMy beacon detection
- ESP32/ESP8266 (hidden camera chip) detection
- SSID identity extraction — detects personal hotspot names, employer SSIDs, ISP patterns
- Export Debrief — structured 5-minute intelligence window, AI-prompt ready
- WiGLE geolocation (optional, requires free account)
- NVD CVE lookup for detected vendors (optional, no key required)
- Tactical HUD radar — canvas-based, dark UI, runs in Chrome on the phone
| HUD Radar | Device Inventory |
|---|---|
![]() |
![]() |
| OSINT Enrichment | Signal Debrief |
|---|---|
![]() |
![]() |
| Settings |
|---|
![]() |
| Feature | Android (Termux) | Raspberry Pi | Linux | Windows (dev) |
|---|---|---|---|---|
| WiFi scanning | ✓ | ✓ | ✓ | mock |
| BLE scanning | partial* | ✓ | ✓ | mock |
| Network (ARP/nmap) | ✓ | ✓ | ✓ | mock |
| HUD browser UI | ✓ | ✓ | ✓ | ✓ |
| Offline operation | ✓ | ✓ | ✓ | ✓ |
*BLE on Termux requires Termux:API from F-Droid + Location permission
- Android 8+
- Termux from F-Droid
- Termux:API from F-Droid (separate app)
- Location permission granted to Termux:API (Allow all the time)
- Nearby Devices permission granted to Termux:API
⚠ Do NOT install Termux from the Google Play Store — it is outdated and broken.
# 1. Update Termux
pkg update -y && pkg upgrade -y
# 2. Install dependencies
pkg install -y python git nmap termux-api python-psutil
# 3. Set up storage
termux-setup-storage
# 4. Clone ORION
cd ~
git clone https://github.com/Chemtron/orion.git
cd orion
# 5. Install Python packages
pip install -r requirements-termux.txt
# 6. Run
python orion.pyThen open Chrome on your phone and go to http://127.0.0.1:5000
# Test 1 — does termux-wifi-scaninfo work?
termux-wifi-scaninfo
# Test 2 — start the API service
termux-api-start
termux-wifi-scaninfo
# Test 3 — check location permission
termux-locationIf termux-wifi-scaninfo hangs or returns empty:
- Open Android Settings → Apps → Termux:API → Permissions → Location → Allow all the time
- Open Android Settings → Apps → Termux:API → Permissions → Nearby devices → Allow
- Make sure WiFi is turned on
- Run
termux-api-startthen try again
cd ~
git clone https://github.com/Chemtron/orion.git
cd orion
bash install.sh
python3 orion.pyAccess from any device on your LAN: http://[PI_IP_ADDRESS]:5000
To find your Pi's IP: hostname -I
git clone https://github.com/Chemtron/orion.git
cd orion
bash install.sh
python3 orion.pygit clone https://github.com/Chemtron/orion.git
cd orion
pip install -r requirements.txt
python orion.pyWindows uses mock scan data. Real scanning requires Termux or Linux.
Edit .env in the project root:
| Variable | Default | Description |
|---|---|---|
| ORION_HOST | 127.0.0.1 | Bind address (use 0.0.0.0 for LAN access) |
| ORION_PORT | 5000 | Port |
| ENABLE_WIFI | true | WiFi scanning on/off |
| ENABLE_BLE | true | BLE scanning on/off |
| ENABLE_NETWORK | true | LAN scanning on/off |
| ENABLE_ENRICHMENT | false | Online enrichment on/off |
| WIGLE_API_NAME | blank | WiGLE account name |
| WIGLE_API_TOKEN | blank | WiGLE API token |
| SHODAN_API_KEY | blank | Shodan API key |
| MACADDRESS_IO_KEY | blank | macaddress.io key |
For defensive security, privacy awareness, and authorized use only. Do not use to scan networks or devices you do not own or have permission to scan. MIT License — see LICENSE file.




