@wsl8297: 做 Agent 最怕的场景,是它把危险命令当正常步骤执行,HOL Guard 就是冲着这个问题来的。 GitHub:https://github.com/hashgraph-online/hol-guard… 官网:https://hol…

X AI KOLs Timeline 工具

摘要

HOL Guard 是一个开源安全工具,为 Codex、Claude Code 等开发 Agent 提供危险命令识别、拦截和审计功能,支持多档保护级别和本地审批中心,防止误删改等风险。

做 Agent 最怕的场景,是它把危险命令当正常步骤执行,HOL Guard 就是冲着这个问题来的。 GitHub:https://github.com/hashgraph-online/hol-guard… 官网:https://hol.org 给 Codex、Claude Code、Cursor、Gemini、OpenCode 这类开发 Agent 加一层安全拦截,在工具执行前识别危险提示、拦截高风险操作,支持 4 档保护级别和本地审批中心。 适用场景: • 已经让 Agent 进项目目录、需要防止误删改的开发者 • 对 MCP 插件、Skills 不放心、想先扫描再运行的团队 • 需要审计记录每次 Agent 操作的安全敏感项目 • 想在 CI 环境验证插件包安全性的维护者 如果你已经开始让 Agent 自动执行命令,这类安全边界工具要早点看。
查看原文
查看缓存全文

缓存时间: 2026/05/23 14:14

做 Agent 最怕的场景,是它把危险命令当正常步骤执行,HOL Guard 就是冲着这个问题来的。

GitHub:https://github.com/hashgraph-online/hol-guard…

官网:https://hol.org

给 Codex、Claude Code、Cursor、Gemini、OpenCode 这类开发 Agent 加一层安全拦截,在工具执行前识别危险提示、拦截高风险操作,支持 4 档保护级别和本地审批中心。

适用场景: • 已经让 Agent 进项目目录、需要防止误删改的开发者 • 对 MCP 插件、Skills 不放心、想先扫描再运行的团队 • 需要审计记录每次 Agent 操作的安全敏感项目 • 想在 CI 环境验证插件包安全性的维护者

如果你已经开始让 Agent 自动执行命令,这类安全边界工具要早点看。


hashgraph-online/hol-guard

Source: https://github.com/hashgraph-online/hol-guard

HOL Guard

HOL Guard Version Plugin Scanner Version HOL Guard Downloads Plugin Scanner Downloads Python 3.10+ CI Publish Container Image OpenSSF Scorecard License GitHub Stars Lint: ruff

Hashgraph Online LogoProtect your harness locally with hol-guard. Use plugin-scanner when you need maintainer and CI checks for plugins, skills, MCP servers, and marketplace packages.

PyPI Package (hol-guard)
PyPI Package (plugin-scanner)
HOL Plugin Registry
HOL GitHub Organization
Report an Issue

Start Here

If you want to…InstallStart with
protect Codex, Claude Code, Copilot CLI, Hermes, Cursor, Gemini, or OpenCode before tools runhol-guardhol-guard start
lint and verify packages in CI before releaseplugin-scannerplugin-scanner verify .

Guard Quickstart

pipx install hol-guard
hol-guard init

hol-guard init is the first-run guided setup. It shows a progressive plan first, then gates each side effect: approve dashboard, Guard completes it, then approve app protection, Guard completes it, then approve Cloud connect and notifications. Nothing opens or changes until you approve that checkpoint. Use hol-guard init --yes only for automation when you already trust the plan.

Manual and follow-up commands:

pipx run hol-guard bootstrap
pipx run hol-guard hermes bootstrap
pipx run hol-guard run codex --dry-run
pipx run hol-guard run codex
pipx run hol-guard approvals
pipx run hol-guard receipts
pipx run hol-guard status
pipx run hol-guard connect
pipx run hol-guard connect status
pipx run hol-guard connect repair
pipx run hol-guard sync
pipx run hol-guard supply-chain sync
pipx run hol-guard supply-chain scan
pipx run hol-guard supply-chain explain [email protected] --ecosystem npm
pipx run hol-guard explain install-connect

What you get from Guard:

  • Detects local harness config on your machine
  • Records a baseline before you trust a tool
  • Pauses cleanly on new or changed artifacts before launch
  • Queues blocked changes in a localhost approval center when the harness cannot prompt inline
  • Stores receipts locally so you can review decisions later
  • Keeps sync optional until you actually want shared history

