Skills Discovery

VerifiedSafe

This skill lists all installed skills with descriptions and categories. It helps you discover available skills or search for a specific one using keywords.

Sby Skills Guide Bot
ProductivityBeginner
6/2/2026
Claude Code
#skills-discovery#skill-management#claude-code#tool-discovery

Recommended for

Automated summary

Lists installed Claude Code skills with descriptions and supports keyword search.

Strengths

  • Quickly shows all available skills with their category and workflow count
  • Allows filtering by keyword using the --search option
  • Supports namespaced skills (e.g., golem-powers/) and SKILL.md files
  • Automatically extracts descriptions from YAML frontmatter or first blockquote

Limitations

  • Only works within Claude Code and configured local directories
  • Lists only locally installed skills, not online or remote ones
  • Search is textual and does not support advanced queries (AND/OR)
When to use it

Use this skill when you want to discover or recall an installed skill, or to check what capabilities are available in your environment.

When not to use it

Do not use it when you already know which skill you need – invoke that skill directly (e.g., /commit) to save time.

Security analysis

Safe
Quality score88/100

The script only reads local skill definition files under $HOME/.claude/commands and formats their descriptions. No network, file modification, or external command execution beyond standard directory scanning and string parsing. No obfuscation or dangerous operations.

No concerns found

How this analysis is made

Examples

List all skills
/skills
Search for git-related skills
/skills --search git
Find skills related to browser
/skills --search browser

name: skills description: Use when wanting to see what skills are available. Lists installed skills with descriptions. Covers list skills, search skills, discover skills, what skills. NOT for: using a specific skill (invoke that skill directly).

Skills Discovery

List and search your installed Claude Code skills.

Usage

When invoked via /skills, scan and display all available skills. If the user provides arguments like --search <keyword>, filter accordingly.

Instructions

Step 1: Scan Skills Directory

Run this to discover all skills:

#!/bin/bash
SKILLS_DIR="$HOME/.claude/commands"

echo "# Installed Skills"
echo ""

# Arrays to hold skills by category
declare -a domain_skills
declare -a infra_skills
declare -a custom_skills

# Function to extract description from a file
extract_desc() {
    local file="$1"
    # First try YAML frontmatter description
    if head -1 "$file" | grep -q '^---$'; then
        desc=$(awk '/^---$/{p++} p==1 && /^description:/{gsub(/^description: */, ""); print; exit}' "$file")
        if [[ -n "$desc" ]]; then
            echo "$desc"
            return
        fi
    fi
    # Fall back to first # header blockquote
    desc=$(awk '/^#/{found=1} found && /^>/{gsub(/^> */, ""); print; exit}' "$file")
    if [[ -n "$desc" ]]; then
        echo "$desc"
        return
    fi
    # Final fallback: first non-empty line after header
    awk '/^#/{found=1; next} found && NF{print; exit}' "$file"
}

# Function to count workflows in a directory
count_workflows() {
    local dir="$1"
    if [[ -d "$dir/workflows" ]]; then
        find "$dir/workflows" -name "*.md" 2>/dev/null | wc -l | tr -d ' '
    else
        echo "0"
    fi
}

# Function to determine source of a skill
get_source() {
    local path="$1"
    local resolved=$(readlink -f "$path" 2>/dev/null || echo "$path")

    if [[ "$resolved" == *"/golem-powers/"* ]] || [[ "$resolved" == *"/golems/skills/"* ]]; then
        echo "golem-powers"
    elif [[ "$resolved" == *"/superpowers/"* ]]; then
        echo "superpowers"
    elif [[ "$resolved" == *"/golems/"* ]] || [[ "$resolved" == *"/.config/golems/"* ]]; then
        echo "golem-powers"
    else
        echo "custom"
    fi
}

# Function to categorize skill
categorize_skill() {
    local name="$1"
    local desc="$2"

    # Infrastructure skills
    if echo "$name $desc" | grep -qiE 'git|github|commit|push|pr|1password|secret|vault|credential'; then
        echo "infra"
    # Domain skills (browser, PRD, etc)
    elif echo "$name $desc" | grep -qiE 'brave|browser|prd|product|archive|critique'; then
        echo "domain"
    else
        echo "custom"
    fi
}

