docs/usage/cli.mdx
strix (--target <target> | --target-list <path>) [options]
When the target is an API spec, Strix copies it into the agent's workspace and authorizes the base URLs it declares (including those resolved from a Postman environment) as in-scope hosts - so the agent reads the contract and tests the full declared surface instead of discovering endpoints by crawling. Pair the spec with the deployed base URL (e.g. --target ./openapi.yaml --target https://api.example.com) so the agent has a reachable host to attack.
In non-interactive mode (-n), once the running cost reaches the threshold,
the scan stops cleanly with a stopped status (not a failure) and the sandbox
is torn down. Sub-agents are stopped early, at 90% of the budget, reserving
the final slice for the root agent to wind down and produce the final report.
In interactive mode, reaching the budget pauses the scan instead of ending it: every agent parks, and sending any message resumes the scan with the cap extended by the original budget amount. There is no sub-agent reserve in interactive mode.
As the budget is approached, graduated wrap-up warnings are surfaced to every agent so they can finish their work and call their lifecycle tool before the hard stop. The bands sit just below each role's own stop point: the root is warned at 70%, 85% and 95% (it stops at 100%), while sub-agents are warned at 75%, 80% and 85% (they stop at the 90% reserve). In interactive mode every agent uses the 70%, 85% and 95% bands. Percentages shown in the warnings are the real cumulative spend against the full budget.
Must be greater than 0. Omit the flag for no limit.
Limitations
As the limit is approached, graduated wrap-up warnings (at 70%, 85% and 95%)
are injected into that agent's next model turn so it can prioritise its
remaining work and call its lifecycle tool (finish_scan for the root agent,
agent_finish for sub-agents) before the hard stop.
Must be greater than 0.
</ParamField>
# Basic scan
strix --target https://example.com
# Authenticated testing
strix --target https://app.com --instruction "Use credentials: user:pass"
# Focused testing
strix --target api.example.com --instruction "Focus on IDOR and auth bypass"
# CI/CD mode
strix -n --target ./ --scan-mode quick
# Cap cost and per-agent turns
strix --target https://example.com --max-budget 25 --max-turns 300
# Force diff-scope against a specific base ref
strix -n --target ./ --scan-mode quick --scope-mode diff --diff-base origin/main
# Multi-target white-box testing
strix -t https://github.com/org/app -t https://staging.example.com
# API spec + live target (OpenAPI/Swagger file or Postman collection)
strix -t ./openapi.yaml -t https://api.example.com
# Postman collection pulled live by id (+ optional environment)
strix -t "postman://<collection-uuid>?env=<environment-uuid>"
# Targets from a file
strix --target-list ./targets.txt
| Code | Meaning |
|---|---|
| 0 | Scan completed successfully (interactive mode always exits 0; in headless mode, 0 means no vulnerabilities were found) |
| 1 | A fatal error occurred before or during the scan (e.g. missing environment variables, Docker unavailable, invalid config file, diff-scope resolution failure, or an unhandled error) |
| 2 | Vulnerabilities found (headless mode only) |