See docs/guard/get-started.md for the full local flow.

Guard commands at a glance
  • hol-guard start Shows the next step for the harnesses Guard found.
  • hol-guard init Runs first-run onboarding as approval checkpoints: local dashboard, harness discovery and install, optional Guard Cloud connect, and desktop notification setup.
  • hol-guard bootstrap Detects the best local harness, starts the approval center, and installs Guard in front of it.
  • hol-guard hermes bootstrap Installs the Guard-managed Hermes overlay bundle directly.
  • hol-guard status Shows what Guard is watching now.
  • hol-guard install <harness> Creates the launcher shim for that harness.
  • hol-guard update Updates the installed hol-guard package in the current environment.
  • hol-guard run <harness> --dry-run Records the current state once before you trust it.
  • hol-guard run <harness> Reviews changes before launch and hands blocked sessions to the approval center when needed.
  • hol-guard approvals Lists pending approvals or resolves them from the terminal.
  • hol-guard receipts Shows local approval and block history.
Harness approval strategy
  • claude-code Guard prefers Claude hooks first, then the local approval center when the shell cannot prompt.
  • copilot Guard can wrap the copilot CLI, detect ~/.copilot/config.json, ~/.copilot/mcp-config.json, workspace .vscode/mcp.json, and install Guard-managed Copilot hook wiring for documented preToolUse and postToolUse events. Guard does not treat a VS Code Copilot inline permission sheet by itself as proof of Guard interception; current proof should come from Guard hook responses, Guard receipts, or an MCP client that explicitly answers Guard elicitation.
  • codex Guard asks inline in the same Codex chat when the interactive CLI or Codex App can answer MCP elicitations, and falls back to the local approval center only for codex exec or any other nonresponsive session. When Guard has the right Codex thread binding, approving or blocking in the browser resumes the same Codex thread with HOL Guard-branded continuation copy. Live app-server sessions continue in place, and headless codex exec sessions resume through codex exec resume with the exact blocked command context. If the session cannot be identified, Guard says so plainly and tells you the manual next step instead of pretending it resumed.
  • cursor Guard respects Cursor’s native tool approval and focuses on artifact trust before launch.
  • opencode Guard authors package-level policy while OpenCode keeps native once, always, or reject prompts for managed MCP tools.
  • hermes Guard installs a managed Hermes overlay bundle, routes MCP servers through Guard proxies, and prefers native-or-center delivery for blocked requests.
  • gemini Guard scans extensions and falls back to the local approval center for blocked changes.

Guard: Protection Levels

HOL Guard is antivirus for AI harnesses. It intercepts every tool action before your files change or your network is contacted, then decides in milliseconds whether to allow or block.

Choose a protection level with hol-guard settings set security-level <level>:

LevelWho it’s forWhat it blocks
GentleTeams who want minimal friction; experienced usersHigh-confidence secrets and clear exfil only
BalancedMost users (default)Secrets, shell exfil, prompt injections, supply-chain hooks
StrictSecurity-conscious teamsEverything above plus low-confidence signals and untrusted prompts
ParanoidHigh-security environmentsAll the above plus any unrecognized MCP server action

If you are unsure, start with Balanced. You can promote to Strict after reviewing your first week of receipts.

Guard: Troubleshooting

Why was my command paused?

Guard paused a command because one or more detectors fired. To see exactly what triggered:

hol-guard receipts          # review recent decisions
hol-guard doctor            # run a probe and see which detectors are active
hol-guard doctor --perf     # include per-detector timing

If the block looks like a false positive, you can approve it from the receipts view or from the dashboard at http://localhost:6174.

How do I clear approvals?

From the terminal:

hol-guard approvals         # list pending approvals
hol-guard approvals clear   # clear all pending approvals (prompts for confirmation)

From the dashboard: open http://localhost:6174, go to the Approval Center, and use the Clear all button. You will be asked to confirm before any approvals are removed.

Guard: Advisory Sync Privacy

Guard’s advisory database updates are optional and pull-only. When you run hol-guard advisories sync, Guard fetches a signed advisory list from advisories.hol.org. No local file paths, harness configs, receipt data, or workspace identifiers are sent to any server during sync.

Advisory sync requires a HOL Guard Cloud account. If you have not signed in, sync is skipped and Guard continues using the locally bundled advisory database. Run hol-guard login to connect a free account.

