// the deck, screen by screen — terminal UI

Everything Warlock OS can do.

A guided tour of every capability — captured live from a running deck over SSH. One platform, three faces (web UI, terminal UI, and an on-device AI operator), one gated API. Prefer the browser? Switch to the GUI view →

Warlock OS terminal dashboard running on the deck Warlock OS shield emblem
Warlock OS command dashboard in the terminal — SAFE MODE banner, full module rail, and live tiles for CPU load, core temperature, memory, disk, NTP stratum, engagement status, RTC drift, active links, and peripherals (GPS, mesh nodes, SDR)

00 // command dashboard

Your whole deck, one HUD.

Throttle, core temp, memory, disk, time sync, active links, and every peripheral — at a glance, in the terminal or the browser, over the same single API. The engagement state is always front-and-center: SAFE MODE until you say otherwise.

  • terminal + web, identical data
  • live telemetry
  • works over SSH

+ // remote access — tailscale

Reach your deck from anywhere — privately.

The deck joins your private Tailscale tailnet, so the web dashboard and the terminal UI are reachable from your laptop anywhere — WireGuard-encrypted end-to-end, no port-forwarding, no public exposure, scoped by tailnet ACLs. Leave it running headless in the field and operate it from your couch. Every screen on this page was captured exactly that way: over SSH, across Tailscale.

  • WireGuard-encrypted
  • no port-forwarding
  • ACL-scoped
  • headless field ops
# from your laptop, on the tailnet
 ssh sem@warlock
 warlock-tui      # the full HUD
 warlock-chat     # the AI operator

# web dashboard, same private net:
 http://warlock:7777
WaRL0c assistant in the terminal — a large WARLOCK ASCII banner, 'cyberdeck assistant, read-only, grounded in live deck state', listing what it can answer about: deck status, engagement, Wi-Fi, network, radio/SDR, mesh/GPS

01 // WaRL0c — the AI operator

An operator that lives on the deck.

An on-device AI that reads the deck's live state and guides you through an engagement — then drives in-scope operations on your behalf. It can't act outside an active engagement, it can't arm one itself, and every action it takes goes through the same gate you do.

  • on-device model
  • guide → then drive
  • gate-enforced
Warlock OS mesh screen — 52 Meshtastic nodes with short name, long name, SNR, hops, battery, and last-heard, plus a 'send message to all nodes' panel

02 // mesh — off-grid comms

Talk deck-to-deck when there's no internet.

Meshtastic over LoRa turns the deck into a node on a long-range, low-power mesh — here, 52 nodes in view. Coordinate with other operators and decks in air-gapped or infrastructure-down situations: no cell, no Wi-Fi, no internet. See SNR, hop count, and battery per node; broadcast to all or DM one.

  • LoRa SX1262
  • air-gapped / off-grid
  • deck-to-deck
Warlock OS WiFi recon — monitor-mode scan showing 8 access points and 15 stations with BSSID, ESSID, channel, encryption (WPA3/WPA2/OPN), signal, and beacons

03 // wireless recon

See the RF room you're standing in.

Monitor-mode survey on the MediaTek MT7961 — access points and clients with channel, encryption, and signal, plus handshake and PMKID capture for later offline analysis. Passive by default; this is situational awareness, not attack.

  • APs + clients
  • WPA3 / WPA2 / open
  • handshake / PMKID capture
Warlock OS Offensive WiFi — a red 'ENGAGEMENT REQUIRED — ops are gated; every launch is refused (403) until active' banner, with deauth, capture-handshake, PMKID, evil-twin, karma, and WPS operations, deauth shown BLOCKED

04 // offensive wireless — gated

Inert until you're authorized.

Deauth, evil-twin, karma, WPS — the offensive toolkit is refused (403) until an engagement is active and the target is in scope. No engagement, no offense. This isn't a setting you can forget to turn on; it's the default state of the machine.

  • engagement-required
  • deauth · evil-twin · karma · WPS
  • refused + logged out of scope
Warlock OS SDR scanner — Rafael Micro R820T device, ADS-B aircraft, rtl_433 events, and 8 frequency presets (98.50 WFM, 118.10 AM)

05 // software-defined radio

Read the spectrum. Transmit only when cleared.

RTL-SDR receive for ADS-B aircraft tracking, rtl_433 sensors, and tunable presets — plus HackRF for capture, analyze, and replay. Receiving is always on; transmitting (replay) is hard-gated on an active engagement and a named in-scope target.

  • ADS-B + rtl_433
  • RTL-SDR rx · HackRF tx
  • TX hard-gated
Warlock OS GPS navigation — position, altitude, velocity, GPS time with PPS on /dev/pps0, satellites, and chrony tracking disciplining the clock

06 // GPS + precision time

Know where and when — off the grid.

A u-blox receiver with 1-PPS feeds position and disciplines the system clock through chrony, so your audit timestamps stay accurate even with no network time source. Critical when the records have to hold up later.

  • u-blox + PPS
  • chrony-disciplined clock
  • accurate offline
Warlock OS network recon — subnet 192.168.100.0/24, 48 hosts discovered, gateway, ARP host table with IP/MAC/vendor, and a defense-alerts panel (mac-change, new host, new service, gone host)

07 // network recon & defense

Map the wire — and watch it for changes.

ARP discovery enumerates the local subnet with vendor fingerprints, while a baseline-and-diff monitor raises defense alerts on MAC changes, new hosts, and new services — blue-team by default. Wide or non-local port scans require an engagement; own-network monitoring is always allowed.

  • host discovery
  • ARP-spoof / new-host alerts
  • portscan gated
Warlock OS server audit — nmap-vuln, nikto, lynis, and ssh-config audit types; remote types require an active engagement, local lynis is always allowed

08 // server audit

Harden what you're responsible for.

nmap-vuln, nikto, lynis, and SSH-config review against the hosts you manage. Remote audits are engagement-gated; local hardening (lynis) always runs. SSH passwords are passed by environment and never written to the audit log.

  • nmap · nikto · lynis · ssh-config
  • remote gated
  • secrets never logged
Warlock OS operations audit log — a list of scope.violation entries (aireplay-ng deauth, nmap vuln, hashcat, reaver) all marked 'refused', alongside job.submit entries marked 'submitted'

09 // the engagement gate — the receipts

Every refusal, on the record.

Arm an engagement with an explicit scope, and the deck enforces it on every action — even when the AI makes the request. The audit log is the proof: here, real scope.violation … refused rows where the gate stopped an out-of-scope deauth, nmap, hashcat, and reaver. Each record is signed (Ed25519 / did:web) so a third party can verify it offline.

  • scope enforced at run time
  • refusals + jobs both logged
  • signed, verifiable attestation

Build your own.

Every screen above runs on a deck you assemble yourself, from a documented bill-of-materials. Open, free, authorization-first.