This page documents the secopsai command-line interface.
secopsai [--json] <command> [options]
secopsai <command> [options] [--json]--json is a global flag and is accepted either before or after the subcommand.
Examples:
secopsai --json list --severity high
secopsai list --severity high --jsonList findings from the SOC store by triage status.
secopsai triage list --status open --limit 20
secopsai triage list --status in_review --jsonOptions:
--status open|in_review|closed|triaged--limit <n>— default50--json
Mark a finding as actively under analyst review.
secopsai triage start SCM-XXXX --note "Initial analyst review started"Options:
--note <text>— analyst note stored with the finding--json
Gather evidence, classify the finding type, and write case files.
secopsai triage investigate SCM-XXXX --search-root ~/secopsai --jsonOptions:
--search-root <path>— where local dependency or repo references are checked--json
Writes:
reports/triage/<finding_id>.jsonreports/triage/<finding_id>.md
Close or disposition a finding with a required note.
secopsai triage close SCM-XXXX --disposition false_positive --note "Verified safe internal package."Options:
--disposition true_positive|false_positive|expected_behavior|accepted_risk|exception_granted|needs_review|tune_policy|remediated--note <text>— required analyst rationale--json
Run the guarded triage orchestrator across open findings.
secopsai triage orchestrate --search-root ~/secopsai
secopsai triage orchestrate --limit 10 --jsonOptions:
--search-root <path>— repository root for dependency presence checks--limit <n>— maximum findings to process--queue-file <path>— override queue path--json
Behavior:
- auto-starts findings into
in_review - auto-investigates findings
- auto-closes low-risk
expected_behaviorand allowlisted false positives - queues higher-risk actions for analyst application
Show queued orchestrator actions awaiting analyst application.
secopsai triage queue
secopsai triage queue --jsonOptions:
--queue-file <path>— override queue path--json
Apply one queued action after analyst review.
secopsai triage apply-action ACT-0001 --yesOptions:
--queue-file <path>— override queue path--yes— skip interactive confirmation--json
Generate a compact summary of current triage and queue state.
secopsai triage summary
secopsai triage summary --jsonOptions:
--limit <n>— how many recent summary entries to include--queue-file <path>— override queue path--json
Run the full OpenClaw live pipeline and persist findings into the local SOC store.
secopsai refresh
secopsai refresh --json
secopsai refresh --skip-exportOptions:
--skip-export— reuse existing exported OpenClaw native telemetry--openclaw-home <path>— overrideOPENCLAW_HOME--verbose— verbose refresh output--json— machine-friendly output
Returns:
- whether export ran
- output paths for audit/replay/findings
- total findings
- total detections
List findings from the local SOC store.
secopsai list
secopsai list --severity high
secopsai list --limit 20 --jsonOptions:
--severity info|low|medium|high|critical--limit <n>— default50--no-refresh— do not auto-refresh before listing--cache-ttl <seconds>— default60; minimum time between auto-refresh runs--openclaw-home <path>--json
Notes:
- By default,
listmay auto-refresh the pipeline first. - Use
--no-refreshto work only from what is already stored locally.
Show one finding in detail.
secopsai show OCF-XXXX
secopsai show OCF-XXXX --jsonOptions:
--no-refresh--cache-ttl <seconds>--openclaw-home <path>--json
Show recommended mitigation actions for a finding.
secopsai mitigate OCF-XXXX
secopsai mitigate OCF-XXXX --jsonOptions:
--no-refresh--cache-ttl <seconds>--openclaw-home <path>--json
Run a quick presence check against existing findings.
secopsai check --type malware
secopsai check --type exfil --severity medium --json
secopsai check --type both --no-refreshOptions:
--type malware|exfil|both— required--severity info|low|medium|high|critical— defaultlow--no-refresh--cache-ttl <seconds>--openclaw-home <path>--json
Download and normalize open-source IOC feeds into local storage.
secopsai intel refresh
secopsai intel refresh --json
secopsai intel refresh --enrichOptions:
--timeout <seconds>— default20--enrich— perform lightweight local enrichment (DNS)--json
List locally stored IOCs.
secopsai intel list
secopsai intel list --limit 20 --jsonOptions:
--limit <n>— default50--json
Match stored IOCs against the latest OpenClaw replay and persist matches as findings.
secopsai intel match
secopsai intel match --limit-iocs 500 --json
secopsai intel match --replay data/openclaw/replay/labeled/current.jsonOptions:
--limit-iocs <n>— default2000--replay <path>— override replay file--json
Manage package allowlist entries in the active policy file.
secopsai supply-chain allowlist add --ecosystem pypi --package textual
secopsai supply-chain allowlist remove --ecosystem pypi --package textualOptions:
--ecosystem pypi|npm--package <name-or-wildcard>
Change a rule weight or enabled state.
secopsai supply-chain tune rule "wheel/sdist artifact divergence" --weight 1
secopsai supply-chain tune rule "manifest executable entrypoints" --disableOptions:
<rule_name>— exact rule name--weight <n>--disable--enable
Set a global, ecosystem, or package threshold.
secopsai supply-chain tune threshold --global-threshold --value 12
secopsai supply-chain tune threshold --ecosystem pypi --value 12
secopsai supply-chain tune threshold --package textual --package-ecosystem pypi --value 14Options:
--global-threshold--ecosystem pypi|npm--package <name>--package-ecosystem pypi|npm--value <n>
These commands can auto-refresh the pipeline before reading findings:
listshowmitigatecheck
Behavior:
- If a recent refresh exists inside the TTL window, secopsai reuses cached results.
- Default TTL is
60seconds. - Use
--cache-ttl <seconds>to change the window. - Use
--no-refreshto disable auto-refresh entirely.
Example:
secopsai list --severity high --cache-ttl 300
secopsai show OCF-XXXX --no-refreshsecopsai refresh --json
secopsai list --severity high --jsonsecopsai list --severity high --cache-ttl 300secopsai show OCF-XXXX --json
secopsai mitigate OCF-XXXX --jsonsecopsai intel refresh --json
secopsai intel match --limit-iocs 500 --json
secopsai list --severity medium --json --no-refreshsecopsai triage list --status open
secopsai triage investigate SCM-XXXX --search-root ~/secopsai --json
secopsai triage orchestrate --search-root ~/secopsai
secopsai triage queue
secopsai triage apply-action ACT-0001 --yes- Recommended installation path:
curl -fsSL https://secopsai.dev/install.sh | bash- The installer creates a virtualenv and installs the
secopsaiCLI into it. - The packaged install includes the runtime helper modules required by the CLI entrypoint.