Scanner Quickstart

pipx install plugin-scanner
plugin-scanner lint .
plugin-scanner verify .
# GitHub Actions PR gate
- name: AI plugin quality gate
  uses: hashgraph-online/ai-plugin-scanner-action@v1
  with:
    plugin_dir: "."
    fail_on_severity: high
    min_score: 80

When to add plugin-scanner:

  • You publish plugins, skills, or marketplace packages
  • You want a CI gate before release
  • You need SARIF, verification payloads, or submission artifacts

If your repository uses a Codex marketplace root like .agents/plugins/marketplace.json, keep plugin_dir: ".". The scanner will discover local ./plugins/... entries automatically, scan each local plugin manifest, and skip remote marketplace entries instead of treating the repo root as a single plugin.

Need More Detail?

Scanner reference: trust scoring, installs, ecosystems, and CLI commands

How Trust Scoring Works

The scanner now emits explicit trust provenance alongside the quality grade:

  • bundled skills use the published HCS-28 baseline adapter ids, weights, and denominator rules directly
  • MCP configuration trust uses the same HCS-style adapter, weight, and contribution-mode pattern locally
  • top-level Codex plugin trust uses the same HCS-style adapter, weight, and contribution-mode pattern locally

Current local specs:

This keeps the quality grade and the trust score separate. Signals like SECURITY.md remain visible, but their weight is now a named adapter weight rather than an inferred side effect of raw category points.

Quick Start For Contributors

git clone https://github.com/hashgraph-online/hol-guard.git
cd hol-guard
uv sync --extra dev --extra cisco
pytest -q

Use uv sync --extra dev --python 3.10 when you need the lean baseline path without the Cisco MCP extra.

Install The Package You Need

Lean baseline install

Guard package:

pip install hol-guard

Scanner package:

pip install plugin-scanner

The lean baseline keeps Python 3.10 support intact and always includes the shipped cisco-ai-skill-scanner integration.

Full Cisco coverage

Install the Cisco extra on Python 3.11+ when you want static MCP coverage in addition to the baseline skill scanner:

pip install "hol-guard[cisco]"
pip install "plugin-scanner[cisco]"

cisco-ai-mcp-scanner stays in the optional cisco extra because it is Python 3.11+ only and adds a heavier YARA-backed install surface than the lean baseline should require. Cisco currently supports the patched litellm==1.83.10 release across the scanner install surface, so this repository keeps that Cisco-compatible pin for full coverage.

On Guard surfaces, the Cisco extra adds optional offline evidence to hol-guard scan, hol-guard preflight, and hol-guard explain <path>. Use --cisco-mode {auto,on,off} to control that consumer-mode evidence path for local artifact scans. hol-guard run and Guard runtime prompt/file-read protection remain native Guard behavior in this pass.

Guard inventory snapshots can also carry Cisco MCP and skill-scanner status when a Hermes or OpenClaw inventory run explicitly enables those scanners. The Cloud evidence model records scanner source, status, redacted finding text, duration, mapped artifact ID, and risk component metadata without storing raw local paths or secrets.

Guard does not add Cisco AIBOM runtime integration in this pass. If AIBOM support returns later, it should stay on evidence or export surfaces rather than Guard blocking or approval logic.

Cisco package status

Credit to Cisco AI Defense for open-sourcing the packages below.

PackageStatus in this repoNotes
cisco-ai-skill-scannershipped by defaultIncluded in the lean baseline install.
cisco-ai-mcp-scannershipped via [cisco]Recommended for full Cisco coverage on Python 3.11+, including repo-controlled CI and Docker.
cisco-ai-a2a-scannerdeferredRequires live A2A endpoints and is not added in this pass.
cisco-aibomdeferredNo Guard runtime integration in this pass. Revisit later only for evidence or export workflows.

If you want both tools in one shell during local development:

pipx install hol-guard
pipx install plugin-scanner

Container-first environments can use the published image instead. The repo-controlled image installs a lock-derived Cisco dependency set on Python 3.12 so the container has full static Cisco coverage by default.

docker run --rm \
  -v "$PWD:/workspace" \
  ghcr.io/hashgraph-online/hol-guard:<version> \
  scan /workspace --format text

Command names by package:

hol-guard start
plugin-scanner verify .

Ecosystem Support

