# Send OCC for OpenClaw to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-occ",
    "name": "OCC for OpenClaw",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/mikeargento/openclaw-occ",
    "canonicalUrl": "https://clawhub.ai/mikeargento/openclaw-occ",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/openclaw-occ",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-occ",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "openclaw-occ",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-02T19:38:11.907Z",
      "expiresAt": "2026-05-09T19:38:11.907Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-occ",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-occ",
        "contentDisposition": "attachment; filename=\"openclaw-occ-1.1.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "openclaw-occ"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/openclaw-occ"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-occ",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-occ",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-occ/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-occ/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-occ/agent.md"
  }
}
```
## Documentation

### What this skill does

openclaw-occ is an OpenClaw plugin that commits a cryptographic OCC (Origin Controlled Computing) proof after every tool the agent runs — bash commands, file reads, browser navigation, API calls. Proofs are stored locally in ~/.openclaw/workspace/occ-proofs/ as append-only JSONL files.

If a malicious skill or prompt injection causes unauthorized actions, those actions either appear in the proof log without a valid signature, or are absent entirely — making the attack visible in the audit trail.

Why OCC proofs are different from regular logs: a log is written by the system being monitored and can be deleted without leaving a trace. An OCC proof is committed to an external notary by the OpenClaw runtime automatically — the model's instructions cannot suppress it. Proofs are chained by a monotonic counter, so a gap (e.g. counter jumps from 41 to 43) is itself evidence of a suppressed action. Signatures are Ed25519 and verifiable offline — no trust in the notary is required to audit your trail.

Use this skill to help users install the plugin, configure it, and understand their audit results.

### Privacy & data

What the notary receives: each proof contains the tool name (e.g. bash, read), a timestamp, a SHA-256 hash chained to the previous proof, and a monotonic counter. It does not contain the content of tool inputs or outputs — no file contents, no bash commands, no API responses. Source: lib/notary.js

Zero-network option: set "mode": "stub" in ~/.openclaw/workspace/occ.json. All proofs are stored locally as SHA-256 hashes with no outbound requests.

Self-hosting: run your own Cloudflare Worker notary (see Self-hosting section) so no proof data ever leaves your infrastructure.

### Installing the plugin

Tell the user to run these commands:

npm install -g openclaw-occ
openclaw-occ install

Then restart OpenClaw. It will discover the plugin automatically on next start (it scans for openclaw.extensions in package.json).

### Configuring

Create ~/.openclaw/workspace/occ.json. There are three modes:

ModeWhat it doesstubLocal SHA-256 only. No network call. Good for offline or privacy-first use.remotePOST to one notary. Returns a signed proof with Ed25519 signature + monotonic counter. Default.teePOST to multiple notaries simultaneously. Best for compliance or redundancy.

Default config (uses the hosted OCC notary, no setup needed):

{
  "mode": "remote",
  "notaries": ["https://occ-notary.gjp9tm85hq.workers.dev/commit"]
}

Tee mode (your own notary + hosted fallback):

{
  "mode": "tee",
  "notaries": [
    "https://my-own-notary.example.com/commit",
    "https://occ-notary.gjp9tm85hq.workers.dev/commit"
  ]
}

### Checking the audit trail

In chat (type in any connected chat — WhatsApp, Telegram, Slack, Discord):

occ audit — today's summary: action count, proof status, last tool run
occ verify bash — re-verify the last 5 bash tool proofs against the notary

In terminal:

npx occ-verify                       # recent proofs (last 7 days)
npx occ-verify --verbose             # full detail per proof
npx occ-verify --check               # re-verify all proofs against notary
npx occ-verify --tool bash           # filter by tool name
npx occ-verify --date 2026-02-27     # filter to a specific date
npx occ-verify --session <id>        # filter by session
npx occ-verify --json                # raw JSON output (for piping / scripting)

In the Control UI: the OCC panel shows every action with its timestamp, tool name, proof hash, mode indicator, and one-click verification.

### Interpreting proof status

🔏 signed — proof was committed to the notary; carries an Ed25519 signature + monotonic counter
⚪ stub — local SHA-256 only (mode is stub, or notary was unreachable)
⚠ failed — notary unreachable; a fallback proof was stored so the gap remains visible

Counter gaps matter. If the counter jumps from 41 to 43, proof 42 is missing — potentially evidence of a suppressed or injected action.

### Self-hosting a notary

If the user wants full control and offline verification, they can deploy their own Cloudflare Worker notary.

Prerequisites: a Cloudflare account with Workers and KV enabled, and Wrangler authenticated (npx wrangler login).

cd ~/.openclaw/extensions/openclaw-occ/notary-worker
npx wrangler kv:namespace create OCC_PROOFS
# Copy the output ID into wrangler.toml under [[kv_namespaces]]
npx wrangler deploy

After deploy, save the public key for offline verification:

curl https://your-worker.workers.dev/key
# → { "publicKeyB64": "...", "version": "occ/1" }

Then update ~/.openclaw/workspace/occ.json:

{
  "mode": "remote",
  "notaries": ["https://your-worker.workers.dev/commit"]
}

### Proof storage location

~/.openclaw/workspace/occ-proofs/
  2026-02-27.jsonl
  2026-02-26.jsonl
  …

One JSONL file per day. Append-only. Crash-safe. Easy to grep, archive, or pipe into other tools.

### More info

Plugin: npm install openclaw-occ
Docs: https://occprotocol.com/openclaw
Source: https://github.com/mikeargento/occ-core
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: mikeargento
- Version: 1.1.1
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-02T19:38:11.907Z
- Expires at: 2026-05-09T19:38:11.907Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/openclaw-occ)
- [Send to Agent page](https://openagent3.xyz/skills/openclaw-occ/agent)
- [JSON manifest](https://openagent3.xyz/skills/openclaw-occ/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/openclaw-occ/agent.md)
- [Download page](https://openagent3.xyz/downloads/openclaw-occ)