- name
- secopsai
- description
- Conversational SecOps for OpenClaw audit logs. Run the live detection pipeline, inspect findings, triage incidents, and get mitigation guidance — all from chat.
SecOpsAI Skill for OpenClaw
This skill lets an OpenClaw agent:
- Run the secopsai OpenClaw detection pipeline
- List and summarise findings from the local SOC store
- Investigate and close findings by ID with the native triage workflow
- Run the native triage orchestrator, inspect queued actions, and apply approved actions
- Get structured mitigation steps for any finding
- Run a local-first threat intelligence (IOC) pipeline and match IOCs against OpenClaw replay
- Review PyPI and npm package releases for supply-chain compromise
- Suggest false-positive actions for suspicious supply-chain findings
Assumptions
secopsaiis installed at~/secopsai, preferably via a transparent repo checkout / manual setup flow such as:
- git clone https://github.com/Techris93/secopsai.git ~/secopsai - cd ~/secopsai && python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt
- OpenClaw audit logs are present at
~/.openclaw/logs/on the same host. - The agent has access to an
exectool to run shell commands. - The virtualenv at
~/secopsai/.venvis used for all commands.
If installation guidance is needed, prefer pointing users to the GitHub repo/manual setup path first. Only mention the hosted installer as an optional shortcut, not the default recommendation.
Safety defaults (read this)
This skill can run shell commands and can modify the local SOC store when performing triage.
- Prefer read-only operations by default (
list/show/check). - Before any write/triage action (
triage close,triage orchestrate,triage apply-action), require explicit user confirmation. - If you enable scheduled jobs, ensure they run under a controlled account and that automated writes are intended.
- Backup the SOC DB (
data/openclaw/findings/openclaw_soc.db) before enabling unattended automation.
Command Mappings
1. Show findings
User phrases:
- "show findings"
- "show today's findings"
- "list findings"
- "what findings do we have"
Exec command:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai list --severity info --json --cache-ttl 60(--json also works before the subcommand, e.g. secopsai --json list ....)
Agent behaviour:
- Parse the JSON payload from
secopsai list(field:findings). - For each finding, extract:
finding_id,severity,status,disposition,title. - Reply with:
- Total count - Count by severity (HIGH / MEDIUM / LOW / INFO) - List of HIGH (and MEDIUM) findings with ID and title
2. Run daily pipeline
User phrases:
- "run daily pipeline"
- "run secops scan"
- "refresh findings"
- "run live"
Exec command:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai refresh --json && \
secopsai list --severity high --json --cache-ttl 300Agent behaviour:
- Run the pipeline once (
refresh) and then list current high-severity findings. - From the
listJSON output, highlight NEW or HIGH/CRITICAL findings (based on
first_seen/last_seen fields when available).
Example reply:
Daily SecOps summary: 3 high-severity findings. - HIGH: OCF-C9D2523C770B6731 — OpenClaw Dangerous Exec / Tool Burst (status=open) - HIGH: OCF-62FA8D1D3578BF6E — OpenClaw Sensitive Config (status=open) Replytriage OCF-...to mark as reviewed, ormitigate OCF-...for remediation steps.
3. Investigate a finding
User phrases:
investigate SCM-<ID>triage OCF-<ID>investigate EXFIL-<ID>
Exec command:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai triage investigate <FINDING_ID> --search-root "$HOME/secopsai" --jsonAgent behaviour:
- Summarise:
- recommended disposition - dependency presence - policy matches - verdict explanation - next actions
- For supply-chain findings, if helpful, follow with:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai supply-chain suggest-fp-action <FINDING_ID> --search-root "$HOME/secopsai" --json4. Close a finding (WRITE)
Important: this modifies the local SOC store. Confirm with the user before running.
User phrases:
close SCM-<ID> as expected_behaviorclose OCF-<ID> as needs_review note "..."
Exec command pattern:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai triage close <FINDING_ID> --disposition <TYPE> --note "<analyst note>" --jsonAgent behaviour:
Confirm back with the final status and disposition.
5. Show a single finding in detail
User phrases:
show OCF-<ID>details OCF-<ID>
Exec command:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai show OCF-<ID> --jsonAgent behaviour:
Parse and summarise the JSON: title, severity, status, disposition, rule IDs, number of events, first/last seen. Prefer the structured fields from secopsai show and avoid re-parsing raw text.
6. Run the triage orchestrator (WRITE)
Important: this can auto-close clearly safe findings. Confirm with the user before running.
User phrases:
run triage orchestratororchestrate findingsprocess open findings
Exec command:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai triage orchestrate --search-root "$HOME/secopsai" --limit 20 --jsonAgent behaviour:
- Summarise:
- processed - auto_applied - queued - top per-finding outcomes
- If queued actions exist, offer:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai triage queue --jsonand, after approval:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai triage apply-action ACT-0001 --yes --json7. Check for malware or exfil
User phrases:
- "check malware"
- "check exfil"
- "check both"
- "any malware findings?"
Exec command pattern:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai check --type <malware|exfil|both> --severity medium --json --cache-ttl 60Agent behaviour:
Parse the JSON (check payload: findings_total, matched_count, high_or_above, top_matches) and reply with a compact summary:
Malware check: 2 matching findings (1 HIGH). Top: OCF-C9D2523C770B6731, HIGH — OpenClaw Dangerous Exec / Policy Denials.
8. Mitigate a finding (recommended actions)
User phrases:
mitigate OCF-<ID>show mitigation OCF-<ID>what should I do for OCF-<ID>
Exec command:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai mitigate OCF-<ID> --json --cache-ttl 60Expected JSON fields: finding_id, title, severity, status, disposition, rule_ids, recommended_actions (list of strings).
Agent behaviour:
Reply with a numbered list of the recommended_actions. Example:
Mitigation steps for OCF-C9D2523C770B6731 (HIGH — OpenClaw Dangerous Exec / Tool Burst): 1. Identify which agent or skill issued the dangerous execs and confirm business justification. 2. If unauthorized, disable or restrict that skill/tool configuration in OpenClaw. 3. Rotate any secrets used in the commands (tokens, SSH keys, API keys). 4. Add stricter policy/approval requirements for high-risk exec operations.
If recommended_actions is empty or missing:
No curated mitigation steps are available yet for this finding. Recommended next steps: review the associated events, confirm if the behaviour is expected, and restrict any over-permissive skills or credentials used.
Threat Intel (IOCs)
7. Refresh IOC feeds
User phrases:
- "refresh intel"
- "update iocs"
- "pull threat intel"
Exec command:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai intel refresh --jsonAgent behaviour:
- Parse JSON and report total IOCs and any feed errors.
- Do not call external paid enrichment APIs by default.
8. Match IOCs against OpenClaw replay
User phrases:
- "match intel"
- "check iocs"
- "any intel matches"
Exec command:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai intel match --limit-iocs 500 --jsonAgent behaviour:
- Parse
matched_findings. - If matches exist, list the top 3
TI-...finding IDs and titles and offershow TI-....
Supply Chain Monitoring
9. Scan a package release
User phrases:
- "scan this PyPI package release"
- "check this npm package version"
- "review package diff"
Exec command:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai supply-chain scan --ecosystem pypi --package requests --version 2.32.0 --jsonAgent behaviour:
- Parse
result.verdict,result.finding_id, andresult.report_path. - If verdict is
malicious, offershow <finding_id>.
10. Scan recent top-package releases
User phrases:
- "check recent package releases"
- "run supply chain monitor"
- "scan recent PyPI and npm releases"
Exec command:
cd "$HOME/secopsai" && source .venv/bin/activate && \
secopsai supply-chain once --top 1000 --lookback 600 --jsonAgent behaviour:
- Parse
total_scanned,malicious,benign,errors, andresults. - If malicious findings exist, list the
SCM-...IDs and package versions.
Daily Summary (OpenClaw cron)
Configure an OpenClaw cron job to drive the secopsai CLI and produce a concise chat summary.
- Schedule:
30 7 * * *(07:30 local) - Action (systemEvent text):
[SECOPS_DAILY_SUMMARY_TRIGGER] Run the SecOpsAI pipeline and summarise new/high
findings for this chat.
Suggested steps for the agent:
1) cd "$HOME/secopsai" && source .venv/bin/activate
2) secopsai refresh --json
3) secopsai list --severity high --json --cache-ttl 300
4) Focus on high/critical findings first_seen in the last 24h.
5) Post a compact summary back into this conversation.When this fires the agent should:
- Execute the
secopsaicommands viaexec. - Parse the JSON findings payload from
secopsai list --severity high --json. - Post a summary: total count, HIGH/CRITICAL breakdown, and top finding IDs with
titles and status.
- Invite the user to
triage OCF-...ormitigate OCF-...any flagged item.