Skip to main content
Cynative is a single-binary CLI that runs frontier LLMs over your cloud infrastructure for read-only security research. You can drive it interactively, seed it with a task, or run it non-interactively in scripts and CI pipelines — all from the same binary with the same flags.

Three ways to use Cynative

The -p / --print flag is the key to scriptable use. When it is set, Cynative runs exactly one task and exits with a code that carries the verdict (see Exit codes below).

Running built-in agents

Cynative ships with 45 reviewed agents embedded in the binary — one for each common security question across AWS, Azure, GCP, GitHub, and Kubernetes. Pass --agent <name> to run one.
To browse the full catalog:
A sample of what’s available: You can also write your own agent in a single markdown file. Copy an existing one as a starting point:
A file in ~/.cynative/agents/ wins over a built-in of the same name, so give your copy a distinct name to keep both.

Free-form questions

You don’t need a named agent. Ask any natural-language security question directly:
Cynative reasons across AWS, GCP, Azure, Kubernetes, GitHub, and GitLab as one system, writing and running concurrent API scripts in a sandbox to gather evidence before answering.

Piping input

Use standard Unix pipes to feed Cynative data from files or other commands. In print mode (-p), Cynative reads stdin when it is not a terminal:
Cynative prints a short operational footer (timing, token usage) to stderr. Redirecting stdout captures only the clean answer:

Combining flags

All flags compose freely, so the same agent file works interactively during development and non-interactively once it’s stable:

Exit codes

The exit code carries the verdict for scripted callers, so you can branch on outcome without parsing stdout. Example usage in a shell script:

Resource and cost controls

For unattended, scheduled, or long-horizon runs — wired into cron, CI, or any trigger — bound the work explicitly. These knobs are set in ~/.cynative/config.yaml or via environment variable: Finding verification (verify_findings tool) makes extra model calls — budget for them on any run that produces findings.