⏳ This skill is pending AI review.

Scores will appear once the review pipeline completes.

version unknown

pwnclaw-security-scan

@frostmute⭐ 4 stars

Test your AI agent for security vulnerabilities using PwnClaw. Runs 50+ attacks (prompt injection, jailbreaks, social engineering, MCP poisoning, and more) and provides fix instructions. Use when your agent needs a security check or hardening.

Use with your AI agent

Open your project in any AI assistant that can read your files. Works with ChatGPT, Claude, Claude Code, Codex, Cursor, Hermes Agent, OpenClaw, Grok Bot, and more.

Your agent needs access to this page’s linked instructions and your project files. Copying does not install or execute anything.

—/10

// RATINGS

⭐GitHub Stars
⭐ 4 on GitHubGitHub ↗

New / niche

🟢ProSkills Score
—
📍

Not yet listed on ClawHub or SkillsMP

// README

claw2manus

Convert ClawHub skills into Manus-compatible skills.

A small, fast, fully-tested Python CLI that translates OpenClaw SKILL.md files to Manus format in one pass — frontmatter cleanup, body rewriting, GitHub fetching, and a change report you can actually audit.

CI Python License: MIT Documentation Tests pre-commit


What this does

ClawHub (the OpenClaw skill registry) and Manus use the same idea — a SKILL.md file with YAML frontmatter and markdown body — but they don't agree on the names, allowed fields, or filesystem paths. claw2manus is the translator.

   ClawHub SKILL.md                              Manus SKILL.md
   ─────────────────                            ────────────────
   name: Test Skill                              name: test-skill
   description: "A test skill."                 description: "What it does: A test skill.
                                                              When to use it: This is a converted
                                                              skill from ClawHub, ..."
                                                 metadata: null          ← dropped
   # Body                                        # Body
   ~/.openclaw/workspace/test  →  /home/ubuntu/workspace/test
   sessions_list                →  Manus: Use `shell` tool with `ps aux` ...
   See CLAUDE.md                →  See soul.md
   See AGENTS.md                →  See subtasks.md

Every change is logged in a CONVERSION_REPORT.md next to the output so you can review what happened and revert what you didn't want.

Why use it

  • One command, one directory. convert-all walks a tree of skills, emits clean Manus output, and never collides on names — even when two skills share an author.
  • Auditable. Every body substitution is a configurable rule in config.yaml. Add your own without touching code.
  • Honest about what it can't do. No silent CLAUDE.md → three-paragraph prose rewrites — your references stay as filenames. No silent bracket stripping that masks bugs — descriptions with < or > are rejected so the validator can flag them.
  • Respects auth. Set GITHUB_TOKEN and you'll get the 5,000 req/hr GitHub limit instead of 60. Anonymous use still works.

Features

CapabilityWhat you get
Batch conversionconvert-all walks a directory tree and translates every SKILL.md it finds.
Skill fetchingfetch-and-convert resolves a name through GitHub, with a clawhub.ai scraping fallback for skills not on GitHub.
Plugin rulesBody transformations live in config.yaml as a list. Add yours with SkillConverter.add_rule({...}).
Interactive mode--interactive lets you override tool replacements per-run.
Dry-run + diff--dry-run prints the full output; --diff shows a unified diff between input and result.
ValidationBuilt-in validate command checks naming, length, allowed fields, and required sections.
Conversion reportEvery run emits a CONVERSION_REPORT.md next to the converted SKILL.md.
Path safetyOutput directory names are sanitized; .. traversal is rejected.
Tested92 tests, including end-to-end fixtures in tests/fixtures/.

Install

# Recommended: uv
git clone https://github.com/frostmute/claw2manus.git
cd claw2manus
uv venv
source .venv/bin/activate
uv pip install -e ".[test]"

Or with plain pip:

python -m venv .venv
source .venv/bin/activate
pip install -e ".[test]"

System Python works too, but a venv keeps claw2manus from polluting your site-packages.

Quickstart

Convert a local skill

claw2manus convert ./path/to/SKILL.md --output ./out/

A CONVERSION_REPORT.md lands in ./out/<skill-name>/ next to the converted SKILL.md.

See what would change before committing

claw2manus convert ./path/to/SKILL.md --dry-run --diff

--dry-run shows the full output. --diff shows a unified diff instead of (or in addition to) the full output. Combine them to review a change without writing anything to disk.

Convert a whole directory

claw2manus convert-all ./skills/ --output ./manus-skills/

Nested layouts like skills/<author>/<skill>/SKILL.md are disambiguated automatically — the output gets manus-skills/<author>-<skill>/ directories that won't collide.

Pull from ClawHub by name

# Resolves through GitHub's index, with author discovery via Search API
claw2manus fetch-and-convert pwnclaw-security-scan --output ./out/

# Or with a direct URL — GitHub `blob/...` or raw URLs both work
claw2manus fetch-and-convert \
  https://raw.githubusercontent.com/Xquik-dev/tweetclaw/master/skills/tweetclaw/SKILL.md \
  --output ./out/

For high-volume use, set a GitHub token to lift the rate limit:

export GITHUB_TOKEN=ghp_xxxxxxxxxxxx
claw2manus fetch-and-convert ...

Validate an existing Manus skill

claw2manus validate ./path/to/Manus/SKILL.md
# or point it at a directory containing SKILL.md
claw2manus validate ./my-manus-skill/

Commands

CommandPurpose
claw2manus convert <path>Convert one SKILL.md. Flags: --output, --dry-run, --diff, --interactive.
claw2manus convert-all <dir>Convert every SKILL.md under <dir> recursively. Flags: --output, --interactive.
claw2manus fetch-and-convert <name|url>Resolve a name or URL through GitHub / ClawHub and convert. Flags: --output, --interactive.
claw2manus validate <path>Validate an existing SKILL.md against Manus rules.

Global exit semantics:

CodeWhen
0Conversion succeeded, validation clean (or no validation requested)
1Validation reported errors, or a fatal conversion failure occurred
2Invalid CLI arguments

Configuration

claw2manus reads claw2manus/config.yaml from the installed package by default. You can override it by passing config_path to SkillConverter() programmatically.

The config file has three sections. See docs/CONFIGURATION.md for the full schema and walked examples.

# 1. Exact-name tool replacements (OpenClaw → Manus instruction text).
tool_replacements:
  sessions_list: "Manus: Use `shell` tool with `ps aux` ..."

# 2. Detection patterns for stdio-only tools that may need an MCP bridge.
stdio_patterns:
  - pattern: '(\b(?:psql|mysql|sqlite3)\b)'
    category: "Database clients"
    mcp_suggestion: "Use an MCP server (e.g. mcp-server-postgres)."

# 3. Body substitution rules — regex + replacement + log template.
body_rules:
  - id: claude-md-to-soul-md
    pattern: '(?<![A-Za-z0-9_.-])CLAUDE\.md(?![A-Za-z0-9_.])'
    replacement: soul.md
    log: "Replaced CLAUDE.md with soul.md ({count} occurrence{plural})."

To add rules programmatically:

from claw2manus.converter import SkillConverter

converter = SkillConverter()
converter.add_rule({
    "id": "my-custom-rule",
    "pattern": r"foo",
    "replacement": "bar",
    "

// HOW IT'S BUILT

KEY FILES

examples/input/pwnclaw-security-scan/SKILL.mdREADME.md

// REPO STATS

4 stars