EcosystemDetection Surfaces
Codex.codex-plugin/plugin.json, marketplace.json, .agents/plugins/marketplace.json
Claude Code.claude-plugin/plugin.json, .claude-plugin/marketplace.json
Gemini CLIgemini-extension.json, commands/**/*.toml
OpenCodeopencode.json, opencode.jsonc, .opencode/commands, .opencode/plugins

Use --ecosystem auto (default) to scan all detected packages in a repository, or select a single ecosystem explicitly.

What The Scanner Checks

plugin-scanner supports a full quality suite:

  • scan for full-surface security and release analysis
  • lint for rule-oriented authoring feedback
  • verify for runtime and install-surface readiness checks
  • submit for artifact-backed submission gating
  • doctor for targeted diagnostics and troubleshooting bundles

The scanner evaluates only the surfaces a plugin actually exposes, then normalizes the final score across applicable checks. A plugin is not rewarded or penalized for optional surfaces it does not ship.

CategoryMax PointsCoverage
Manifest Validation31plugin.json, required fields, semver, kebab-case, recommended metadata, interface metadata, interface links and assets, safe declared paths
Security36SECURITY.md, LICENSE, hardcoded secret detection, dangerous MCP commands, MCP transport hardening, risky approval defaults, Cisco MCP scan status, elevated MCP findings, MCP analyzability
Operational Security20SHA-pinned GitHub Actions, write-all, privileged untrusted checkout patterns, Dependabot, dependency lockfiles
Best Practices15README.md, skills directory, SKILL.md frontmatter, committed .env, .codexignore
Marketplace15.agents/plugins/marketplace.json validity, legacy marketplace.json compatibility, policy fields, safe source paths
Skill Security15Cisco integration status, elevated skill findings, analyzability
Code Quality10eval, new Function, shell-injection patterns

CLI Usage

# Scan a plugin directory
plugin-scanner scan ./my-plugin

# Auto-detect all supported ecosystems inside a repo (default)
plugin-scanner scan ./plugins-repo --ecosystem auto

# Scan only Claude package surfaces
plugin-scanner scan ./plugins-repo --ecosystem claude

# List supported ecosystems
plugin-scanner --list-ecosystems

# Output JSON
plugin-scanner scan ./my-plugin --format json

# Write a SARIF report for GitHub code scanning
plugin-scanner scan ./my-plugin --format sarif --output plugin-scanner.sarif

# Fail CI on findings at or above high severity
plugin-scanner scan ./my-plugin --fail-on-severity high

# Require Cisco skill scanning with a strict policy
plugin-scanner scan ./my-plugin --cisco-skill-scan on --cisco-policy strict

# Require optional Cisco MCP static analysis
plugin-scanner scan ./my-plugin --cisco-mcp-scan on

Use the bare plugin-scanner ./my-plugin form only for compatibility with older automation. New scripts and docs should prefer explicit subcommands so scan, lint, verify, submit, and doctor have predictable help, flags, and output.

NeedCommandOutput contract
Human release summaryplugin-scanner scan ./my-pluginterminal summary first, optional JSON/Markdown/SARIF with --format
Rule-level authoring feedbackplugin-scanner lint ./my-pluginhuman findings by default, JSON with --format json
Runtime readiness detailsplugin-scanner verify ./my-pluginhuman pass/fail by default, JSON with --format json
Publishable quality artifactplugin-scanner submit ./my-plugin --attest dist/plugin-quality.jsonwrites one artifact for one plugin directory
Troubleshooting bundleplugin-scanner doctor ./my-plugin --component mcp --bundle dist/doctor.zipdiagnostic JSON and bundle artifacts

Quality Suite Commands

# Summary scan (legacy form still works)
plugin-scanner scan ./my-plugin --format json --profile public-marketplace

# Scan a multi-plugin repo from the marketplace root
plugin-scanner scan . --format json

# Rule-oriented lint (with optional mechanical fixes)
plugin-scanner lint ./my-plugin --list-rules
plugin-scanner lint ./my-plugin --explain README_MISSING
plugin-scanner lint ./my-plugin --fix --profile strict-security

# Runtime readiness verification
plugin-scanner verify ./my-plugin --format json
plugin-scanner verify . --format json
plugin-scanner verify ./my-plugin --online --format text

