CLI Reference
This page documents the secopsai command-line interface.
Global usage
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 --json
GitHub Actions Usage
For CI workflows, the published SecOpsAI Supply-Chain Guard GitHub Marketplace Action wraps selected CLI modes with fixed, constrained execution:
- uses: Techris93/secopsai-action@v1.0.0
with:
mode: advisory-check
ecosystem: npm
package: node-ipc
version: 12.0.1
AI Dependency Guard is currently invoked through the Core CLI. The published
v1.0.0 Marketplace Action does not advertise that mode.
Distribution and Marketplace maintenance details live in GitHub Distribution and GitHub Marketplace.
Command overview
Specialist Orchestrator commands
secopsai specialists status --json
secopsai specialists catalog --json
secopsai specialists route --input task.json --tier recommend --json
secopsai specialists create --input task.json --tier read_only --enqueue --json
secopsai specialists auto-route --input task.json --json
secopsai specialists runs --limit 25 --json
secopsai specialists show SOR-XXXXXXXXXXXXXXXX --json
secopsai specialists approve SOR-XXXXXXXXXXXXXXXX --json
secopsai specialists execute SOR-XXXXXXXXXXXXXXXX --json
secopsai specialists cancel SOR-XXXXXXXXXXXXXXXX --json
secopsai specialists policy --mode guarded --maximum-automatic-tier read_only --json
route is a read-only contract preview. create stores a durable run, and
--enqueue is accepted only for the read_only tier. approve and execute
are separate steps for worktree and pr_ready runs. Automatic policy can use
only recommend or read_only; it cannot edit repositories.
Task JSON accepts bounded fields such as title, description, domain,
priority, status, owner_role, reviewer_role, repo_alias,
evidence_refs, external_facing, and requires_security_review.
repo_alias is restricted to the repositories explicitly allowlisted by Core.
See Specialist Orchestrator for routing, OpenCodex model snapshots, profile provenance, approval, and recovery behavior.
Enterprise security commands
secopsai enterprise status --json
secopsai enterprise ingest --source aws.cloudtrail --input fixture.json --json
secopsai enterprise kubernetes-scan --path deployment.yaml --json
secopsai enterprise dast-validate --target-id web-1 --url https://app.example --owner security --authorized-by change-123 --json
secopsai enterprise prioritize-vulnerability --input vulnerability.json --json
Enterprise commands use bounded, redacted, organization-scoped records. Cloud and active-scan actions are read-only or approval-gated by design.
OSS artifact fleet commands
secopsai artifact-fleet index --since 24h --limit 1000 --json
secopsai artifact-fleet status --json
secopsai artifact-fleet source-health --json
secopsai artifact-fleet scan --since 24h --workers 8 --json
secopsai artifact-fleet triage --limit 500 --json
secopsai artifact-fleet triage --limit 500 --enqueue-model --model xai/grok-4.6 --json
secopsai artifact-fleet analyst-queue --limit 100 --json
secopsai artifact-fleet metrics --json
secopsai artifact-fleet benchmark --artifacts 1000 --workers 4 --fixture-mode --json
secopsai artifact-fleet cycle --since 24h --limit 1000 --workers 4 --json
The fleet indexes metadata first, scans only authorized artifacts, sends only rule-hit context to model triage, and leaves suspicious or inconclusive work for analyst review.
Universal source-first research
secopsai research investigate --ecosystem crates --research-type package_compromise --package proc-macro1 --version 1.0.107 --dry-run --json
secopsai research investigate --ecosystem npm --research-type package_compromise --package suspicious-package --version 1.2.3 --persist-findings --json
The same command supports npm, PyPI, crates.io, Packagist, Go, Maven, NuGet,
RubyGems, Open VSX, GitHub, Hugging Face, containers, and approved local
artifacts. It verifies metadata and checksums where available, performs
static-only analysis, and optionally creates a Research Case and review-only
draft. research rust-package remains a compatibility alias.
Execution-grounded reliability commands
secopsai research reliability generate-hypotheses RSC-... --json
secopsai research reliability rank-hypotheses RSC-... --candidate-budget 6 --comparison-budget 15 --json
secopsai research reliability plan RSC-... --json
secopsai research reliability run-scaffold RSC-... --json
secopsai research reliability verify-transition RSC-... --json
secopsai research reliability run-full RSC-... --json
secopsai research reliability build-claim-ledger RSC-... --json
secopsai research reliability verify-claims RSC-... --json
secopsai research reliability clip-claims RSC-... --json
secopsai research reliability queue-specialist RSC-... --json
secopsai research reliability queue-blind-review RSC-... --json
secopsai research reliability adjudicate-review SOR-... --decision accept_primary --rationale "Evidence-backed rationale of at least twenty characters." --json
secopsai research reliability audit-completeness RSC-... --json
secopsai research reliability audit-originality RSC-... --json
secopsai research reliability visual-qa RSC-... --json
secopsai research reliability benchmark --json
These commands are also available as typed Mission Control actions. They persist plan revisions, immutable run bundles, claim revisions, reviewer disagreement, and audit results; they never execute an artifact or publish a draft. See Research Reliability Operations.
Triage commands
secopsai triage list
List findings from the SOC store by triage status.
secopsai triage list --status open --limit 20
secopsai triage list --status in_review --json
Options:
--status open|in_review|closed|triaged--limit <n>— default50--json
secopsai triage start <finding_id>
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
secopsai triage investigate <finding_id>
Gather evidence, classify the finding type, and write case files.
secopsai triage investigate SCM-XXXX --search-root ~/secopsai --json
Options:
--search-root <path>— where local dependency or repo references are checked--json
Writes:
reports/triage/<finding_id>.jsonreports/triage/<finding_id>.md
secopsai triage close <finding_id>
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
secopsai triage orchestrate
Run the guarded triage orchestrator across open findings.
secopsai triage orchestrate --search-root ~/secopsai
secopsai triage orchestrate --limit 10 --json
Options:
--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
secopsai triage queue
Show queued orchestrator actions awaiting analyst application.
secopsai triage queue
secopsai triage queue --json
Options:
--queue-file <path>— override queue path--json
secopsai triage apply-action <action_id>
Apply one queued action after analyst review.
secopsai triage apply-action ACT-0001 --yes
Options:
--queue-file <path>— override queue path--yes— skip interactive confirmation--json
secopsai triage summary
Generate a compact summary of current triage and queue state.
secopsai triage summary
secopsai triage summary --json
Options:
--limit <n>— how many recent summary entries to include--queue-file <path>— override queue path--json
secopsai refresh
Run the full OpenClaw live pipeline by default, or collect from selected platform adapters such as Hermes, macOS, Linux, and Windows.
secopsai refresh
secopsai refresh --json
secopsai refresh --skip-export
secopsai refresh --platform hermes
secopsai refresh --platform macos,openclaw,hermes
Options:
--skip-export— reuse existing exported OpenClaw native telemetry--openclaw-home <path>— overrideOPENCLAW_HOME--platform <list>— comma-separated adapter list, for examplehermes,macos,openclaw, ormacos,openclaw,hermes--verbose— verbose refresh output--json— machine-friendly output
Returns:
- whether export ran
- output paths for audit/replay/findings
- total findings
- total detections
secopsai list
List findings from the local SOC store.
secopsai list
secopsai list --severity high
secopsai list --limit 20 --json
Options:
--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.
secopsai show <finding_id>
Show one finding in detail.
secopsai show OCF-XXXX
secopsai show OCF-XXXX --json
Options:
--no-refresh--cache-ttl <seconds>--openclaw-home <path>--json
secopsai mitigate <finding_id>
Show recommended mitigation actions for a finding.
secopsai mitigate OCF-XXXX
secopsai mitigate OCF-XXXX --json
Options:
--no-refresh--cache-ttl <seconds>--openclaw-home <path>--json
secopsai check --type malware|exfil|both
Run a quick presence check against existing findings.
secopsai check --type malware
secopsai check --type exfil --severity medium --json
secopsai check --type both --no-refresh
Options:
--type malware|exfil|both— required--severity info|low|medium|high|critical— defaultlow--no-refresh--cache-ttl <seconds>--openclaw-home <path>--json
Threat intelligence commands
secopsai intel refresh
Download and normalize open-source IOC feeds into local storage.
secopsai intel refresh
secopsai intel refresh --json
secopsai intel refresh --enrich
Options:
--timeout <seconds>— default20--enrich— perform lightweight local enrichment (DNS)--json
secopsai intel list
List locally stored IOCs.
secopsai intel list
secopsai intel list --limit 20 --json
Options:
--limit <n>— default50--json
secopsai intel match
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.json
Options:
--limit-iocs <n>— default2000--replay <path>— override replay file--json
AI Dependency Guard
secopsai supply-chain ai-dependency-guard
Scan AI-built code and optional AI-agent telemetry for hallucinated, newly-registered, or lookalike dependencies.
secopsai supply-chain ai-dependency-guard --path . --json
secopsai supply-chain ai-dependency-guard --path . --include-agent-logs --agent-source auto --json
secopsai supply-chain ai-dependency-guard --path . --fail-on high --json
Options:
--path <path>— repository or file to scan--include-agent-logs— include local OpenClaw/Hermes/session telemetry--agent-source auto|openclaw|hermes|sessions--ecosystem <name>— repeatable ecosystem filter--fail-on high|critical— opt-in CI failure threshold--persist-findings— persist high-confidence findings to the local SOC store--report-path <path>— write the full JSON report
The command reads registry metadata only and does not install, import, or execute package code.
Supply-chain policy commands
secopsai supply-chain allowlist add|remove
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 textual
Options:
--ecosystem pypi|npm--package <name-or-wildcard>
secopsai supply-chain tune rule
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" --disable
Options:
<rule_name>— exact rule name--weight <n>--disable--enable
secopsai supply-chain tune threshold
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 14
Options:
--global-threshold--ecosystem pypi|npm--package <name>--package-ecosystem pypi|npm--value <n>
Auto-refresh behavior
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-refresh
Common command patterns
Run the pipeline and inspect findings
secopsai refresh --json
secopsai list --severity high --json
Reuse recent results for 5 minutes
secopsai list --severity high --cache-ttl 300
Inspect and mitigate a finding
secopsai show OCF-XXXX --json
secopsai mitigate OCF-XXXX --json
Threat intel workflow
secopsai intel refresh --json
secopsai intel match --limit-iocs 500 --json
secopsai list --severity medium --json --no-refresh
Native triage workflow
secopsai 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
Installer/runtime notes
- Recommended installation path:
curl -fsSL https://secopsai.dev/install.sh | bash
secopsai hermes
Install the complete Hermes Agent integration with:
curl -fsSL https://secopsai.dev/install-hermes.sh | bash
Inspect and refresh the integration:
secopsai hermes doctor
secopsai hermes refresh
secopsai hermes service status
secopsai hermes service run-now
secopsai hermes service logs
Service lifecycle actions are install, start, stop, status, run-now, logs, and uninstall. Installation accepts --interval, --hermes-home, --db-path, and --no-start. The minimum interval is 60 seconds and the default is 300 seconds.
- Public npm OpenClaw plugin:
openclaw plugins install secopsai
- The Core installer creates a virtualenv and installs the
secopsaiCLI into it. - The packaged install includes the runtime helper modules required by the CLI entrypoint.