Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Scans the skills folder for new, unused, or missing dependencies; fixes requirements.txt; and tests a skill in or out of sandbox.
Scans the skills folder for new, unused, or missing dependencies; fixes requirements.txt; and tests a skill in or out of sandbox.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Scans workspace/skills (or a given folder) to detect missing and unused Python dependencies, can fix requirements.txt (add missing, optionally remove unused), and can test a skill using the skill-tester in sandbox (default) or no-sandbox mode.
Scan: For each skill, finds all Python files under the skill and its scripts/ folder, extracts top-level imports, and compares them to requirements.txt. Reports: Missing: Imported but not listed in requirements (suggests adding). Unused: Listed in requirements but not imported (suggests removing). Fix: Adds missing packages to requirements.txt and/or removes unused ones (--fix-unused). Test: Runs the skill-tester for the given skill. Use --no-sandbox to run tests with full environment (e.g. network); default runs in sandbox. Stdlib modules and local modules (same skillβs .py files) are excluded from βmissingβ.
clawhub install skill-doctor Or clone into your skills directory: git clone https://github.com/Org/skill-doctor.git workspace/skills/skill-doctor
# Scan all skills (or default: scan) python3 workspace/skills/skill-doctor/scripts/skill_doctor.py # Scan one skill python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill SUBAGENT-DASHBOARD --scan # Fix: add missing deps to requirements.txt python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill MY-SKILL --fix # Fix: add missing and remove unused python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill MY-SKILL --fix --fix-unused # Dry-run fix (report only) python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill MY-SKILL --fix --fix-unused --dry-run # Test skill (sandbox) python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill gateway-guard --test # Test skill (no sandbox: full env) python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill gateway-guard --test --no-sandbox # JSON output python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --scan --json python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill X --test --json
Command / flagsDescription--scanScan skills and report missing/unused dependencies (default if no --fix/--test)--skill SLUGLimit to one skill--fixAdd missing packages to requirements.txt--fix-unusedWith --fix, also remove unused packages--dry-runWith --fix: only report what would be done--testRun skill-tester for the skill--no-sandboxRun tests with full env (no sandbox)--timeout NTest timeout in seconds (default 60)--jsonOutput JSON--skills-dir PATHOverride skills root (default: workspace/skills)
Discover skills β Finds dirs with SKILL.md or _meta.json under the skills folder. Parse Python β Uses ast to collect top-level import / import from names from all .py files in the skill and scripts/. Exclude stdlib and local β Ignores standard library modules and local modules (same skillβs file names). Map to pip β Maps import names to pip package names (e.g. bs4 β beautifulsoup4, yaml β PyYAML). Compare β Compares required (from requirements.txt) vs needed (from imports); reports missing and unused. Fix β Writes requirements.txt: append missing packages; optionally remove unused lines. Test β Invokes skill-tester/scripts/skill_tester.py --skill SLUG --json. Sandbox vs no-sandbox is controlled by --no-sandbox and the OPENCLAW_DOCTOR_NO_SANDBOX env var for the test run.
Python 3.7+ Optional: skill-tester for --test (must be present under workspace/skills/skill-tester).
Reads: Skill directories and their .py and requirements.txt files. Writes: Only requirements.txt when using --fix (and --fix-unused). Test: Runs skill-tester in a subprocess; --no-sandbox means tests run with the current environment (e.g. network allowed).
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.