โ† Back to Clawdbot Tools
Clawdbot Tools by @myrodar

skill-deps

Track and manage dependencies between OpenClaw skills

0
Source Code

Skill Dependencies

Manage dependencies between OpenClaw skills โ€” like npm for skills.

Version Constraints

Supports semver-style version constraints:

depends:
  - weather@>=1.0.0      # Version 1.0.0 or higher
  - calendar@^2.0.0      # Compatible with 2.x.x
  - browser@~1.2.0       # Approximately 1.2.x
  - coding-agent@*       # Any version
  - github@1.5.0         # Exact version

Conflict Detection

Declare skills that cannot coexist:

conflicts:
  - old-weather          # Cannot use with old-weather
  - legacy-calendar

Concepts

Declaring Dependencies

In a skill's SKILL.md frontmatter:

---
name: my-skill
description: Does something cool
depends:
  - weather          # Requires weather skill
  - coding-agent     # Requires coding-agent skill
optional:
  - github           # Enhanced if github skill present
---

Dependency Types

  • depends โ€” Required skills (fail if missing)
  • optional โ€” Enhanced functionality if present
  • conflicts โ€” Cannot be used with these skills

Commands

Scan Skills

# Scan all installed skills for dependencies
./scripts/scan-skills.sh

# Scan specific skill
./scripts/scan-skills.sh weather

Dependency Tree

# Show full dependency tree
./scripts/skill-tree.sh my-skill

# Output:
# my-skill
# โ”œโ”€โ”€ weather (required)
# โ”‚   โ””โ”€โ”€ (no dependencies)
# โ””โ”€โ”€ coding-agent (required)
#     โ””โ”€โ”€ github (optional)

Check Missing

# Find skills with unmet dependencies
./scripts/check-deps.sh

Registry Format

Skills can declare their metadata in skill.json:

{
  "name": "my-skill",
  "version": "1.0.0",
  "depends": {
    "weather": ">=1.0.0",
    "coding-agent": "*"
  },
  "optional": {
    "github": ">=2.0.0"
  }
}

Skill Locations

Scans these directories:

  1. /usr/lib/node_modules/openclaw/skills/ โ€” Built-in skills
  2. ~/.openclaw/workspace/skills/ โ€” User skills
  3. ./skills/ โ€” Project-local skills

ClawHub Registry Integration

Install skills from clawhub.com:

# Install a skill (auto-resolves dependencies)
./scripts/skill-install.sh weather

# Install with specific version
./scripts/skill-install.sh weather@1.2.0

# Search for skills
./scripts/skill-search.sh "calendar"

# List installed vs available
./scripts/skill-list.sh --outdated

Auto-Resolution

When installing a skill with dependencies:

$ ./scripts/skill-install.sh travel-planner

๐Ÿ“ฆ Resolving dependencies for travel-planner@1.0.0...
  โ”œโ”€โ”€ weather@>=1.0.0 โ†’ weather@1.2.3 โœ…
  โ”œโ”€โ”€ calendar@^2.0 โ†’ calendar@2.1.0 โœ…
  โ””โ”€โ”€ browser (optional) โ†’ browser@3.0.0 โœ…

๐Ÿ” Checking conflicts...
  โ””โ”€โ”€ No conflicts found โœ…

๐Ÿ“ฅ Installing 4 skills...
  โœ… weather@1.2.3
  โœ… calendar@2.1.0
  โœ… browser@3.0.0
  โœ… travel-planner@1.0.0

Done! Installed 4 skills.

Commands Summary

Command Description
scan-skills.sh List all skills with their deps
skill-tree.sh <name> Show dependency tree
check-deps.sh Find missing dependencies
skill-install.sh <name> Install from ClawHub
skill-search.sh <query> Search registry
check-conflicts.sh Detect conflicts