An OpenClaw agent skill that gives agents autonomous skill-management capabilities. When the agent identifies a capability gap, it can create a new skill, push it to GitHub, and install it after user approval.
The skill-manager enables a self-improving workflow:
- Detect — Agent identifies it needs a capability it doesn't have
- Create — Agent generates a new skill (SKILL.md + tools), pushes to GitHub
- Track — New skill is recorded as "pending" (not installed)
- Remind — Next conversation, agent reminds the user and asks for permission
- Install — After approval, agent installs the skill and activates it
All created skills are pushed to the FutureHax GitHub organization following the openclaw-skill-<name> naming convention.
Copy the skill to the OpenClaw shared skills directory:
# Shared (all agents)
scp -r skill-manager your-vps:~/.openclaw/skills/skill-managerRestart the gateway after installing:
openclaw gateway restartopenclaw skills list | grep skill-managerGITHUB_TOKEN— GitHub PAT with read-only access (checks repo existence, clones public repos). This is the always-on token that keeps the skill inreadystate.GITHUB_WRITE_TOKEN(optional) — GitHub PAT withreposcope for the FutureHax org. Only needed whencreate.shruns to create repos and push. Can be short-lived or limited-scope. If not set,create.shfalls back toGITHUB_TOKEN.python3— Used for JSON manipulation in tracking scripts (standard on Ubuntu 24.04)git— For initializing and pushing skill reposcurl— For GitHub REST API calls
Add the tokens to ~/.openclaw/.env:
GITHUB_TOKEN=ghp_your_readonly_token
GITHUB_WRITE_TOKEN=ghp_your_write_tokenskill-manager/
├── SKILL.md # Skill definition and agent behavioral instructions
├── README.md # This file
└── tools/
├── create.sh # Create GitHub repo, push skill, track as pending
├── pending.sh # List/check/add/remove pending skills
├── install.sh # Install approved skill from GitHub
└── status.sh # Check skill existence (installed, GitHub, pending)
bash tools/status.sh weather-apiReturns:
{
"name": "weather-api",
"installed": false,
"github": false,
"pending": false,
"paths": []
}Stage files first, then run create:
# Stage the skill files
mkdir -p ~/.openclaw/skill-manager/staging/weather-api/tools
# ... write SKILL.md and tool scripts to staging dir ...
# Create repo and push
bash tools/create.sh weather-api "Query weather data for location-based recommendations"Returns:
{
"status": "created",
"name": "weather-api",
"repo": "FutureHax/openclaw-skill-weather-api",
"url": "https://github.com/FutureHax/openclaw-skill-weather-api",
"pending": true
}bash tools/pending.sh checkReturns nothing if no pending skills, or a formatted list:
- **weather-api**: Query weather data for location-based recommendations
Repo: https://github.com/FutureHax/openclaw-skill-weather-api
Created: 2026-02-12T20:00:00Z
# Shared (all agents)
bash tools/install.sh weather-api shared
# Single agent only
bash tools/install.sh weather-api agent:zordonReturns:
{
"status": "installed",
"name": "weather-api",
"path": "/home/marvin/.openclaw/skills/weather-api",
"scope": "shared",
"repo": "FutureHax/openclaw-skill-weather-api",
"note": "Restart the gateway to activate: openclaw gateway restart"
}The agent follows a strict workflow defined in SKILL.md:
- Conversation start: Runs
pending.sh checkto see if any skills are awaiting approval - Capability gap: When the agent can't fulfill a request, it proposes creating a skill
- Creation: Agent writes SKILL.md + tools to a staging directory, then runs
create.sh - No auto-install: Created skills are never installed in the same conversation
- Next conversation: Agent reminds the user about pending skills and asks permission
- Approval: User approves, agent runs
install.sh, suggests gateway restart
MIT