Skip to content
This repository was archived by the owner on Jul 30, 2026. It is now read-only.
This repository was archived by the owner on Jul 30, 2026. It is now read-only.

Add OpenClaw support (skill + before_tool_call boundary plugin) #18

Description

@nabsha

Goal

Ship kdbx for OpenClaw (open-source self-hosted agent framework) in addition to Claude Code. OpenClaw uses the same AgentSkills SKILL.md standard, so the skill ports almost as-is; the enforced agent/human boundary is the only real work.

What ports vs. what changes

Piece OpenClaw target Effort
SKILL.md same file + an OpenClaw gating block; swap hardcoded paths for {baseDir} light
kdbx.py (PEP-723) + kdbx_core/ bundled scripts/, run via the exec tool none (uv/lockfile are the skill's own concern)
/kdbx:* commands a skill is a slash command by default (user-invocable: true) light
MCP server openclaw mcp add … (native MCP client) light
PreToolUse leak/role guard (guard.py) a separate OpenClaw TypeScript plugin with a before_tool_call hook 🔴 rewrite

Plan

  1. Skill frontmatter (cheap, high value). Add to skills/kdbx/SKILL.md (Claude Code ignores unknown fields, so one file serves both):
    metadata:
      openclaw:
        requires: { bins: ["uv", "keepassxc-cli"] }   # auto-disable if prereqs missing
    Body: instruct exec to run uv run --locked {baseDir}/scripts/kdbx.py <op> with host: "gateway" (kdbx needs host FS ~/.config/keepassxc, not the Docker sandbox).
  2. Boundary plugin (the real work). Port plugins/kdbx/hooks/guard.py → a TS plugin registering before_tool_call:
    • { block: true, blockReason } for agent-issued kdbx set/delete/mv/import/rekey/export + get --reveal/--clip (terminal block, parity with a Claude Code deny).
    • { requireApproval: {...} } for delete --purge / rekey (replaces the TTY confirm).
    • Bonus: resolve_exec_env can inject secrets into the exec env (agent never sees them in args); tool_result_persist can scrub leaked values from transcripts.
  3. Distribute via ClawHub ("Skill + Plugin Registry") as a plugin bundle (skill + boundary plugin grouped), and openclaw skills install.

Keep shared, don't fork

kdbx.py / kdbx_core stay the single source of truth; OpenClaw gets a parallel packaging target alongside the Claude Code plugin (mirrors the symlink/dereference approach).

Open verification (smoke-test against a real install first)

npm i -g openclaw && openclaw skills install ./skills/kdbx to confirm, before publishing:

Sources

docs.openclaw.ai/tools/{skills,creating-skills,exec} · docs.openclaw.ai/plugins/hooks · docs.openclaw.ai/clawhub · github.com/openclaw/agent-skills (real SKILL.md) · github.com/openclaw/openclaw#14159

Relates to #4 (cross-ecosystem discoverability). Not started — research + plan only.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestskill: kdbxConcerns the kdbx skill

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions