Revisada el 2026-10-12
Skill de Claude Code que lista las skills instaladas en ~/.claude/skills/ y separa las propias de las de terceros, con búsqueda por palabra clave.
La separación se basa en una convención: una skill es propia si su cabecera lleva origin: local. La lista se genera en el momento, así que siempre está al día. Útil cuando se acumulan muchas skills y se pierde la pista de cuáles se han escrito.
| Datos clave | |
|---|---|
| Formato | Skill de Claude Code (SKILL.md)1 |
| Idioma | Español |
| Instalación | Global: ~/.claude/skills/skill-list/SKILL.md. Solo un proyecto: .claude/skills/skill-list/SKILL.md1 |
Prompt
Copia el bloque completo en un archivo SKILL.md. La cabecera inicial (name y description) es la que usa Claude Code para decidir cuándo ofrecer la skill.1
---
name: skill-list
description: Lista todas las skills disponibles, marcando cuáles son propias (origin local) y cuáles son del sistema. Soporta búsqueda por palabra clave. Uso: /skill-list, /skill-list epub, /skill-list video
origin: local
tools: Bash
---
# Skill List
Muestra el inventario actualizado de skills, marcando las creadas por el usuario.
## Ejecución
Corre este script bash y muestra la salida formateada:
```bash
python3 - << 'EOF'
import os, re
SKILLS_DIR = os.path.expanduser("~/.claude/skills")
# Argumento de búsqueda opcional (pasado como args al invocar la skill)
import sys
search = " ".join(sys.argv[1:]).lower() if len(sys.argv) > 1 else ""
skills = []
for name in sorted(os.listdir(SKILLS_DIR)):
skill_file = os.path.join(SKILLS_DIR, name, "SKILL.md")
if not os.path.isfile(skill_file):
continue
content = open(skill_file, encoding="utf-8", errors="ignore").read()
# Extraer frontmatter
origin = ""
description = ""
for line in content.splitlines():
if line.startswith("origin:"):
origin = line.split(":", 1)[1].strip().strip('"')
if line.startswith("description:"):
description = line.split(":", 1)[1].strip().strip('"')
# Propia solo si origin es exactamente "local"
is_mine = origin.strip() == "local"
skills.append({
"name": name,
"origin": origin,
"description": description,
"is_mine": is_mine,
})
# Filtrar si hay búsqueda
if search:
skills = [s for s in skills if search in s["name"].lower() or search in s["description"].lower()]
# Separar: propias vs sistema
mine = [s for s in skills if s["is_mine"]]
system = [s for s in skills if not s["is_mine"]]
total = len(skills)
print(f"{'='*60}")
print(f" SKILLS DISPONIBLES ({total} encontradas{' · búsqueda: '+search if search else ''})")
print(f"{'='*60}")
if mine:
print(f"\n★ MIS SKILLS ({len(mine)})")
print(f"{'─'*60}")
for s in mine:
desc = s['description'][:65] + "…" if len(s['description']) > 65 else s['description']
print(f" /{s['name']}")
if desc:
print(f" {desc}")
print(f"\n SKILLS DEL SISTEMA ({len(system)})")
print(f"{'─'*60}")
for s in system:
desc = s['description'][:65] + "…" if len(s['description']) > 65 else s['description']
print(f" /{s['name']:<35} {desc}")
print(f"\n{'='*60}")
print(f" Uso: /skill-list [palabra clave]")
print(f"{'='*60}")
EOF
```
## Si el usuario pasó argumentos al invocar la skill
Si el usuario escribió `/skill-list epub` o `/skill-list video`, pasa esa palabra como argumento al script (reemplaza `sys.argv[1:]` con la palabra indicada, o simplemente filtra en el output).
En la práctica: lee los argumentos de la invocación y filtra la lista por nombre y descripción que contengan esa palabra.
## Notas
- **★ MIS SKILLS**: origin = `local` en el frontmatter → creadas por el usuario
- **SKILLS DEL SISTEMA**: cualquier otro valor de `origin`, o ninguno → vienen de terceros o de un paquete instalado
- La lista se genera en tiempo real desde `~/.claude/skills/` — siempre actualizada
- Para agregar una skill propia que aparezca en "Mis skills": poner `origin: local` en el frontmatterCómo adaptarla
- Si no marcas tus skills con
origin: local, la lista las pondrá todas como de terceros. Añade esa línea a la cabecera de las tuyas. - La skill solo mira
~/.claude/skills/. Las de proyecto, en.claude/skills/, no aparecen. - Puedes cambiar el valor de
originque cuenta como propio editando el script.
Véase también
Referencias
Footnotes
-
Extend Claude with skills. Anthropic, documentación de Claude Code. Consultado el 2026-10-10. ↩ ↩2 ↩3