Slash commands en Claude Code: crea tus propios comandos
Un comando slash personalizado es un archivo Markdown cuyo nombre se convierte en el comando: commands/end-session.md se invoca como /end-session, y su contenido es el prompt que se ejecuta. Sirven para convertir los prompts que repites cada semana en comandos reutilizables, con la ventaja de poder fijar el modelo, restringir las herramientas y aceptar argumentos.
Dato importante: los comandos slash y las skills son el mismo sistema fusionado. Un archivo en
.claude/commands/deploy.mdy una skill en.claude/skills/deploy/SKILL.mdcrean ambos el comando/deploy. Loscommands/siguen funcionando; la forma recomendada hoy es la de skills, que añade carpeta de apoyo y activación automática.
Por qué crear comandos propios
Si observas tu uso, hay prompts que repites casi palabra por palabra: "resume los cambios del último commit y propón un mensaje convencional", "cierra la sesión: commitea todo y lista lo pendiente". Cada vez los retipeas y los pules un poco, y la consistencia se pierde. Un comando slash los fija de una vez.
Además del ahorro de tipeo, ganas tres cosas: especificar qué modelo corre ese comando (Haiku para un commit, Opus para una revisión profunda), restringir las tools que puede usar, y aceptar argumentos para parametrizarlo.
Cómo se crea
Un comando es un archivo Markdown. El nombre del archivo (o del directorio de la skill) es el nombre del comando. Hay dos niveles:
- Proyecto:
.claude/commands/<nombre>.md(o.claude/skills/<nombre>/SKILL.md), dentro del repo. Si lo commiteas, todo el equipo tiene el mismo comando. - Usuario:
~/.claude/commands/<nombre>.md, disponible en cualquier proyecto. Para tus automatizaciones personales.
Anatomía: el frontmatter
El comando puede ser un prompt en texto plano, pero gana mucho con un frontmatter YAML que declara sus propiedades:
---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
description: Cierra la sesión: commit de los cambios y resumen de lo pendiente
model: haiku
argument-hint: <mensaje extra opcional>
---
Eres un asistente que cierra sesiones de trabajo. Haz lo siguiente:
1. Ejecuta `git status` y reporta los cambios.
2. Haz `git add` de los archivos relevantes (nunca credenciales ni .env).
3. Commitea con un mensaje convencional que resuma los cambios.
4. Lista lo que quedó pendiente para mañana.
Si el usuario pasó un mensaje extra ($ARGUMENTS), incorpóralo al commit.
allowed-tools: restringe qué herramientas puede usar (principio de mínimo privilegio).description: el texto que ves en la lista al escribir/.model: qué modelo corre el comando.argument-hinty$ARGUMENTS: para parametrizarlo.
Cuando escribes / en una sesión, Claude Code lista los comandos nativos y los personalizados, con un indicador (project) o (user) según de dónde vienen.
Slash command, skill o subagente
- Slash command: lo invocas tú, control total sobre cuándo se ejecuta.
- Skill: el modelo la activa por su descripción; mejor para capacidades con referencias modulares.
- Subagente: para tareas pesadas que conviene aislar en su propio contexto.
Preguntas frecuentes
¿Qué es un slash command en Claude Code?
Es un comando personalizado que creas con un archivo Markdown: el nombre del archivo se vuelve el comando (commands/deploy.md se invoca como /deploy) y su contenido es el prompt que se ejecuta. Sirve para reutilizar prompts recurrentes de forma consistente.
¿Cómo creo un comando slash personalizado?
Crea un archivo .claude/commands/<nombre>.md (proyecto) o ~/.claude/commands/<nombre>.md (usuario) con el prompt. Opcionalmente añade un frontmatter YAML para fijar el modelo, restringir las herramientas (allowed-tools) y aceptar argumentos.
¿Cuál es la diferencia entre un slash command y una skill?
Son el mismo sistema fusionado. La diferencia práctica: un slash command lo invocas tú con /; una skill, además, el modelo puede activarla automáticamente por su descripción y soporta una carpeta con archivos de apoyo. La forma recomendada hoy es la de skills.
¿Puedo pasarle argumentos a un comando slash?
Sí. Con argument-hint en el frontmatter y la variable $ARGUMENTS en el cuerpo del prompt, el comando incorpora lo que escribas después de invocarlo.
Recursos relacionados
- Cómo crear una skill: el sistema completo del que los comandos forman parte.
- Configurar Claude Code: settings.json.
- Guía completa para dominar Claude Code.
Tu siguiente paso
Los comandos nativos que más se usan están en la Cheat Sheet de Claude Code: una hoja imprimible, en español.
Descargar la Cheat Sheet gratis
Es el resumen de Ship with Claude Code, la guía de Takren (14 módulos, 190 capítulos, actualizaciones gratuitas).