# Artifact-backed submission gate
plugin-scanner submit ./my-plugin --profile public-marketplace --attest dist/plugin-quality.json

# Diagnostic bundle
plugin-scanner doctor ./my-plugin --component mcp --bundle dist/doctor.zip
Advanced reference: specs, action publishing, automation, and examples

Codex Spec Alignment

The scanner follows the current Codex plugin packaging conventions more closely:

  • local manifest paths should use ./ prefixes
  • .agents/plugins/marketplace.json is the preferred marketplace manifest location
  • root marketplace.json is still supported in compatibility mode
  • interface metadata no longer requires an undocumented type field
  • verify performs an MCP initialize handshake before probing declared capabilities

lint --fix preserves or adds the documented ./ prefixes instead of stripping them away.

For repo-scoped marketplaces, scan, lint, verify, and doctor can target the repository root directly. submit remains intentionally single-plugin so the emitted artifact points at one concrete plugin package.

Config + Baseline Example

# .plugin-scanner.toml
[scanner]
profile = "public-marketplace"
baseline_file = "baseline.txt"
ignore_paths = ["tests/*", "fixtures/*"]

[rules]
disabled = ["README_MISSING"]
severity_overrides = { CODEXIGNORE_MISSING = "low" }

Example Output

🔗 Plugin Scanner v2.0.0
Scanning: ./my-plugin

── Manifest Validation (31/31) ──
  ✅ plugin.json exists                           +4
  ✅ Valid JSON                                   +4
  ✅ Required fields present                      +5
  ✅ Version follows semver                       +3
  ✅ Name is kebab-case                           +2
  ✅ Recommended metadata present                 +4
  ✅ Interface metadata complete if declared      +3
  ✅ Interface links and assets valid if declared +3
  ✅ Declared paths are safe                      +3

── Security (16/16) ──
  ✅ SECURITY.md found                            +3
  ✅ LICENSE found                                +3
  ✅ No hardcoded secrets                         +7
  ✅ No dangerous MCP commands                    +0
  ✅ MCP remote transports are hardened           +0
  ✅ No approval bypass defaults                  +3

── Operational Security (0/0) ──
  ✅ Third-party GitHub Actions pinned to SHAs    +0
  ✅ No write-all GitHub Actions permissions      +0
  ✅ No privileged untrusted checkout patterns    +0
  ✅ Dependabot configured for automation surfaces +0
  ✅ Dependency manifests have lockfiles          +0

── Skill Security (15/15) ──
  ✅ Cisco skill scan completed                   +3
  ✅ No elevated Cisco skill findings             +8
  ✅ Skills analyzable                            +4

Findings: critical:0, high:0, medium:0, low:0, info:0

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Final Score: 100/100 (A - Excellent)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Report Formats

FormatUse Case
textHuman-readable terminal summary with category totals and findings
jsonStructured integrations and findings for tooling and dashboards
markdownPull request, issue, or review-ready summaries
sarifGitHub code scanning uploads and security automation

Scanner Signals

The scanner currently detects or validates:

  • Hardcoded secrets such as AWS keys, GitHub tokens, OpenAI keys, Slack tokens, GitLab tokens, and generic password or token patterns
  • Dangerous MCP command patterns such as rm -rf, sudo, curl|sh, wget|sh, eval, exec, and PowerShell or cmd /c shells
  • Insecure MCP remotes, including non-HTTPS endpoints and non-loopback HTTP transports
  • Risky Codex defaults such as approval bypass and unrestricted sandbox defaults inside shipped plugin config or docs
  • Publishability issues in interface metadata, HTTPS links, and declared asset paths
  • Workflow hardening gaps including unpinned third-party actions, write-all, privileged checkout patterns, missing Dependabot, and missing lockfiles
  • Skill-level issues surfaced by Cisco skill-scanner when the optional integration is installed
  • Static MCP findings surfaced by Cisco mcp-scanner when the optional cisco extra is installed

CI And Automation

Add the scanner to a plugin repository CI job:

permissions:
  contents: read
  security-events: write

jobs:
  scan-plugin:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: hashgraph-online/ai-plugin-scanner-action@v1
        with:
          plugin_dir: "."
          mode: scan
          profile: public-marketplace
          min_score: 80
          fail_on_severity: high
          format: sarif
          upload_sarif: true

For a multi-plugin repo, the same workflow can stay pointed at plugin_dir: "." as long as the repository has .agents/plugins/marketplace.json with local ./plugins/... entries.

