Day one
First 30 minutes.
From curl | sh to a hash-chained audit row of a verified detection — usually inside a quiet afternoon. This page is the day-one path, written for someone who already runs Wazuh, Suricata, or Microsoft 365 and wants to know whether the install is worth their Sunday.
Quick reality check
The 30-minute path
Four steps. Real commands. Real timings.
Each step shows you what to run, what changes, and what you'll have at the end of it.
- 0–5 min
1. Install + init
Single-binary install. No daemon to register, no database to provision. Works fine over SSH on a fresh Ubuntu 22.04 LXC or a Mac Studio.
Commandscurl -sSfL https://cybercli.com/install.sh | bash cybercli init # ~30 seconds, asks 3 questions cybercli activate '<paste-the-code-from-your-welcome-email>'
What you have at the endA working `cybercli` CLI in your $PATH, license verified offline, ready to onboard a connector. - 5–15 min
2. Onboard your three highest-signal connectors
If you already run Wazuh, that's connector #1. If you have UniFi or pfSense for the perimeter, that's #2. If you're on Microsoft 365 for identity, that's #3 (Pro tier). The onboard flow asks for credentials, validates the connection, and starts the event stream — typically 2–5 minutes per connector.
Commandscybercli onboard wazuh cybercli onboard unifi # or pfsense / suricata cybercli onboard m365 # Pro+
What you have at the endLive event stream from three sources flowing into the Beacons engine. The dashboard's CYCON panel shows non-zero event counts on first refresh. - 15–25 min
3. Start the dashboard + wire your first notification channel
Launch the dashboard locally — it's a single-process web UI on 127.0.0.1 with no inbound port to expose. Add a Slack webhook (or SMTP, or Pushover) through the Notifications panel; the channel test fires a synthetic alert and you watch it land in the destination. Then leave it running and let the live stream flow; the engine will triage the first real signal and route the elevated ones through the channel you just configured.
Commandscybercli dashboard serve # opens http://127.0.0.1:8090 # in another shell — pick whichever feels natural: cybercli channels add slack # interactive CLI # or use the dashboard's Notifications panel cybercli channels test slack # confirm it works
What you have at the endFirst live notification from your environment. You've seen the full ingest → Warden → Herald loop end-to-end. - 25–30 min
4. Run the read-only smoke checks
Before you wait on real traffic, run two smoke commands. First, `cybercli smoke --yes-i-mean-it` probes every onboarded connector's credentials and network reachability — read-only, no events injected. Then `cybercli check` exercises the engine itself: it injects a canned scenario through the live pipeline, watches CYCON elevate, confirms the AuthorityBridge enforces the trust ceiling, asserts every test-flagged notification stayed silent, and verifies the hash chain held across the session. Both commands write real audit-chain rows so you can re-verify everything later.
Commandscybercli smoke --yes-i-mean-it # connector + provider auth probes cybercli check # engine smoke (L0..L5) cybercli check --report html -o check.html # for sharing # follow the live CYCON dial in the dashboard once real signals arrive # the dashboard's Audit tab streams the hash-chained log
What you have at the endBoth commands print ALL GREEN or PASS WITH WARNINGS (L2 will WARN until an AI provider is selected — that's expected on Free first installs). The next real event flows through the full ingest → triage → notification chain end-to-end, and the Audit tab records a signed entry for each step. `check.html` is your shareable receipt — friends, MSPs, and CISO reviewers can verify the engine without trusting our marketing.
For Wazuh / Suricata / M365 operators
From Wazuh to CyberCLI in 30 minutes.
You don't throw anything out. Wazuh keeps doing what it does — endpoint truth, FIM, rule-based detection. CyberCLI reads its alert stream over the Wazuh indexer/API and adds the agentic layer on top: Warden classifies and triages, Knight verifies the high-signal hits, Marshal sequences containment plans, Paladin executes the approved one-action contains via the Wazuh agent itself. Your Wazuh rules keep firing; CyberCLI just turns the alert firehose into a case lifecycle.
- • Your Wazuh manager + agents
- • Your custom Wazuh rules
- • Your existing operator workflow
- • Your endpoint inventory
- • Alert noise → triaged cases
- • Per-event handling → per-case lifecycle
- • Manual containment → AI-proposed (your approval)
- • Postmortem writeup → Scribe (Business+)
Same shape applies for Suricata (read EVE-JSON), pfSense/OPNsense (read filterlog), Microsoft 365 (read Graph + Defender alerts). You keep the substrate; CyberCLI gives you the operator-AI loop you didn't have time to build.
After minute 30
What gets better, and how fast.
The first 30 minutes is a vertical slice. The product gets meaningfully better over the next 90 days as you tune false positives, expand connectors, and let the local-LoRA layer learn your environment.
Tune the noise floor
Warden ships with reasonable defaults but every environment is different. Mark recurring alerts as known-noise from the signal detail drawer; the engine baselines the pattern and stops counting future matches toward CYCON. Notification volume drops as the noise floor is acknowledged — exact rate depends on your environment.
Widen the substrate
Add the next four to six connectors that map to your stack — Keycloak, ClamAV, Falco, Suricata. Each one expands the cross-substrate correlation Warden runs on every event. Coverage on the MITRE matrix grows roughly linearly with connector count for the first 10 connectors.
Open the leash
Once you trust the engine's triage, walk Trust Ladder ceilings up per-template at your own pace. Pro tier caps at L4 (single-action sequencer with operator approval); Business caps at L7 (multi-action plans with one-approval-per-plan). You set the pace; the engine never escalates itself.
2026-06-20 doctrine
Triage any signal in one click — no AI wait.
Other tools queue your buttons behind their AI. CyberCLI flips it: every signal row in the dashboard has three buttons — ignore, monitor, investigate — that fire the moment you press them. AI doesn't gate your decision; your decision overrules AI's for CYCON math. The button press also writes a labeled TriageDecision row that the v1.5 local Warden trains on, so your judgement compounds into a model that reads your environment your way.
What happens when Warden gets it wrong?
You hit the ignore button on the signal row (or mark the case false-positive in the drawer). Two things happen: (1) the same connector + rule + actor pattern is suppressed by Warden's prefilter going forward, scoped to your tenant only, and (2) the false-positive lands in the per-operator training corpus we use to inform per-environment LoRA refreshes as the Cyber Guild Stable matures (v1.x). Your suppressions are local, signed, and revocable. They're not shared with us or other operators.
Next