The loop, end to end →

Observe. Decide. Act. Prove.

Most tools stop at an alert. Michael closes the loop: it sees the event, chooses a response inside your policy, performs it, and writes the evidence to a chain you can verify.

1.8smedian time to contain
$0.0001per decision, typed model
4 / 4lab vectors blocked
0inbound ports opened
01 — The loop

One loop, four moves.

The same loop runs for a package finding, a web attack, or a suspicious AI-agent egress event.

01

Observe

The agent reads packages, services, runtime signals, and web requests. It records what it can actually see, not what a feed says might exist.

inventory + telemetry
02

Decide

A deterministic score combines exposure, exploitability, impact, and match confidence. Typed models cover the common cases; an LLM is used only for ambiguity.

priority = f(exposure, impact)
03

Act

Inside the policy, Michael applies the smallest reversible action: virtual patch, quarantine, session revoke, or a request for approval.

simulated by default
04

Prove

Every mutation is an action with a mode, a rollback path, and an audit entry. The chain is keyed with an HMAC stored beside the database.

SHA-256 + HMAC chain
02 — The cost model

Four layers, cheapest first.

Most events never reach a large model. That is how deep protection stays affordable on a $5 VPS.

L0

Deterministic rules

Known-bad signatures, package versions, and policy gates. Instant, free, and explainable.

most events
L1

Learned baseline

What normal looks like on this workload: processes, egress, login hours, request shape.

per host
L2

Typed decision model

Chooses the response and explains the trade-off for about $0.0001 per decision.

common cases
L3

LLM

Only for genuinely ambiguous evidence. It writes the narrative; it does not get the keys.

~3% of events
Guardrail: the model can recommend, but only the policy engine can authorise an action. Production actions stay simulated until an operator explicitly enables enforcement.
03 — Install

Attach it without root.

If you can run one command in a build step or a cron job, you are covered. No inbound ports, no host login, no agent to babysit.

NODE 18+

Vercel, Render, Netlify

Wrap the handler or mount the middleware. Rules are fetched once and enforced in-process.

curl -fsSL $BASE/app/install/TOKEN.sh | sh
PHP 8+

cPanel, shared hosting

A drop-in guard through auto_prepend_file, plus a cron report. No network call on the request path.

curl -fsSL $BASE/app/install/TOKEN.sh | sh
PYTHON 3.10+

Flask, FastAPI, WSGI

WSGI middleware with the same policy client and the same audit trail.

curl -fsSL $BASE/app/install/TOKEN.sh | sh
04 — Evidence

The live proof.

A deliberately vulnerable PHP portal runs on loopback on the live host. Michael probes it over TCP, records real findings, applies a data-only virtual patch, and blocks the exploit through a separate proxy. The application underneath is never patched in this demo — that is the point.

Publicmichael.marvelly.com.ngauthenticated console
→
Console127.0.0.1:8090findings · decisions · audit
→
Michael Shield127.0.0.1:8082rules are data, not code
→
Target127.0.0.1:8081acme-portal · PHP 8.3.6
VectorDirect to the appThrough the shieldWhat Michael records
SQL injectionLAB-2026-SQLI302 accepted403 blockedBlocked by Michael · audit entry
Command injectionLAB-2026-CMDImarker executed403 blockedBlocked by Michael · audit entry
Path traversalLAB-2026-TRAVERSALlogin source403 blockedBlocked by Michael · audit entry
Oversized body300 KB capaccepted413 blockedbody_cap · audit entry
05 — Free tier

What the free tier actually does.

No card. No host login. It is the same engine that runs the paid fleet, scoped to the apps you cannot SSH into.

Lockfile-accurate findings

Michael reads the resolved versions your app reports and matches them against OSV for the ecosystem you actually use.

no guessed versions

Virtual patches that deploy themselves

When an advisory has a signature, the control plane publishes a rule. The SDK enforces it on the next request and revokes it when you upgrade.

rules are data

Known-bad releases stopped at boot

A malicious or compromised release becomes a deny rule, so the process refuses to start with it installed.

deny_package

Security’s economics broke. Michael closes the gap.

For the people who need protection most and can afford it least. Start on an app for free, then add servers when you have them.

Protect an app free Open the console