Quick Start · Docs · Architecture · Configuration · Security
Argos wraps the native SDR and network-analysis CLIs you already trust — hackrf_sweep, Kismet, gpsd, grgsm — behind a single Svelte 5 dashboard, streaming every tool to one operator view over WebSocket and SSE. It runs natively on an NVIDIA Jetson AGX Orin or a Raspberry Pi 5 in the field, so the whole RF and network picture lives in one place instead of a dozen terminals.
git clone https://github.com/christianpeirson/argos-edge.git
cd argos-edge
sudo bash scripts/ops/setup-host.sh # installs host tools + services, generates .env
npm install
npm run dev
Open http://<host-ip>:5173 — you should see the tactical dashboard. For prerequisites and the production (systemd) deploy, see Installation.
[!WARNING] Argos integrates offensive, signals-intelligence, and electronic-warfare tooling intended for authorized training, research, and testing only. Transmitting on regulated spectrum and capturing third-party traffic are illegal without authorization. You are solely responsible for compliance with all applicable laws, radio licenses, and rules of engagement.
Concrete, not aspirational — each row is wired to real tools today.
| Domain | Tools | Access / transport |
|---|---|---|
| Spectrum | hackrf_sweep, OpenWebRX, NovaSDR, SDR++ |
Waterfall + peak-hold over WebSocket |
| Cellular | grgsm, GSM/IMSI monitoring |
Live scan view + console |
| Wi-Fi / Bluetooth | Kismet, Blue Dragon (BLE survey) | Survey tables over SSE |
| Geolocation & mapping | gpsd, signal geolocation |
Leaflet + MapLibre GL, MIL-STD-2525 symbology |
| RF propagation | Signal-Server, Navy APM | Map overlays |
| Situational awareness | TAK / Cursor-on-Target export | Broadcast + certificate management |
| Network reconnaissance | Authorized-use offensive framework (tactical/) |
Integrated PTY terminals (node-pty + xterm) |
| AI assistant | Anthropic Claude | In-console agent panel (online) |
| Component | Notes | Required |
|---|---|---|
| Compute — NVIDIA Jetson AGX Orin (Ubuntu 22.04) or Raspberry Pi 5 8GB (Kali) | Jetson is the primary target; RPi 5 is the original/alternate platform | Yes |
| HackRF One (or USRP B205mini) | Spectrum capture; B205mini for wideband Blue Dragon BLE | Yes |
| u-blox GPS dongle | Positioning | Recommended |
| External Wi-Fi adapter | Wi-Fi scanning (the managed NIC stays reserved for internet) | Yes |
| USB 3.0 powered hub | Power delivery for peripherals | Yes |
| 500GB+ NVMe SSD | Storage | Recommended |
Prerequisites: Node >=22.11, git, and sudo on a fresh host.
Primary path — native host (Jetson AGX Orin / Ubuntu 22.04). Follow the canonical guide: docs/install/jetson-aarch64.md. In summary:
sudo bash scripts/ops/setup-host.sh — installs Node, Kismet, gpsd, udev rules, and the third-party tool containers; generates .env..env (see Configuration).npm run build, then deploy via systemd: sudo bash scripts/ops/install-services.sh and systemctl start argos-final.Alternate path — Raspberry Pi 5 / Kali. See SETUP.md.
Docker is used only for third-party tools (OpenWebRX, NovaSDR, Bettercap). The Argos app itself runs natively on
adapter-node(scripts/ops/prod-server.ts), not in a container.
SDR / network hardware (HackRF, USRP, Wi-Fi, GPS)
→ native CLI tool wrappers (hackrf_sweep, Kismet, gpsd, grgsm)
→ Node server + SvelteKit (adapter-node, custom ws/upgrade handler)
→ real-time transport (WebSocket + SSE)
→ Svelte 5 dashboard (runes + IBM Carbon)
| Layer | Technology |
|---|---|
| Frontend | SvelteKit 2 · Svelte 5 (runes) · IBM Carbon (carbon-components-svelte) |
| Language | TypeScript (strict) |
| Server | Node >=22.11 · adapter-node (custom ws upgrade handler) |
| Realtime | WebSocket (ws) + SSE |
| Storage | better-sqlite3 |
| Terminals | node-pty + xterm |
| Observability | OpenTelemetry · Sentry |
Built on: HackRF · Kismet · gpsd · gr-gsm · OpenWebRX · GNU Radio · MapLibre · Leaflet · TAK.
See ADR-0001 for the framework rationale and ADR-0006 for the IBM Carbon UI decision.
| Tool | Type | Access | HackRF |
|---|---|---|---|
| OpenWebRX | Docker | iframe :8073 |
Shared |
| NovaSDR | Docker | iframe :9002 |
Shared |
| SDR++ | Native | noVNC :6082 |
Shared |
Runtime configuration is via environment variables — copy .env.example to .env. All variables are validated at startup in src/lib/server/env.ts, and the setup script generates the required values on first run.
| Variable | Required | Purpose |
|---|---|---|
ARGOS_API_KEY |
Yes | API authentication (fail-closed; min 32 chars) |
ANTHROPIC_API_KEY |
Optional | Enables the AI assistant panel (console.anthropic.com) |
STADIA_MAPS_API_KEY |
Optional | Vector map tiles (stadiamaps.com) |
OPENCELLID_API_KEY |
Optional | Cell-tower database (opencellid.org) |
![]() Live status bar — WiFi / SDR / GPS / TAK status with MGRS grid and Zulu time |
docs/operations/ (survey runbook, memory reliability)docs/adr/ (ADR 0001–0006)| Problem | Fix |
|---|---|
| No DNS / can't resolve hostnames | sudo tailscale set --accept-dns=true |
| No GPS fix | Move outside with sky view, wait ~2 minutes |
| Page is blank | Check npm run dev output for errors |
| Wi-Fi adapter not detected | Unplug and replug the USB hub |
| HackRF not detected | Run hackrf_info on the host |
| Port conflict | sudo lsof -i :5173 |
Contributions are welcome — see CONTRIBUTING.md for the branch model, the local npm run verify gate, and commit conventions. Issue and PR templates live in .github/.
See SECURITY.md for private vulnerability reporting. Argos integrates offensive and signals-intelligence tooling intended for authorized training, research, and testing only — you are responsible for compliance with all applicable laws and authorizations.
Argos is released under the MIT License — see LICENSE.