This repository serves as a template for creating new skill projects. Use this as a starting point when building new skills that will be published to multiple registries.
- Click "Use this template" on GitHub
- Create a new repository from this template
- Clone your new repository
- Customize for your specific skill
- Copy this entire repository structure
- Remove the
skills/example-skill/directory - Create your own skill in
skills/<your-skill-name>/ - Update project metadata in
pyproject.toml
-
Create skill directory:
mkdir -p skills/my-new-skill/examples
-
Create SKILL.md with YAML frontmatter:
--- name: my-new-skill description: What this skill does homepage: https://github.com/yourusername/my-new-skill metadata: {"openclaw":{"emoji":"🔧","requires":{"bins":["python"],"env":[]},"primaryEnv":""}} --- # My New Skill ## Purpose ...
-
Create run.sh wrapper:
#!/usr/bin/env bash set -euo pipefail if command -v uv >/dev/null 2>&1; then uv run python -m skillshop.runtime.runner "my-new-skill" "$@" else python -m skillshop.runtime.runner "my-new-skill" "$@" fi
Make it executable:
chmod +x skills/my-new-skill/run.sh -
Create skill.json (optional):
{ "name": "my-new-skill", "version": "0.1.0", "entrypoint": "./run.sh", "interfaces": ["cli", "mcp"], "inputs": "json-stdin", "outputs": "json-stdout" } -
Add examples in
examples/directory (documentation only) -
Implement core logic in
src/skillshop/core/or in the skill's own directory
-
Local development:
# Install dependencies pip install -e . # Run CLI python -m skillshop.cli.app # Run web UI textual-web run skillshop.web.app # Run MCP server python -m skillshop.mcp.server
-
Test skill execution:
python -m skillshop.runtime.runner my-new-skill --arg value
-
Build bundle:
python publish/build_bundle.py my-new-skill
-
Publish:
# To npm (skills.sh) bash publish/publish_npm.sh my-new-skill # To ClawHub bash publish/publish_clawhub.sh my-new-skill
- Python-first: All business logic in Python
- Self-contained skills: Each skill should be independently shippable
- Multi-surface: Support CLI, Web UI, and MCP
- Multi-registry: Publish to skills.sh, ClawHub, and skillsmp.com
- Documentation: Link to repository, keep examples as documentation
- Update
pyproject.tomlwith your project name and dependencies - Modify
src/skillshop/core/base.pyif you need custom base classes - Extend
src/skillshop/runtime/runner.pyfor custom execution logic - Update
.github/workflows/publish.ymlfor your CI/CD needs
- Remove this TEMPLATE.md (or customize it)
- Update README.md with your project-specific information
- Create your first skill following the structure above
- Test locally before publishing
- Set up registry credentials (NPM_TOKEN, CLAWHUB_TOKEN) in GitHub Secrets
Remember: This is a template. Customize it to fit your needs!