Skip to content

devctl

Purpose

devctl is a terminal UI (built with Bubble Tea) for local development. It starts, stops, and monitors every Eon Insights service from one screen — tlslab, insights, capture, hostsync, tlsscand, nmapscand, scascand, pcapworker, notifyd, fingerprintd, and the dashboard’s Vite dev server — using the binaries in bin/<os>/<arch>/. It is a development convenience, not something you’d run in production.

Usage

devctl

devctl takes no flags. It must be run from the project root (it checks for a configs/ directory on startup) and opens a full-screen TUI.

Key bindings

KeyAction
/k, /jMove selection
enter / spaceStart or stop the selected service
lView the selected service’s log tail
rRefresh status of all services
SStart all services
XStop all services
tRun the integration test suite (scripts/integration-test.sh)
cClean test data (scripts/clean-testdata.sh --all -y)
gToggle synthetic TLS traffic generation against tlslab
sQueue a TLS and an nmap scan against tlslab (via the insights API)
dOpen the datagen form (generate test data with custom parameters)
q / ctrl+cQuit (stops all running services first)

capture is marked as requiring sudo; devctl prompts for a password (cached via sudo -n for the rest of the session) before starting it. The dashboard’s dev server (npm run dev in web/dashboard) has its actual listening port auto-detected from Vite’s stdout, since Vite may pick a different port if 5173 is taken.

Example

# From the project root
go run cmd/devctl/devctl.go

# Or, once built
./bin/darwin/arm64/devctl