executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
openclaw-audit-watchdogAutomated daily security audits for OpenClaw agents with email reporting. Runs deep audits and sends formatted reports.
Independent GitHub snapshot · Automated classification · Original documentation governs
You can get openclaw-audit-watchdog in two ways:
If you've installed clawsec-suite, you may already have this!
Openclaw-audit-watchdog is bundled alongside ClawSec Suite to provide crucial automated security audit capabilities. When you install the suite, if you don't already have the audit watchdog installed, it will be deployed from the bundled copy.
Advantages:
~/.openclaw/skills/openclaw-audit-watchdog/Install openclaw-audit-watchdog independently without the full suite.
When to use standalone:
Advantages:
Continue below for standalone installation instructions.
Create (or update) a daily cron job that:
openclaw security audit --jsonopenclaw security audit --deep --jsonSummarizes findings (critical/warn/info + top findings)
Sends the report to:
Default schedule: daily at 23:00 (11pm) in the chosen timezone.
Delivery:
Provisioning (MDM-friendly): prefer environment variables (no prompts).
Required env:
PROMPTSEC_DM_CHANNEL (e.g. telegram)PROMPTSEC_DM_TO (recipient id)Optional env:
PROMPTSEC_TZ (IANA timezone; default UTC)PROMPTSEC_HOST_LABEL (label included in report; default uses hostname)PROMPTSEC_INSTALL_DIR (stable path used by cron payload to cd before running runner; default: ~/.config/security-checkup)PROMPTSEC_GIT_PULL=1 (runner will git pull --ff-only if installed from git)Interactive install is last resort if env vars or defaults are not set.
even in that case keep prompts minimalistic the watchdog tool is pretty straight up configured out of the box.
Use the cron tool to create a job with:
schedule.kind="cron"schedule.expr="0 23 * * *"schedule.tz=<installer tz>sessionTarget="isolated"wakeMode="now"payload.kind="agentTurn"payload.deliver=trueCreate the job with a payload message that instructs the isolated run to:
openclaw security audit --jsonopenclaw security audit --deep --jsonInclude:
checkId + title + 1-line remediationmessage toolAttempt email delivery in this priority order:
A) If an email channel plugin exists in this deployment, use:
message(action="send", channel="email", target="target@example.com", message=<report>)B) Otherwise, fallback to local sendmail if available:
exec with: printf "%s" "$REPORT" | /usr/sbin/sendmail -t (construct To/Subject headers)If neither path is possible, still DM the user and include a line:
"NOTE: could not deliver to target@example.com (email channel not configured)"Before adding a new job:
cron.list(includeDisabled=true)"Daily security audit" exists, update it instead of adding a duplicate:
"Daily security audit (Prompt Security)"The cron’s report should suggest fixes but must not apply them.
Do not run openclaw security audit --fix unless explicitly asked.