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.md y una skill en .claude/skills/deploy/SKILL.md crean ambos el comando /deploy. Los commands/ 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:

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.

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


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

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).