For repo-controlled validation in this repository, Linux jobs that target full coverage install the cisco extra on Python 3.12, while the baseline matrix keeps Python 3.10 compatibility explicit.

Local pre-commit style hook:

repos:
  - repo: local
    hooks:
      - id: plugin-scanner
        name: Plugin Scanner
        entry: plugin-scanner
        language: system
        types: [directory]
        pass_filenames: false
        args: ["./"]

GitHub Action

The Marketplace action lives in the dedicated repository hashgraph-online/ai-plugin-scanner-action.

This repository no longer vendors a local action bundle. Use the standalone action repository for action.yml, release notes, and action-specific documentation. The legacy alias hashgraph-online/hol-codex-plugin-scanner-action remains available for existing workflows. When you run the scanner in your own job instead of the packaged action, install plugin-scanner[cisco] on Python 3.11+ and set CISCO_MCP_SCAN=auto or CISCO_MCP_SCAN=on for full Cisco MCP coverage.

Plugin Author Submission Flow

The action can also handle submission intake. A plugin repository can wire the scanner into CI so a passing scan opens or reuses a submission issue in awesome-codex-plugins.

It also emits automation-friendly machine outputs:

  • score, grade, grade_label, max_severity, and findings_total as GitHub Action outputs
  • a concise markdown summary in the job summary by default
  • an optional machine-readable registry payload file for downstream registry, badge, or awesome-list automation

The intended path is:

  1. Add the scanner action to plugin CI.
  2. Require min_score: 80 and a severity gate such as fail_on_severity: high.
  3. Enable submission mode with a token that has issues:write on hashgraph-online/awesome-codex-plugins.
  4. When the plugin clears the threshold, the action opens or reuses a submission issue.
  5. The issue body includes machine-readable registry payload data, so registry automation can ingest the same submission event.

Example:

permissions:
  contents: read

jobs:
  scan-plugin:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - name: Scan and submit if eligible
        id: scan
        uses: hashgraph-online/ai-plugin-scanner-action@v1
        with:
          plugin_dir: "."
          min_score: 80
          fail_on_severity: high
          submission_enabled: true
          submission_score_threshold: 80
          submission_token: ${{ secrets.AWESOME_CODEX_PLUGINS_TOKEN }}

      - name: Print submission issue
        if: steps.scan.outputs.submission_performed == 'true'
        run: echo "${{ steps.scan.outputs.submission_issue_urls }}"

submission_token is required when submission_enabled: true. This flow is idempotent. If the plugin repository was already submitted, the action reuses the existing open issue instead of opening duplicates by matching an exact hidden plugin URL marker in the existing issue body.

Registry Payload For Plugin Ecosystem Automation

If you want to feed the same scan into a registry, badge pipeline, or another plugin ecosystem automation step, request a registry payload file directly from the action:

permissions:
  contents: read

jobs:
  scan-plugin:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - name: Scan plugin
        id: scan
        uses: hashgraph-online/ai-plugin-scanner-action@v1
        with:
          plugin_dir: "."
          format: sarif
          output: ai-plugin-scanner.sarif
          registry_payload_output: ai-plugin-registry-payload.json

      - name: Show trust signals
        run: |
          echo "Score: ${{ steps.scan.outputs.score }}"
          echo "Grade: ${{ steps.scan.outputs.grade_label }}"
          echo "Max severity: ${{ steps.scan.outputs.max_severity }}"

      - name: Upload registry payload
        uses: actions/upload-artifact@v6
        with:
          name: ai-plugin-registry-payload
          path: ${{ steps.scan.outputs.registry_payload_path }}

The registry payload mirrors the submission data used by HOL ecosystem automation, so one scan can drive code scanning, review summaries, awesome-list intake, and registry trust ingestion.

Development

pip install -e ".[dev,cisco]"
ruff check src tests
ruff format --check src
pytest -q
python -m build

Use pip install -e ".[dev]" or uv sync --extra dev --python 3.10 when you need the lean baseline path without the Cisco MCP extra.

Repository Workflows

  • Matrix CI for Python 3.10 through 3.13
  • Package publishing via the publish.yml workflow
  • OpenSSF Scorecard automation for repository hardening visibility

Security

For disclosure and response policy, see SECURITY.md.

Contributing