# Scan for skills (handles namespaced skills like golem-powers/)
scan_skill_dir() {
    local dir="$1"
    local namespace="$2"

    for item in "$dir"/*; do
        [[ ! -e "$item" ]] && continue
        local name=$(basename "$item" .md)

        # Skip meta items
        [[ "$name" == "skills" ]] && continue

        if [[ -d "$item" ]]; then
            # Check if this is a skill directory (has SKILL.md)
            if [[ -f "$item/SKILL.md" ]]; then
                local full_name="${namespace}${name}"
                local desc=$(extract_desc "$item/SKILL.md")
                local workflows=$(count_workflows "$item")
                local source=$(get_source "$item")
                local category=$(categorize_skill "$name" "$desc")
                local entry="$full_name|$desc|$source|$workflows"

                case $category in
                    infra) infra_skills+=("$entry") ;;
                    domain) domain_skills+=("$entry") ;;
                    *) custom_skills+=("$entry") ;;
                esac
            else
                # This is a namespace directory (like golem-powers/), recurse
                scan_skill_dir "$item" "${name}:"
            fi
        elif [[ -f "$item" && "$item" == *.md ]]; then
            # Single-file skill
            local full_name="${namespace}${name}"
            local desc=$(extract_desc "$item")
            local source=$(get_source "$item")
            local category=$(categorize_skill "$name" "$desc")
            local entry="$full_name|$desc|$source|0"

            case $category in
                infra) infra_skills+=("$entry") ;;
                domain) domain_skills+=("$entry") ;;
                *) custom_skills+=("$entry") ;;
            esac
        fi
    done
}

# Start scanning from the root commands directory
scan_skill_dir "$SKILLS_DIR" ""

# Print function
print_skills() {
    local title="$1"
    shift
    local skills=("$@")

    if [[ ${#skills[@]} -gt 0 ]]; then
        echo "## $title"
        echo ""
        echo "| Skill | Description | Source | Workflows |"
        echo "|-------|-------------|--------|-----------|"
        for skill in "${skills[@]}"; do
            IFS='|' read -r name desc source workflows <<< "$skill"
            if [[ "$workflows" -gt 0 ]]; then
                echo "| **$name** | $desc | $source | $workflows |"
            else
                echo "| **$name** | $desc | $source | - |"
            fi
        done
        echo ""
    fi
}

# Output grouped by category
print_skills "Infrastructure" "${infra_skills[@]}"
print_skills "Domain" "${domain_skills[@]}"
print_skills "Custom" "${custom_skills[@]}"

echo "---"
echo "*Use \`/skills --search <keyword>\` to filter skills*"

Step 2: Handle Search Filter

If the user invoked /skills --search <keyword>, modify the output to filter:

SEARCH="$1"  # e.g., "git" or "browser"

# In the scan loop, add filtering:
if [[ -n "$SEARCH" ]]; then
    if ! echo "$name $desc" | grep -qi "$SEARCH"; then
        continue  # Skip non-matching skills
    fi
fi

Step 3: Present Results

After running the discovery script, present the results in a clean markdown table grouped by category:

  1. Infrastructure - git, github, secrets, credentials
  2. Domain - browser, PRD, specific tools
  3. Custom - user-created skills

For each skill, show:

  • Name: The skill command (e.g., /github)
  • Description: From frontmatter or first paragraph
  • Source: Where it comes from (golem-powers, superpowers, custom)
  • Workflows: Count of sub-workflows for progressive disclosure skills

Example Output

# Installed Skills

## Infrastructure

| Skill | Description | Source | Workflows |
|-------|-------------|--------|-----------|
| **github** | Git and GitHub CLI operations | golem-powers | 4 |
| **1password** | Secret management with 1Password | golem-powers | 5 |

## Domain

| Skill | Description | Source | Workflows |
|-------|-------------|--------|-----------|
| **brave** | Browser automation via brave-manager | golem-powers | - |
| **prd** | Generate Product Requirements Documents | golem-powers | - |
| **archive** | Archive completed PRD stories | golem-powers | - |

---
*Use `/skills --search <keyword>` to filter skills*

Quick Reference

  • /skills - List all installed skills
  • /skills --search git - Find skills related to git
  • /skills --search secret - Find skills for secrets management

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/skills-discovery-mmlj2p38/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/skills-discovery-mmlj2p38' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/skills-discovery-mmlj2p38/download' --output '.skill-downloads/skills-discovery-mmlj2p38/SKILL.md.part' && mv '.skill-downloads/skills-discovery-mmlj2p38/SKILL.md.part' '.skill-downloads/skills-discovery-mmlj2p38/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Original excerpt: Quick Reference
  • /skills - List all installed skills
  • /skills --search git - Find skills related to git
  • /skills --search secret - Find skills for secrets management

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/skills-discovery-mmlj2p38/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills