Your first Ruso script, from install to finding
This is the shortest path from a clean machine to your first structured finding. You need a terminal and a host you are allowed to scan. Everything below was run against a local lab container.
1. Install the CLI
curl -fsSL https://docs.ruso.hopeless-labs.com/install.sh | sh
ruso --version
2. Write the check
Create headers.rsl — a check for a missing security header:
name "Missing X-Frame-Options"
severity low
http page { url "https://{{scan_host}}/" }
send page
match page.response.headers not_contains "x-frame-options"
Three ideas, three lines: a probe (http), an action (send), and a condition
(match). The {{scan_host}} placeholder is filled at run time, so the same
script works against any host.
3. Compile it
ruso compile headers.rsl -o headers.rbc
Compilation validates the script — unknown verbs, bad placeholders, and malformed matches are rejected before anything touches the network. That is the artifact the registry ships and the CLI runs.
4. Run it
ruso scan --target lab.internal --script headers.rbc
Output is grouped by target and prints one line per finding:
lab.internal low Missing X-Frame-Options / (headers.rsl)
5. Take it to CI
The same command returns a non-zero exit code when findings meet your severity threshold, which is all a pipeline needs:
ruso scan --target "$TARGET" --script headers.rbc --fail-on high
Next stop: publish the script to the registry so the rest of us can install it with one command. The quick start covers that path.