Contribution guidance lives in CONTRIBUTING.md.

Maintainers

Maintained by HOL.

Example: HOL Registry Broker Plugin

The HOL Registry Broker Codex Plugin bridges Codex plugins with the HOL Universal Registry, providing agent discovery, trust signals, and verified identity on Hedera.

Registry Broker trust badge

HOL Registry scores: Trust 80 / Review 83 / Enforce 74

🔗 Plugin Scanner v2.0.0
Scanning: ./registry-broker-codex-plugin

── Manifest Validation (31/31) ──
  ✅ plugin.json exists                           +4
  ✅ Valid JSON                                   +4
  ✅ Required fields present                      +5
  ✅ Version follows semver                       +3
  ✅ Name is kebab-case                           +2
  ✅ Recommended metadata present                 +4
  ✅ Interface metadata complete if declared      +3
  ✅ Interface links and assets valid if declared +3
  ✅ Declared paths are safe                      +3

── Security (24/24) ──
  ✅ SECURITY.md found                            +3
  ✅ LICENSE found                                +3
  ✅ No hardcoded secrets                         +7
  ✅ No dangerous MCP commands                    +3
  ✅ MCP remote transports are hardened           +3
  ✅ No approval bypass defaults                  +5

── Operational Security (20/20) ──
  ✅ Third-party GitHub Actions pinned to SHAs    +5
  ✅ No write-all GitHub Actions permissions      +5
  ✅ No privileged untrusted checkout patterns    +3
  ✅ Dependabot configured for automation surfaces +4
  ✅ Dependency manifests have lockfiles          +3

── Best Practices (15/15) ──
  ✅ README.md found                             +5
  ✅ Skills directory present                    +3
  ✅ SKILL.md frontmatter valid                  +4
  ✅ No committed .env                           +2
  ✅ .codexignore found                          +1

── Marketplace (15/15) ──
  ✅ marketplace.json valid                      +5
  ✅ Policy fields present                       +5
  ✅ Marketplace sources are safe                +5

── Skill Security (15/15) ──
  ✅ Cisco skill scan completed                  +3
  ✅ No elevated Cisco skill findings            +8
  ✅ Skills analyzable                           +4

── Code Quality (10/10) ──
  ✅ No eval or Function constructor             +5
  ✅ No shell injection patterns                 +5

Findings: critical:0, high:0, medium:0, low:0, info:0

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Final Score: 130/130
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Plugins that pass the scanner with a high score are candidates for listing in the HOL Plugin Registry.

Resources

License

Apache-2.0

相似文章

@vincemask: https://x.com/vincemask/status/2064581609928699973

X AI KOLs Timeline

本文介绍了Claude Code的五层安全护栏配置,包括OS沙箱、原生权限规则、PreToolUse Hook、工程规则和远程门禁,并提供了deny/ask/allow配置与命令分级清单,以确保Agent在安全边界内自主执行。

@vintcessun: 原来agent安全可以不止盯工具调用,还能实时读它的推理过程。Adrian在agent执行动作前,既看行为日志又把reasoning chain过一遍,两个维度交叉检测。效果?DeepMind论文说联合分析比纯行为检查准确率提升35%。它…

X AI KOLs Timeline

Adrian 是一个开源 AI 代理运行时安全监控引擎,通过联合分析代理的行为日志和推理链进行异常检测,比纯行为检查准确率提升 35%,支持 LangChain 两行 SDK 接入。

@thinkszyg: https://x.com/thinkszyg/status/2066837941477920993

X AI KOLs Timeline

一篇面向开发者(尤其是AI编码工具使用者)的实用指南,介绍如何安全高效地使用Claude Code、Codex等工具进行多Agent并行开发,重点包括任务拆解、文件隔离(worktree)、边界控制、顺序合并等最佳实践,避免文件冲突和混乱。

本文系统梳理了AI Agent架构与工程实践,涵盖控制流、上下文工程、工具设计、记忆、多Agent组织、评测、追踪和安全,基于OpenClaw实现展开,强调Harness(测试验证基础设施)对系统稳定性的关键作用。

X AI KOLs

本文系统梳理了AI Agent架构与工程实践,涵盖控制流、上下文工程、工具设计、记忆、多Agent组织、评测、追踪和安全,基于OpenClaw实现展开,强调Harness(测试验证基础设施)对系统稳定性的关键作用。