
Aviz Skills Installer
- 74 installs
- 44 repo stars
- Updated July 8, 2026
- aviz85/claude-skills-library
aviz-skills-installer is a Claude Code skill that guides installing skills from the AVIZ Skills Library into the user or project scope.
About
A Claude Code skill that walks a user through installing skills from the AVIZ Skills Library. It fetches the current skill list from the library site, asks whether to install user-wide or per-project, clones the repo, copies the chosen skill, and runs any needed npm install. It is a meta-skill for discovering and installing other Claude Code skills.
- Conversational guide to installing skills from the AVIZ Skills Library
- Clones the library repo and copies a skill to user or project scope
- Fetches live skill lists and setup guides instead of hardcoded data
Aviz Skills Installer by the numbers
- 74 all-time installs (skills.sh)
- Ranked #287 of 779 Skill Development skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
aviz-skills-installer capabilities & compatibility
Free; clones a public GitHub repo, no API keys.
- Capabilities
- skill development
- Works with
- github
- Pricing
- Free
What aviz-skills-installer says it does
A conversational guide to installing skills from the AVIZ Skills Library.
**DO NOT use hardcoded skill lists.** Always fetch current data from these sources
npx skills add https://github.com/aviz85/claude-skills-library --skill aviz-skills-installerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 74 |
|---|---|
| repo stars | ★ 44 |
| Last updated | July 8, 2026 |
| Repository | aviz85/claude-skills-library ↗ |
What it does
Discover and install a skill from the AVIZ Skills Library into the user or project skills directory.
Who is it for?
Browsing and installing AVIZ Skills Library skills into ~/.claude/skills or a project's .claude/skills.
Skip if: Installing skills from sources other than the AVIZ Skills Library.
When should I use this skill?
A user wants to install a skill, browse available skills, or set up Claude Code skills.
What you get
A chosen skill installed to the user or project skills directory, with dependencies and setup guidance.
- A skill installed to the chosen skills directory
By the numbers
- 6-step conversational flow
- 2 install scopes (user/project)
Files
AVIZ Skills Installer
A conversational guide to installing skills from the AVIZ Skills Library.
Important: Fetch Real-Time Data
DO NOT use hardcoded skill lists. Always fetch current data from these sources:
1. Skills List & Setup Guides: https://aviz.github.io/claude-skills-library/ 2. GitHub Repository: https://github.com/aviz85/claude-skills-library 3. Individual Skill Pages: https://aviz.github.io/claude-skills-library/skills/{skill-name}.html
Use WebFetch or WebSearch to get the latest available skills and their setup instructions.
Conversational Flow
Step 1: Discover Intent
Ask the user what they want:
- See available skills → Fetch from site
- Install a specific skill → Proceed to installation
- Learn about a skill → Fetch its documentation page
Step 2: Fetch Available Skills
Use WebFetch on https://aviz.github.io/claude-skills-library/ to get the current list of skills.
Step 3: Choose Installation Scope
Ask the user:
Where would you like to install this skill?
1. User-based (~/.claude/skills/) - Personal, available everywhere
2. Project-based (.claude/skills/) - Shared with team via gitStep 4: Install the Skill
# Clone and copy
TEMP=$(mktemp -d)
git clone https://github.com/aviz85/claude-skills-library.git "$TEMP/lib" --depth 1
# For user-based:
mkdir -p ~/.claude/skills
cp -r "$TEMP/lib/skills/SKILL_NAME" ~/.claude/skills/
# For project-based:
mkdir -p .claude/skills
cp -r "$TEMP/lib/skills/SKILL_NAME" .claude/skills/
# Cleanup
rm -rf "$TEMP"Step 5: Install Dependencies (if needed)
cd DESTINATION/SKILL_NAME/scripts
npm install 2>/dev/null || trueStep 6: Provide Setup Guide
Fetch the skill's documentation page and guide the user through any required configuration:
https://aviz.github.io/claude-skills-library/skills/{skill-name}.htmlConventions for Skill Documentation
Each skill in the library MUST have: 1. SKILL.md - Main skill file with YAML frontmatter 2. Setup page on GitHub Pages - At docs/skills/{skill-name}.html
Skills requiring API keys should include:
.env.examplefile with required variables- Setup instructions on their documentation page
See Also
- Library Website: https://aviz.github.io/claude-skills-library/
- GitHub Repository: https://github.com/aviz85/claude-skills-library
Detailed Installation Guide
Prerequisites
- Git installed:
git --version - Node.js (for npm-based skills):
node --version - Claude Code installed and running
Complete Installation Commands
One-Liner for User-Based Installation
SKILL=skill-name && TEMP=$(mktemp -d) && git clone https://github.com/aviz/claude-skills-library.git "$TEMP/lib" --depth 1 && mkdir -p ~/.claude/skills && cp -r "$TEMP/lib/skills/$SKILL" ~/.claude/skills/ && rm -rf "$TEMP" && echo "Installed $SKILL to ~/.claude/skills/"One-Liner for Project-Based Installation
SKILL=skill-name && TEMP=$(mktemp -d) && git clone https://github.com/aviz/claude-skills-library.git "$TEMP/lib" --depth 1 && mkdir -p .claude/skills && cp -r "$TEMP/lib/skills/$SKILL" .claude/skills/ && rm -rf "$TEMP" && echo "Installed $SKILL to .claude/skills/"Step-by-Step Manual Installation
1. Clone the Library
# Create temp directory
TEMP_DIR=$(mktemp -d)
# Clone with minimal depth
git clone https://github.com/aviz/claude-skills-library.git "$TEMP_DIR/lib" --depth 1
# Verify clone
ls "$TEMP_DIR/lib/skills/"2. Choose Your Scope
For User-Based (personal, all projects):
DEST=~/.claude/skills
mkdir -p "$DEST"For Project-Based (shared via git):
DEST=.claude/skills
mkdir -p "$DEST"3. Copy the Skill
SKILL_NAME=whatsapp # Replace with desired skill
cp -r "$TEMP_DIR/lib/skills/$SKILL_NAME" "$DEST/"
# Verify copy
ls -la "$DEST/$SKILL_NAME/"4. Install Dependencies (if needed)
Check if the skill has a package.json:
if [ -f "$DEST/$SKILL_NAME/scripts/package.json" ]; then
cd "$DEST/$SKILL_NAME/scripts"
npm install
cd -
fi5. Configure Environment (if needed)
Check for .env.example:
if [ -f "$DEST/$SKILL_NAME/.env.example" ]; then
cp "$DEST/$SKILL_NAME/.env.example" "$DEST/$SKILL_NAME/.env"
echo "IMPORTANT: Edit $DEST/$SKILL_NAME/.env with your API keys"
fi6. Cleanup
rm -rf "$TEMP_DIR"7. Verify Installation
# Check SKILL.md exists
cat "$DEST/$SKILL_NAME/SKILL.md" | head -208. Restart Claude Code
Close and reopen your terminal, then start a new Claude Code session.
Skill-Specific Setup
Requires Green API credentials: 1. Sign up at https://green-api.com/ 2. Create an instance and get credentials 3. Edit .env:
GREEN_API_ID=your_instance_id
GREEN_API_TOKEN=your_api_tokenspeech-generator
Requires ElevenLabs API key: 1. Sign up at https://elevenlabs.io/ 2. Get API key from settings 3. Edit .env:
ELEVENLABS_API_KEY=your_api_keynano-banana-poster
Requires Google Gemini API key: 1. Get key from https://makersuite.google.com/app/apikey 2. Edit .env:
GEMINI_API_KEY=your_api_keywordpress-publisher
Requires WordPress credentials: 1. Get your WordPress site URL 2. Create an application password in WordPress 3. Edit .env:
WP_URL=https://your-site.com
WP_USERNAME=your_username
WP_PASSWORD=your_app_passwordhtml-to-pdf / html-to-pptx
No API keys needed, but requires npm install:
cd ~/.claude/skills/html-to-pdf/scripts && npm install
cd ~/.claude/skills/html-to-pptx/scripts && npm installcalendar
Requires Google Apps Script setup: 1. Create a new Google Apps Script project 2. Deploy as web app 3. Follow instructions in SKILL.md
supabase-helper
Requires Supabase project credentials: 1. Create project at https://supabase.com/ 2. Get project URL and anon key 3. Configure as specified in SKILL.md
Installing Multiple Skills
# Install multiple skills at once
SKILLS="whatsapp speech-generator html-to-pdf"
TEMP=$(mktemp -d)
git clone https://github.com/aviz/claude-skills-library.git "$TEMP/lib" --depth 1
for SKILL in $SKILLS; do
cp -r "$TEMP/lib/skills/$SKILL" ~/.claude/skills/
echo "Installed: $SKILL"
done
rm -rf "$TEMP"Updating a Skill
SKILL=whatsapp
DEST=~/.claude/skills
# Backup existing
mv "$DEST/$SKILL" "$DEST/${SKILL}_backup_$(date +%Y%m%d)"
# Reinstall
TEMP=$(mktemp -d)
git clone https://github.com/aviz/claude-skills-library.git "$TEMP/lib" --depth 1
cp -r "$TEMP/lib/skills/$SKILL" "$DEST/"
rm -rf "$TEMP"
# Restore .env if exists
if [ -f "$DEST/${SKILL}_backup_$(date +%Y%m%d)/.env" ]; then
cp "$DEST/${SKILL}_backup_$(date +%Y%m%d)/.env" "$DEST/$SKILL/"
fiUninstalling a Skill
SKILL=whatsapp
DEST=~/.claude/skills
# Remove the skill
rm -rf "$DEST/$SKILL"
echo "Removed: $SKILL"Troubleshooting
"Skill not found" after installation
1. Verify file exists:
ls -la ~/.claude/skills/SKILL_NAME/SKILL.md2. Check YAML frontmatter:
head -10 ~/.claude/skills/SKILL_NAME/SKILL.mdShould start with --- and have name: and description: fields.
3. Restart Claude Code session completely.
npm install fails
# Try with legacy peer deps
npm install --legacy-peer-deps
# Or clean install
rm -rf node_modules package-lock.json
npm installPermission errors
# Fix permissions
chmod -R u+rwX ~/.claude/skills/SKILL_NAMEGit clone fails
# Check git is installed
git --version
# Try HTTPS instead
git clone https://github.com/aviz/claude-skills-library.git
# If behind proxy
git config --global http.proxy http://proxy:portUnderstanding Skill Locations and Scopes
The Skill Hierarchy
Claude Code loads skills from multiple locations with this precedence:
| Priority | Scope | Location | Who Can Use |
|---|---|---|---|
| 1 (Highest) | Enterprise | Platform-managed | All org users |
| 2 | Personal | ~/.claude/skills/ | You, everywhere |
| 3 | Project | .claude/skills/ | Anyone in repo |
| 4 (Lowest) | Plugin | Plugin directory | Plugin users |
Key Rule: If two skills have the same name, higher priority wins.
Personal Scope (~/.claude/skills/)
Characteristics
- Location: Your home directory
- Visibility: Only you
- Persistence: Across all projects
- Version control: NOT in git
Best For
- Personal workflow tools
- Skills you use across multiple projects
- Testing new skills before sharing
- Custom configurations
Structure
~/.claude/
└── skills/
├── whatsapp/
│ └── SKILL.md
├── speech-generator/
│ └── SKILL.md
└── my-custom-skill/
└── SKILL.mdProject Scope (.claude/skills/)
Characteristics
- Location: Repository root
- Visibility: Anyone with repo access
- Persistence: Lives with the code
- Version control: Committed to git
Best For
- Team-wide skills
- Project-specific tools
- Onboarding new team members
- Standardized workflows
Structure
my-project/
├── .claude/
│ └── skills/
│ ├── project-helper/
│ │ └── SKILL.md
│ └── deploy-tool/
│ └── SKILL.md
├── src/
└── package.jsonGit Commands for Project Skills
# Add skill to version control
git add .claude/skills/skill-name/
git commit -m "Add skill-name skill for team use"
git push
# Team members get it automatically
git pullWhen to Use Each Scope
Use Personal Scope When:
- You want the skill in all your projects
- The skill contains personal API keys
- You're testing before sharing
- It's a personal productivity tool
Use Project Scope When:
- The whole team should use it
- It's specific to this codebase
- You want version-controlled skills
- Onboarding should include it
Common Patterns
Pattern 1: Personal Development, Then Share
# 1. Install to personal scope for testing
cp -r skill-name ~/.claude/skills/
# 2. Test and customize
# 3. Move to project scope when ready
cp -r ~/.claude/skills/skill-name .claude/skills/
rm -rf ~/.claude/skills/skill-name
git add .claude/skills/skill-name/
git commit -m "Share skill-name with team"Pattern 2: Fork and Customize
# 1. Install from library to personal
cp -r lib/skills/whatsapp ~/.claude/skills/
# 2. Customize SKILL.md for your needs
edit ~/.claude/skills/whatsapp/SKILL.md
# 3. Your customizations persistPattern 3: Team Standard Override
# Project has a skill, but you want different behavior
# 1. Install same skill to personal scope
cp -r lib/skills/skill-name ~/.claude/skills/
# 2. Personal scope takes precedence
# Your version is used instead of project versionEnvironment Variables and Secrets
Personal Scope Secrets
# .env files in personal scope are safe
~/.claude/skills/whatsapp/.env # Only you can accessProject Scope Secrets
# NEVER commit .env to project scope!
# Add to .gitignore
echo ".claude/skills/*/.env" >> .gitignore
# Use .env.example for templates
.claude/skills/whatsapp/.env.example # Committed, no secrets
.claude/skills/whatsapp/.env # Gitignored, local secretsVerifying Skill Location
# Check personal skills
ls ~/.claude/skills/
# Check project skills
ls .claude/skills/
# Find all skills
find ~ -name "SKILL.md" -path "*/.claude/skills/*" 2>/dev/nullMigration Between Scopes
Personal to Project
SKILL=my-skill
cp -r ~/.claude/skills/$SKILL .claude/skills/
git add .claude/skills/$SKILL/
git commit -m "Add $SKILL to project scope"
# Optionally remove from personal
rm -rf ~/.claude/skills/$SKILLProject to Personal
SKILL=team-skill
cp -r .claude/skills/$SKILL ~/.claude/skills/
git rm -r .claude/skills/$SKILL
git commit -m "Move $SKILL to personal scope"#!/bin/bash
# AVIZ Skills Installer Script
# Usage: ./install-skill.sh <skill-name> [scope]
# scope: "user" (default) or "project"
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Configuration
LIBRARY_URL="https://github.com/aviz/claude-skills-library.git"
DOCS_URL="https://aviz.github.io/claude-skills-library/skills"
# Available skills
AVAILABLE_SKILLS="whatsapp speech-generator nano-banana-poster html-to-pdf html-to-pptx wordpress-publisher presentation-architect gh-pages-deploy calendar supabase-helper skill-creator agentic-app-builder"
# Parse arguments
SKILL_NAME="$1"
SCOPE="${2:-user}"
# Functions
print_header() {
echo -e "${BLUE}╔════════════════════════════════════════════╗${NC}"
echo -e "${BLUE}║ AVIZ Skills Library Installer ║${NC}"
echo -e "${BLUE}╚════════════════════════════════════════════╝${NC}"
echo ""
}
print_success() {
echo -e "${GREEN}✓ $1${NC}"
}
print_warning() {
echo -e "${YELLOW}⚠ $1${NC}"
}
print_error() {
echo -e "${RED}✗ $1${NC}"
}
print_info() {
echo -e "${BLUE}→ $1${NC}"
}
list_skills() {
echo ""
echo "Available skills:"
echo ""
echo " whatsapp - WhatsApp automation (Green API)"
echo " speech-generator - Text-to-speech with ElevenLabs"
echo " nano-banana-poster - Image generation with Gemini"
echo " html-to-pdf - Convert HTML to PDF"
echo " html-to-pptx - Convert HTML to PowerPoint"
echo " wordpress-publisher - Publish to WordPress"
echo " presentation-architect - Create presentation scripts"
echo " gh-pages-deploy - Deploy to GitHub Pages"
echo " calendar - Google Calendar integration"
echo " supabase-helper - Supabase database helper"
echo " skill-creator - Create new skills"
echo " agentic-app-builder - Build agentic applications"
echo ""
}
usage() {
echo "Usage: $0 <skill-name> [scope]"
echo ""
echo "Arguments:"
echo " skill-name Name of the skill to install"
echo " scope 'user' (default) or 'project'"
echo ""
echo "Examples:"
echo " $0 whatsapp # Install to ~/.claude/skills/"
echo " $0 whatsapp user # Install to ~/.claude/skills/"
echo " $0 whatsapp project # Install to .claude/skills/"
echo " $0 --list # Show available skills"
list_skills
}
validate_skill() {
local skill="$1"
for s in $AVAILABLE_SKILLS; do
if [ "$s" = "$skill" ]; then
return 0
fi
done
return 1
}
# Main script
print_header
# Handle --list flag
if [ "$1" = "--list" ] || [ "$1" = "-l" ]; then
list_skills
exit 0
fi
# Validate arguments
if [ -z "$SKILL_NAME" ]; then
print_error "Skill name is required"
usage
exit 1
fi
# Validate skill exists
if ! validate_skill "$SKILL_NAME"; then
print_error "Unknown skill: $SKILL_NAME"
list_skills
exit 1
fi
# Validate scope
if [ "$SCOPE" != "user" ] && [ "$SCOPE" != "project" ]; then
print_error "Scope must be 'user' or 'project'"
usage
exit 1
fi
# Determine destination
if [ "$SCOPE" = "user" ]; then
DEST="$HOME/.claude/skills/$SKILL_NAME"
print_info "Installing to user scope: $DEST"
else
DEST=".claude/skills/$SKILL_NAME"
print_info "Installing to project scope: $DEST"
fi
# Check if already exists
if [ -d "$DEST" ]; then
print_warning "Skill already exists at: $DEST"
read -p "Overwrite? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
print_info "Installation cancelled"
exit 0
fi
rm -rf "$DEST"
fi
# Create temp directory
TEMP_DIR=$(mktemp -d)
trap "rm -rf $TEMP_DIR" EXIT
# Clone repository
print_info "Cloning AVIZ Skills Library..."
if ! git clone "$LIBRARY_URL" "$TEMP_DIR/lib" --depth 1 --quiet; then
print_error "Failed to clone repository"
exit 1
fi
print_success "Repository cloned"
# Verify skill exists in repo
if [ ! -d "$TEMP_DIR/lib/skills/$SKILL_NAME" ]; then
print_error "Skill not found in repository: $SKILL_NAME"
exit 1
fi
# Create destination directory
if [ "$SCOPE" = "user" ]; then
mkdir -p "$HOME/.claude/skills"
else
mkdir -p ".claude/skills"
fi
# Copy skill
print_info "Copying skill files..."
cp -r "$TEMP_DIR/lib/skills/$SKILL_NAME" "$DEST"
print_success "Skill files copied"
# Install npm dependencies if needed
if [ -f "$DEST/scripts/package.json" ]; then
print_info "Installing npm dependencies..."
cd "$DEST/scripts"
if npm install --quiet 2>/dev/null; then
print_success "Dependencies installed"
else
print_warning "npm install failed - you may need to run it manually"
fi
cd - > /dev/null
fi
# Check for .env.example
if [ -f "$DEST/.env.example" ]; then
print_warning "This skill requires configuration!"
cp "$DEST/.env.example" "$DEST/.env"
print_info "Created .env from template - please edit with your API keys"
fi
# Print success
echo ""
echo -e "${GREEN}════════════════════════════════════════════${NC}"
print_success "Successfully installed: $SKILL_NAME"
echo ""
echo "Location: $DEST"
echo ""
# Determine documentation URL
case "$SKILL_NAME" in
whatsapp|speech-generator|nano-banana-poster|html-to-pdf|html-to-pptx|wordpress-publisher)
DOC_PAGE="$DOCS_URL/${SKILL_NAME}.html"
;;
*)
DOC_PAGE="$DOCS_URL/other-skills.html"
;;
esac
echo "Documentation: $DOC_PAGE"
echo ""
echo "Next steps:"
echo " 1. Restart your Claude Code session"
echo " 2. Check skill docs: $DOC_PAGE"
if [ -f "$DEST/.env" ]; then
echo " 3. Configure API keys in: $DEST/.env"
fi
echo ""
echo -e "${GREEN}════════════════════════════════════════════${NC}"
Related skills
FAQ
Where can skills be installed?
User-based in ~/.claude/skills for all projects, or project-based in .claude/skills shared via git.
Does it use a hardcoded skill list?
No, it fetches the current list from the AVIZ Skills Library site rather than hardcoding it.