Skill Development
Create and publish your own skills for the ZhenSkill marketplace
On This Page
Overview
Skills are modular extensions that add specific capabilities to Claude Code. By creating a skill, you can share functionality with the community and help other developers be more productive.
This guide will walk you through the process of creating, testing, and publishing a skill to the ZhenSkill marketplace.
Prerequisites
Before creating a skill, you should have:
- Node.js 18+ and npm installed
- The clawhub CLI installed (installation guide)
- Claude Code CLI installed and configured
- Basic understanding of JavaScript/TypeScript
- A GitHub account (for hosting your skill's code)
- A ZhenSkill account (for publishing)
Skill Structure
A ZhenSkill skill follows a standardized directory structure:
Skill Manifest
The skill.json file is the heart of your skill. It defines metadata, capabilities, and configuration.
Minimal Example
Complete Schema
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Unique skill identifier (lowercase, hyphens) |
displayName | string | Yes | Human-readable name |
version | string | Yes | Semantic version (e.g., "1.0.0") |
description | string | Yes | Short description (max 200 chars) |
longDescription | string | No | Detailed description (Markdown) |
author | string | Yes | Author name |
authorEmail | string | Yes | Contact email |
license | string | Yes | License identifier (e.g., "MIT") |
category | string | Yes | Primary category |
tags | string[] | No | Search tags |
platform | string[] | Yes | Supported platforms |
requiresApiKey | boolean | Yes | Requires external API keys |
homepage | string | No | Project homepage URL |
repository | string | No | Source code repository URL |
Available Categories
video-media- Video and media processingdevelopment- Development toolsdata-analytics- Data and analyticsautomation- Automation and workflowsdocumentation- Documentation toolssearch-discovery- Search and discoverydesign- Design and creative toolsproductivity- Productivity tools
Development
Create a New Skill
Use the clawhub CLI to scaffold a new skill:
This will create a new directory with the basic structure and template files.
Implement Your Skill
Create your main entry point in src/index.ts:
Add Dependencies
If your skill needs external packages, add them to package.json:
Testing Your Skill
Local Testing
Test your skill locally before publishing:
Unit Tests
Write unit tests in the tests/ directory:
Run tests with:
Integration Testing
Test your skill with Claude Code:
Publishing Your Skill
Pre-publish Checklist
npm test)Build for Production
Publish to ZhenSkill
First, login to your ZhenSkill account:
Then publish your skill:
The CLI will validate your skill, upload it to the registry, and make it available in the marketplace.
Updating Your Skill
To publish an update:
- Update your code
- Increment the version in
skill.json - Update the changelog/README
- Run
clawhub publishagain
Best Practices
Code Quality
- Write clear, documented code
- Follow TypeScript/JavaScript best practices
- Handle errors gracefully
- Validate user inputs
- Use meaningful variable and function names
Documentation
- Write a comprehensive README with:
- Clear description of what the skill does
- Installation instructions
- Usage examples
- Configuration options
- Troubleshooting tips
- Include code examples that actually work
- Document all configuration options
- Keep documentation up-to-date with code changes
Security
- Never hardcode API keys or secrets
- Use environment variables for sensitive data
- Validate and sanitize all inputs
- Keep dependencies updated
- Follow the principle of least privilege
Performance
- Minimize external dependencies
- Use async/await for I/O operations
- Cache results when appropriate
- Provide progress feedback for long operations
- Clean up resources (files, connections)
Versioning
- Follow semantic versioning
- Document breaking changes clearly
- Maintain a changelog
- Test thoroughly before releasing major versions
User Experience
- Provide clear error messages
- Use descriptive parameter names
- Include helpful defaults
- Show progress for long-running operations
- Make the skill easy to configure
Example Skills
Learn by example! Check out these popular skills to see how they're structured:
- video-generator - Media processing skill
- Official skill examples repository
Getting Help
Need help developing your skill?
- Join our Discord community
- Read the Skill SDK documentation
- Check existing skills for inspiration
- Report issues on GitHub