Loading...
Loading...
Expert guidance for contributing to and using the Awesome Claude Code repository, a curated collection of Claude Code skills, agents, hooks, and resources.
npx skill4agent add aradotso/claude-code-skills awesome-claude-code-curationSkill by ara.so — Claude Code Skills collection.
# Example structure for a skill contribution
skill_entry = {
"name": "descriptive-kebab-case-name",
"description": "Clear one-line description of functionality",
"repository": "github-username/repo-name",
"language": "primary-language",
"category": "skills|agents|hooks|tools",
"topics": ["relevant", "keywords"],
"stars": "current_star_count"
}## Skill/Resource Submission
**Name**: [Resource Name]
**Repository**: [GitHub URL]
**Category**: [Skills/Agents/Hooks/Tools/etc.]
### Description
[Clear description of what this resource does]
### Why This Resource is Awesome
- Unique feature 1
- Unique feature 2
- Proven use cases
### Testing
- [ ] Code examples tested
- [ ] Documentation reviewed
- [ ] No security issues
- [ ] Follows repository guidelines# Example: Searching for specific skills programmatically
import requests
from typing import List, Dict
def search_awesome_claude_code(query: str) -> List[Dict]:
"""
Search the awesome-claude-code repository for relevant resources.
Args:
query: Search term (e.g., "python skills", "web scraping")
Returns:
List of matching resources
"""
# Use GitHub API to search repository contents
api_url = "https://api.github.com/repos/hesreallyhim/awesome-claude-code"
headers = {
"Accept": "application/vnd.github.v3+json",
"Authorization": f"token {os.environ.get('GITHUB_TOKEN')}"
}
response = requests.get(f"{api_url}/contents", headers=headers)
if response.status_code == 200:
contents = response.json()
# Filter and return relevant items
return [item for item in contents if query.lower() in item.get('name', '').lower()]
return []# Clone a specific skill repository
git clone https://github.com/username/skill-name.git
# Or use the Claude Code CLI (if available)
claude-code install skill-name
# Or add to your skills directory
mkdir -p ~/.claude/skills
cp SKILL.md ~/.claude/skills/skill-name.md# Find skills by topic
def find_skills_by_topic(topic: str) -> List[str]:
"""
Discover skills related to a specific topic.
Args:
topic: Topic keyword (e.g., "web-scraping", "testing")
"""
topics_mapping = {
"agent-skills": ["autonomous-tasks", "workflow-automation"],
"coding-assistant": ["code-generation", "refactoring"],
"ai-workflows": ["pipeline-optimization", "batch-processing"]
}
return topics_mapping.get(topic, [])# Validate a skill before submission
def validate_skill(skill_path: str) -> Dict[str, bool]:
"""
Validate a Claude Code skill file.
Args:
skill_path: Path to SKILL.md file
Returns:
Dictionary of validation results
"""
validations = {
"has_frontmatter": False,
"has_description": False,
"has_examples": False,
"no_secrets": True
}
with open(skill_path, 'r') as f:
content = f.read()
# Check YAML frontmatter
validations["has_frontmatter"] = content.startswith('---')
# Check for description
validations["has_description"] = 'description:' in content
# Check for code examples
validations["has_examples"] = '```' in content
# Check for hardcoded secrets
secret_patterns = ['api_key = "', 'password = "', 'token = "']
validations["no_secrets"] = not any(pattern in content for pattern in secret_patterns)
return validations# Integrate multiple skills for a workflow
class ClaudeCodeWorkflow:
"""Orchestrate multiple Claude Code skills."""
def __init__(self):
self.skills_dir = os.path.expanduser("~/.claude/skills")
self.loaded_skills = []
def load_skill(self, skill_name: str) -> Dict:
"""Load a skill from the collection."""
skill_path = os.path.join(self.skills_dir, f"{skill_name}.md")
if not os.path.exists(skill_path):
raise FileNotFoundError(f"Skill {skill_name} not found")
with open(skill_path, 'r') as f:
# Parse skill metadata and content
return {"name": skill_name, "content": f.read()}
def combine_skills(self, skill_names: List[str]) -> str:
"""Combine multiple skills for complex workflows."""
combined = []
for skill_name in skill_names:
skill = self.load_skill(skill_name)
combined.append(skill["content"])
self.loaded_skills.append(skill_name)
return "\n\n---\n\n".join(combined)# GitHub token for API access (optional, increases rate limits)
export GITHUB_TOKEN="your_github_token_here"
# Claude Code skills directory
export CLAUDE_SKILLS_DIR="$HOME/.claude/skills"
# Custom repository URL (if forked)
export AWESOME_CLAUDE_CODE_REPO="hesreallyhim/awesome-claude-code"# Clone the repository
git clone https://github.com/hesreallyhim/awesome-claude-code.git
cd awesome-claude-code
# Keep it updated
git pull origin main
# Create a branch for contributions
git checkout -b add-new-skill# Fork and update
git clone https://github.com/YOUR_USERNAME/awesome-claude-code.git
cd awesome-claude-code
# Make changes
git add .
git commit -m "Update: [skill-name] - [what changed]"
git push origin main
# Create PR on GitHub