hackrf-webui is a local-first web dashboard for HackRF: radio control, live audio, maps, capture review and offline-friendly runtime in one browser UI.
It runs on your machine. There is no cloud account, no hosted backend and no remote device bridge.
- Local-first HackRF dashboard built for real radio work, not a hosted demo.
- Browser audio for
FM,PMR,AIRBANDand marine VHF voice. - Live
AISandADS-Bmaps with local history and offline-capable basemaps. SIGINTworkspace for reviewing captures, prioritizing evidence and replaying movement history.- Shared location model: catalog scope for regional data, exact position for maps and receivers.
- Local
SQLitestorage for activity, captures, review state and decoded routes. - Setup script that can prepare system dependencies, native receivers, maps, AI assets and the ADS-B backend.
/sigint is the analysis layer above the live radio modules. It is designed to let you leave a scanner running, come back later and review what actually happened.
It currently has three main areas:
Captures: a queue of activity-triggered captures fromPMR,AIRBANDandMARITIME, with search, module filters, review-state filters, AI-state filters,WAV onlyandIQ onlyviews.Evidence detail: the selected capture, audio playback, rawIQdownload, signal metadata, coordinates, receiver settings, local AI summary, acoustic labels, analyst notes and keep / flag / discard review state.ADS-B/AISreplay: persisted aircraft and vessel tracks from local history, with archive lists, offline-capable map playback, timeline scrubber, play/pause and jump-to-latest controls.
The local AI pass classifies saved audio as speech, noise, music or unknown, adds voice-activity evidence and keeps its analysis jobs visible next to the capture review.
| Module | What it does |
|---|---|
SIGINT |
Capture queue, evidence detail, local AI triage, analyst review and AIS / ADS-B route replay. |
FM |
Wide FM listening with a sharded country/city station catalog and coverage metadata. |
PMR |
Narrowband presets, manual listen, automatic scanning and activity capture. |
AIRBAND |
Civil VHF airband AM listening with common/guard channels and local presets. |
MARITIME |
Marine VHF voice listening with global/regional starter packs and smart local scanning. |
AIS |
Native dual-channel HackRF decoding, vessel map, trails and persisted local history. |
ADS-B |
Managed dump1090-fa backend, aircraft map, receiver telemetry and persisted local history. |
git clone git@github.com:MikelCalvo/hackrf-webui.git
cd hackrf-webui
./start.shDefault address:
http://127.0.0.1:3000
The root route opens the last module used in the browser, or falls back to /fm.
./start.sh --check
./start.sh --host 0.0.0.0 --port 4000
./start.sh --map-country ES
./start.sh --skip-ai
./start.sh --skip-maps
./start.sh --rebuild
./clean.shEnvironment overrides work too:
HOST=0.0.0.0 PORT=4000 ./start.sh
MAP_COUNTRY=ES ./start.sh
HACKRF_WEBUI_GPSD_HOST=127.0.0.1 HACKRF_WEBUI_GPSD_PORT=2947 ./start.shFor the full runtime guide, see docs/runtime.md.
For normal usage you need a Linux machine with:
HackRFuserspace tools, includinghackrf_infolibhackrfdevelopment headersNode.js20.19+,22.13+or a supported24+runtimenpm10+ffmpeg,curl,cc,pkg-configandncursesdevelopment headers
Optional:
gpsdand a compatible GPS receiver for live physical positioning- local PMTiles map packs for offline AIS / ADS-B maps
start.sh can install common system dependencies on Debian/Ubuntu, Fedora/RHEL-like systems, Arch-based systems and openSUSE.
Runtime data stays next to the project:
db/app.sqlitestores activity, review state and route history.data/captures/stores generatedWAVand rawIQ .cs8evidence.assets/ai/andruntime/store the local SIGINT AI assets and Python runtime.public/tiles/osm/stores optional offline map layers.
The FM catalog is static and sharded under public/catalog; it is not stored in the database.
npm ci
npm run devOpen http://localhost:3000.
Production-style local verification:
npm ci
npm run lint
npm run buildDeveloper notes, catalog rebuilds and data-source details live in docs/development.md.
docs/runtime.md: install flow, runtime options, maps, storage and receiver notes.docs/development.md: development commands, native binaries and catalog tooling.docs/fm: FM coverage planning and source notes.docs/screenshots: screenshots used by this README.
Licensed under the ISC License.


