openclaw-audit-watchdog
Automated daily security audits for OpenClaw agents with email reporting. Runs deep audits and sends formatted reports. Skill: openclaw-audit-watchdog Owner: davida-ps Summary: Automated daily security audits for OpenClaw agents with email reporting. Runs deep audits and sends formatted reports. Tags: latest:0.1.1 Version history: v0.1.1 | 2026-02-25T11:27:11.675Z | user Release 0.1.1 via CI v0.1.0 | 2026-02-16T16:56:06.117Z | user Release 0.1.0 via CI v0.0.4 | 2026-02-05T22:37:39.793Z | user Release 0.0.4 via CI v0.0.3 | 2026-02-05T2
Rank
62
Safety
84
Downloads
1.5k
Updated
Apr 15, 2026
Version
0.1.1
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 4/15/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Apr 15, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Apr 15, 2026
- Adoption signal
- 1.5K downloadsadoption · observed Apr 15, 2026
- Latest release
- 0.1.1release · observed Feb 25, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install kn76m78f01hqrtpgm895s0jsax80jd8v:openclaw-audit-watchdog- Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-davida-ps-openclaw-audit-watchdog/snapshot"
Documentation
CLAWHUB
62,623 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: openclaw-audit-watchdog
version: 0.1.1
description: Automated daily security audits for OpenClaw agents with email reporting. Runs deep audits and sends formatted reports.
homepage: https://clawsec.prompt.security
metadata: {"openclaw":{"emoji":"🔭","category":"security"}}
clawdis:
emoji: "🔭"
requires:
bins: [bash, curl]
---
# Prompt Security Audit (openclaw)
## Installation Options
You can get openclaw-audit-watchdog in two ways:
### Option A: Bundled with ClawSec Suite (Recommended)
**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:**
- Convenient - no separate download needed
- Standard location - installed to `~/.openclaw/skills/openclaw-audit-watchdog/`
- Preserved - if you already have audit watchdog installed, it won't be overwritten
- Single verification - integrity checked as part of suite package
### Option B: Standalone Installation (This Page)
Install openclaw-audit-watchdog independently without the full suite.
**When to use standalone:**
- You only need the audit watchdog (not other suite components)
- You want to install before installing the suite
- You prefer explicit control over audit watchdog installation
**Advantages:**
- Lighter weight installation
- Independent from suite
- Direct control over installation process
Continue below for standalone installation instructions.
---
## Goal
Create (or update) a daily cron job that:
1) Runs:
- `openclaw security audit --json`
- `openclaw security audit --deep --json`
2) Summarizes findings (critical/warn/info + top findings)
3) Sends the report to:
- a user-selected DM target (channel + recipient id/handle)
Default schedule: **daily at 23:00 (11pm)** in the chosen timezone.
Delivery:
- DM to last active session
## Usage Examples
### Example 1: Quick Start (Environment Variables)
For automated/MDM deployments, set environment variables before invoking:
```bash
export PROMPTSEC_DM_CHANNEL="telegram"
export PROMPTSEC_DM_TO="@yourhandle"
export PROMPTSEC_TZ="America/New_York"
export PROMPTSEC_HOST_LABEL="prod-server-01"
# Then invoke the skill
/openclaw-audit-watchdog
```
The skill will automatically configure and create the cron job without prompts.
### Example 2: Interactive Setup
If environment variables aren't set, the skill will prompt minimally:
```
User: /openclaw-audit-watchdog
Agent: Setting up daily security audit watchdog...
What channel should I use for delivery? (e.g., telegram, slack)
User: telegram
Agent: What's the recipient ID or handle?
User: @myhandle
Agent: Which timezone for the 23:00 daily run? (default: UTC)
User: America/Los_Angeles
Agent: ✓ Created cron job "Daily security audit (Prompt Security)"
Schedule: Daily at 23:00 America/examples/README.md
# Security Audit Configuration Examples
## Overview
This directory contains example configuration files for the OpenClaw security audit suppression mechanism.
## Configuration File Format
The suppression configuration file must be valid JSON with the following structure:
```json
{
"suppressions": [
{
"checkId": "skills.code_safety",
"skill": "clawsec-suite",
"reason": "First-party security tooling, reviewed 2026-02-13",
"suppressedAt": "2026-02-13"
}
]
}
```
### Required Fields
Each suppression entry must include:
- **`checkId`** (string, required): The security check identifier that flagged the finding
- Example: `"skills.code_safety"`, `"skills.permissions"`, `"skills.network"`
- **`skill`** (string, required): The exact skill name being suppressed
- Example: `"clawsec-suite"`, `"openclaw-audit-watchdog"`
- **`reason`** (string, required): Justification for the suppression (audit trail)
- Example: `"First-party security tooling, reviewed 2026-02-13"`
- Example: `"False positive - validated by security team on 2026-02-10"`
- **`suppressedAt`** (string, required): ISO 8601 date when suppression was added
- Format: `YYYY-MM-DD`
- Example: `"2026-02-13"`
### Configuration File Locations
The suppression config is loaded from these locations (in priority order):
1. **Custom path**: Specified via `--config` flag
2. **Environment variable**: `OPENCLAW_AUDIT_CONFIG` env var
3. **Primary default**: `~/.openclaw/security-audit.json`
4. **Fallback**: `.clawsec/allowlist.json`
If no config file is found, the audit runs normally without suppressions (backward compatible).
## Usage Examples
### Basic Setup
1. Copy the example config:
```bash
mkdir -p ~/.openclaw
cp security-audit-config.example.json ~/.openclaw/security-audit.json
```
2. Customize the suppressions for your needs
3. Run the audit:
```bash
openclaw security audit --deep
```
### Using Custom Config Path
```bash
openclaw security audit --deep --config /path/to/custom-config.json
```
### Managing False Positives
When you encounter a false positive:
1. Identify the `checkId` and `skill` name from the audit report
2. Add a suppression entry with a clear reason
3. Include the current date in ISO format
4. Re-run the audit to verify the suppression works
Example suppression entry:
```json
{
"checkId": "skills.permissions",
"skill": "my-internal-tool",
"reason": "Broad permissions required for legitimate functionality, approved by security team",
"suppressedAt": "2026-02-16"
}
```
## Important Notes
- **Transparency**: Suppressed findings remain visible in the audit report under "INFO - SUPPRESSED"
- **Matching**: Suppressions require BOTH `checkId` AND `skill` to match (prevents over-suppression)
- **Audit Trail**: Always document the reason and date for compliance
- **Validation**: The config is validated on load - malformed JSON will produce a clear error
## Example Use Case: First-Party Tools
The example config deREADME.md
# OpenClaw Audit Watchdog 🔭 Automated daily security audits for OpenClaw/Clawdbot agents with email reporting. ## Overview The Audit Watchdog provides automated security monitoring for your OpenClaw agent deployments: - **Daily Security Scans** - Scheduled via cron for continuous monitoring - **Deep Audit Mode** - Comprehensive analysis of agent configurations and behavior - **Email Reporting** - Formatted reports delivered to your security team - **Git Integration** - Optionally syncs latest configurations before audit ## Quick Start ```bash # Install skill mkdir -p ~/.openclaw/skills/openclaw-audit-watchdog cd ~/.openclaw/skills/openclaw-audit-watchdog # Download and extract curl -sSL "https://github.com/prompt-security/clawsec/releases/download/$VERSION_TAG/openclaw-audit-watchdog.skill" -o watchdog.skill unzip watchdog.skill # Configure export PROMPTSEC_EMAIL_TO="[email protected]" export PROMPTSEC_HOST_LABEL="prod-agent-1" # Run ./scripts/runner.sh ``` ## Configuration | Variable | Description | Default | |----------|-------------|---------| | `PROMPTSEC_EMAIL_TO` | Email recipient for reports | `[email protected]` | | `PROMPTSEC_HOST_LABEL` | Host identifier in reports | hostname | | `PROMPTSEC_GIT_PULL` | Pull latest before audit (0/1) | `0` | | `OPENCLAW_AUDIT_CONFIG` | Path to suppression config file | Auto-detected | ### Path Expansion and Quoting - `PROMPTSEC_INSTALL_DIR` and `OPENCLAW_AUDIT_CONFIG` support `~`, `$HOME`, `${HOME}`, `%USERPROFILE%`, and `$env:USERPROFILE`. - In `bash`/`zsh`, use double quotes for expandable paths: - `export PROMPTSEC_INSTALL_DIR="$HOME/.config/security-checkup"` - Avoid single-quoted literals such as `'$HOME/.config/security-checkup'`. - In PowerShell: - `$env:PROMPTSEC_INSTALL_DIR = Join-Path $HOME ".config/security-checkup"` ## Suppression / Allowlist Manage false-positive findings with the built-in suppression mechanism. Suppressed findings remain visible in reports but are demoted to informational status and do not count toward critical/warning totals. Suppression is **opt-in with defense in depth**: the audit pipeline requires BOTH a CLI flag AND a config-file sentinel before any finding is suppressed. This prevents accidental or unauthorized suppression. ### Activation (Two Gates) Both of the following must be true for audit suppressions to take effect: 1. **CLI flag:** Pass `--enable-suppressions` when invoking the runner. 2. **Config sentinel:** The configuration file must contain `"enabledFor": ["audit"]` (or a list that includes `"audit"`). If either gate is missing, the suppression list is ignored entirely and all findings are reported normally. ### Config File Resolution The audit scanner resolves the suppression config file using this 4-tier priority: 1. `--config <path>` CLI argument (highest priority) 2. `OPENCLAW_AUDIT_CONFIG` environment variable 3. `~/.openclaw/security-audit.json` 4. `.clawsec/allowlist.json` (fallback) ### Example Configuration `
_meta.json
{
"ownerId": "kn76m78f01hqrtpgm895s0jsax80jd8v",
"slug": "openclaw-audit-watchdog",
"version": "0.1.1",
"publishedAt": 1772018831675
}CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.1]
### Added
- Contributor credit: portability and path-hardening improvements in this release were contributed by [@aldodelgado](https://github.com/aldodelgado) in PR #62.
- Cross-shell home-path expansion support in watchdog path inputs (`~`, `$HOME`, `${HOME}`, `%USERPROFILE%`, `$env:HOME`).
- Regression coverage for suppression-config home-token expansion and escaped-token rejection (`test/suppression_config.test.mjs`).
### Changed
- `scripts/codex_review.sh` now resolves the Codex CLI from `CODEX_BIN`, then `PATH`, then Homebrew fallback for improved portability.
- `scripts/setup_cron.mjs` now normalizes and validates install-dir/home-derived paths before job creation.
- `scripts/load_suppression_config.mjs` now resolves/normalizes configured file paths consistently across shell styles.
### Security
- Escaped or unresolved home tokens in suppression config paths now fail fast to avoid silently using unintended literal paths.
## [0.1.0]
### Added
- Suppression/allowlist mechanism with explicit opt-in gating (defense in depth).
- `--enable-suppressions` CLI flag for `run_audit_and_format.sh`, `render_report.mjs`, and `runner.sh`.
- `enabledFor` config sentinel -- config must declare `"enabledFor": ["audit"]` for audit suppression to activate.
- 4-tier config file resolution: explicit `--config` path > `OPENCLAW_AUDIT_CONFIG` env var > `~/.openclaw/security-audit.json` > `.clawsec/allowlist.json`.
- `INFO-SUPPRESSED` section in report output showing suppressed findings with metadata.
- Integration tests for suppression behavior (11 tests in `render_report_suppression.test.mjs`).
- Unit tests for config loading and opt-in gating (15 tests in `suppression_config.test.mjs`).
- Test fixtures: `empty-suppressions.json`, `invalid-json.json`, `malformed-config.json`.
### Changed
- `load_suppression_config.mjs` now requires explicit `{ enabled: true }` parameter -- returns empty suppressions by default.
- `render_report.mjs` passes suppression enabled state to config loader.
- Summary counts in report output are recalculated after filtering suppressed findings.
### Security
- Suppression is never active by default -- requires BOTH CLI flag AND config sentinel (defense in depth).
- Environment variables alone cannot activate suppression (prevents ambient attack vector).AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/davida-ps/openclaw-audit-watchdog",
"sourceUrl": "https://clawhub.ai/davida-ps/openclaw-audit-watchdog",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-davida-ps-openclaw-audit-watchdog/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-davida-ps-openclaw-audit-watchdog/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.5K downloads",
"href": "https://clawhub.ai/davida-ps/openclaw-audit-watchdog",
"sourceUrl": "https://clawhub.ai/davida-ps/openclaw-audit-watchdog",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.1.1",
"href": "https://clawhub.ai/davida-ps/openclaw-audit-watchdog",
"sourceUrl": "https://clawhub.ai/davida-ps/openclaw-audit-watchdog",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-25T11:27:11.675Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-davida-ps-openclaw-audit-watchdog/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-davida-ps-openclaw-audit-watchdog/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.1.1",
"description": "Release 0.1.1 via CI",
"href": "https://clawhub.ai/davida-ps/openclaw-audit-watchdog",
"sourceUrl": "https://clawhub.ai/davida-ps/openclaw-audit-watchdog",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-25T11:27:11.675Z",
"isPublic": true
}
]
}Record generated Oct 9, 2026.
