Introduction
TopRank Skills are modular capabilities that extend Claude's functionality. Built on GitHub repositories, skills enable Claude to perform specialized tasks, integrate with external services, and provide custom workflows tailored to your needs.
With over 80,000 community-contributed skills available, you can find solutions for everything from code analysis and data processing to API integrations and automation workflows.
Installation
To use TopRank Skills, you need to install Claude Code CLI. This command-line tool manages skill installation, configuration, and execution.
# Install via npm (recommended)
npm install -g @anthropic-ai/claude-code
# Or using yarn
yarn global add @anthropic-ai/claude-code
# Verify installation
claude-code --version
System Requirements
- Node.js: v18.0 or higher
- npm: v9.0 or higher (or yarn v3.0+)
- Git: v2.20 or higher (for cloning skill repositories)
- Operating System: macOS, Linux, or Windows (WSL2 recommended)
- Claude API Key: Available from your Claude account
Quick Start
Get started with TopRank Skills in three simple steps:
Configure API Key
export CLAUDE_API_KEY="your-api-key-here"
Install Your First Skill
claude-code skill add skill-creator
Use the Skill
claude "Use the skill-creator skill to help me build a new skill"
What are Skills?
Skills are self-contained units of functionality that Claude can invoke during conversations. Each skill is defined by a JSON manifest that specifies:
- Name and Description: How Claude identifies and understands the skill
- Parameters: What inputs the skill accepts
- Tools: What actions the skill can perform
- Permissions: What resources the skill can access
Finding Skills
Browse our directory at https://toprankskills.com/skill to discover skills by category:
- Development: Code analysis, testing, CI/CD automation
- Data: Processing, visualization, analysis
- Integration: API connectors, webhooks, third-party services
- Content: Writing, editing, translation
- Automation: Workflows, scheduled tasks, notifications
Installing Skills
Install skills using the CLI or by cloning from GitHub:
Via CLI (Recommended)
# Install by skill name
claude-code skill add skill-name
# Install from GitHub URL
claude-code skill add https://github.com/user/skill-repo
# Install specific version
claude-code skill add skill-name@1.2.0
Via GitHub Clone
git clone https://github.com/user/skill-repo.git
cd skill-repo
claude-code skill add .
Using Skills
Once installed, skills are automatically available in Claude conversations. Reference them naturally in your prompts:
Example prompts:
- • "Use the github-analyzer skill to review my pull request"
- • "Run the data-visualizer skill on this CSV file"
- • "Help me deploy using the aws-deployer skill"
Managing Skills
# List installed skills
claude-code skill list
# Update a skill
claude-code skill update skill-name
# Remove a skill
claude-code skill remove skill-name
# Show skill details
claude-code skill info skill-name
Skill Structure
A basic skill consists of:
my-skill/
├── skill.json # Skill manifest (required)
├── README.md # Documentation
├── .env.example # Environment variables template
└── tools/ # Tool implementations
└── main.js
Creating Your First Skill
Let's create a simple skill that searches GitHub repositories:
Before You Start
Make sure you have a GitHub personal access token with appropriate permissions.
Step 1: Create Skill Manifest
{
"name": "github-repo-search",
"version": "1.0.0",
"description": "Search GitHub repositories by keyword",
"author": "Your Name",
"license": "MIT",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query"
},
"language": {
"type": "string",
"description": "Programming language filter",
"optional": true
},
"limit": {
"type": "number",
"description": "Maximum results",
"default": 10
}
},
"required": ["query"]
},
"tools": {
"search": {
"description": "Execute repository search",
"handler": "./tools/search.js"
}
}
}
Step 2: Define Parameters
Parameters use JSON Schema validation. Supported types include:
string- Text valuesnumber- Numeric valuesboolean- True/falsearray- Lists of valuesobject- Nested structures
Step 3: Test Locally
claude-code skill test ./my-skill --params '{"query": "TopRank Skills", "limit": 5}'
Step 4: Publish to GitHub
git init
git add .
git commit -m "Initial skill creation"
git remote add origin https://github.com/yourusername/github-repo-search.git
git push -u origin main
Environment Variables
Store sensitive data like API keys in environment variables:
GITHUB_TOKEN=ghp_your_token_here
API_ENDPOINT=https://api.example.com
DEBUG=false
Access in your skill code using process.env.VARIABLE_NAME.
Security Warning
Never commit .env files to version control. Always use .env.example for templates.
Custom Tools
Tools are JavaScript/TypeScript functions that skills can invoke:
export default async function search({ query, language, limit }) {
const response = await fetch(
`https://api.github.com/search/repositories?q=${query}${language ? `+language:${language}` : ''}&per_page=${limit}`,
{
headers: {
'Authorization': `token ${process.env.GITHUB_TOKEN}`
}
}
);
const data = await response.json();
return data.items.map(repo => ({
name: repo.full_name,
description: repo.description,
stars: repo.stargazers_count,
url: repo.html_url
}));
}
Hooks System
Hooks allow skills to respond to events:
onInstall- Runs when skill is installedonUpdate- Runs when skill is updatedonUninstall- Runs before skill removalbeforeInvoke- Runs before tool executionafterInvoke- Runs after tool execution
Skill Composition
Skills can depend on other skills, creating powerful workflows:
{
"name": "advanced-analyzer",
"dependencies": {
"github-analyzer": "^1.0.0",
"code-quality": "^2.1.0"
}
}
CLI Commands Reference
| Command | Description |
|---|---|
| skill add <name> | Install a skill |
| skill remove <name> | Uninstall a skill |
| skill list | Show all installed skills |
| skill update <name> | Update a skill to latest version |
| skill info <name> | Display skill details |
| skill test <path> | Test a skill locally |
Skill API Reference
Core API methods available in skill tools:
claude.ask(prompt)
Send a prompt to Claude and get a response.
claude.readFile(path)
Read file contents from the workspace.
claude.writeFile(path, content)
Write content to a file in the workspace.
claude.exec(command)
Execute shell commands.
Configuration Options
Configure Claude Code behavior in ~/.claude/config.json:
{
"apiKey": "your-api-key",
"model": "claude-3-sonnet",
"skillsDirectory": "~/.claude/skills",
"maxTokens": 4096,
"temperature": 0.7,
"debug": false
}
Security Best Practices
- Never hardcode secrets: Use environment variables for API keys and tokens
- Validate inputs: Always validate and sanitize user inputs
- Use HTTPS: Ensure all API calls use secure connections
- Limit permissions: Request only the minimum permissions needed
- Review dependencies: Audit third-party packages before use
- Update regularly: Keep skills and dependencies up to date
Performance Optimization
- Cache responses: Store frequently accessed data
- Batch operations: Combine multiple API calls when possible
- Lazy loading: Load resources only when needed
- Use streaming: Stream large responses instead of buffering
- Set timeouts: Prevent hanging requests
Debugging Skills
Enable debug mode for verbose logging:
export DEBUG=claude:*
claude-code skill test ./my-skill --verbose
Troubleshooting
Common Issues
Error: "Skill not found"
Solution: Verify the skill name is correct. Run claude-code skill list to see installed skills.
Error: "Invalid API key"
Solution: Check that your CLAUDE_API_KEY environment variable is set correctly.
Error: "Permission denied"
Solution: Ensure you have the necessary file system permissions. Try running with sudo or adjust file permissions.
Frequently Asked Questions
Q: Can I use skills offline?
A: No, skills require an active internet connection to communicate with Claude's API.
Q: How many skills can I install?
A: There's no hard limit, but installing too many may impact performance. We recommend keeping it under 50 active skills.
Q: Can I monetize my skills?
A: Yes, you can offer premium skills. See our monetization guide for details.
Q: How do I report a bug in a skill?
A: Open an issue on the skill's GitHub repository or contact the skill author directly.