Estilos de salida de Claude Code explicados
Los estilos de salida modifican el prompt del sistema de Claude Code. Descubre cómo cambian cada respuesta, qué hacen los cinco estilos integrados y cómo crear uno propio.
Qué es un estilo de salida en Claude Code
Un estilo de salida en Claude Code es un bloque de instrucciones que Claude Code añade a su prompt del sistema. Cambia la forma en que Claude te responde: el rol que adopta y la estructura de lo que muestra. No enseña a Claude nada sobre tu base de código ni puede darle permiso para ejecutar acciones.
Claude Code incluye cinco estilos integrados. Tu elección se guarda en una única clave de configuración, outputStyle, y esa clave se lee una sola vez al iniciar la sesión. Este hecho explica la mayor parte de la confusión sobre esta función: un estilo que cambias durante una sesión se guarda, pero se ignora hasta que borras la sesión.
En un VPS, esto no es sólo una preferencia estética. El transcript es lo que lees a través de una conexión SSH (secure shell), normalmente dentro de una ventana de tmux. Por tanto, cada línea que Claude muestra es una línea que esperas y una línea en un búfer de desplazamiento de tamaño fijo.
Dónde se encuentra la configuración outputStyle
Seleccione un estilo en el menú /config, en Output style. Claude Code escribe la selección en .claude/settings.local.json dentro del proyecto en el que está trabajando.
El comando independiente /output-style ya no existe. Se marcó como obsoleto en v2.1.73 y se eliminó en v2.1.91, por lo que no hace nada en una versión actual. Compruebe qué versión está ejecutando antes de seguir una guía antigua. Las versiones de esta página se comprobaron en agosto de 2026.
claude --versionTambién puede establecer la clave manualmente. Cuatro archivos de configuración pueden contenerla. El archivo más específico tiene prioridad sobre el más general.
~/.claude/settings.jsones el archivo del usuario. Se aplica a todos los proyectos de ese equipo..claude/settings.jsones el archivo del proyecto. Se confirma en git, por lo que se aplica a todas las personas que clonen el repositorio..claude/settings.local.jsones el archivo local del proyecto. No se confirma en git y tiene prioridad sobre los dos anteriores. Este es el archivo que modifica el menú/config.- La configuración administrada, implementada por un equipo de TI desde una ruta del sistema como
/etc/claude-code/en Linux, tiene prioridad sobre todo lo demás.
El valor de la clave es el nombre del estilo:
{
"outputStyle": "Concise"
}Para una sola sesión, pase la misma clave en la línea de comandos. La opción --settings acepta una ruta o una cadena JSON insertada directamente. Sus valores tienen prioridad sobre las mismas claves de los archivos de configuración durante esa ejecución:
claude --settings '{"outputStyle": "Concise"}'Las etiquetas de los menús y los comandos de barra han cambiado al menos una vez desde que se introdujo esta función. La clave outputStyle no ha cambiado. Si una captura de pantalla de cualquier guía deja de coincidir con lo que ve, establezca la clave directamente y confírmela con /status, que muestra las fuentes de configuración activas.
Por qué el nuevo estilo no hace nada hasta que se borra
Claude Code crea el prompt del sistema una sola vez, cuando se inicia la sesión, y el estilo de salida forma parte de ese prompt del sistema. Por eso, cambiar la configuración mientras la sesión está activa guarda el valor, pero no produce ningún cambio visible: la sesión en ejecución sigue enviando el prompt que creó al iniciarse. El nuevo estilo se carga en el siguiente /clear o en el siguiente inicio.
/clear
/context/context muestra qué ocupa actualmente la ventana de contexto, desglosado por categoría, incluido el prompt del sistema. Ejecútelo en una sesión nueva con cada estilo. La línea del prompt del sistema es la parte de entrada de la comparación. También es la forma más rápida de confirmar que se cargó un estilo personalizado. Para consultar una visión más amplia de lo que llena esa ventana, vea cómo se llena el contexto en una sesión larga de Claude Code.
La configuración espera en lugar de aplicarse de forma dinámica por un motivo. La API reutiliza las solicitudes repetidas mediante una caché de prompts que coincide con el inicio de cada solicitud, y el prompt del sistema se encuentra al principio. Reescribirlo durante la conversación invalidaría todo lo que viene después. Por tanto, el siguiente turno tendría que procesar de nuevo todo el historial como entrada nueva. Fijar el estilo al inicio de la sesión evita ese coste. Cambiar de estilo es barato. Sólo requiere borrar la sesión.
Qué cambia cada estilo de salida integrado en la transcripción
- Default es el prompt de sistema normal de Claude Code, escrito para tareas de ingeniería de software.
- Concise presenta primero el resultado. Elimina la introducción y la narración paso a paso, y mantiene las respuestas breves hasta que solicites más detalles. El trabajo de ingeniería que hay detrás no cambia. Nunca acorta un informe de errores ni una advertencia de seguridad, y sigue solicitando confirmación completa antes de una acción destructiva. Este estilo requiere Claude Code v2.1.237 o posterior.
- Explanatory añade «Insights» educativos entre los pasos de una tarea. Explica por qué se tomó una decisión de implementación y qué patrón utiliza ya tu base de código. La transcripción se hace más larga de forma intencionada.
- Learning va más allá. Claude comparte esos análisis y después te pide que escribas pequeñas partes del código, marcando cada punto con un comentario
TODO(human)en el archivo. - Proactive hace que Claude actúe en lugar de preguntar. Toma decisiones razonables sobre tareas rutinarias en vez de detenerse para solicitar confirmación.
Lee con atención el último punto, porque es el que más se malinterpreta. Proactive es una directriz del prompt de sistema. Cambia lo que Claude intenta hacer. El modo de permisos sigue determinando qué se ejecuta realmente sin preguntarte. Este es el ajuste importante en un servidor que dejas funcionando sin supervisión. Esto se explica en el modo automático y los modos de permisos de Claude Code.
En qué se diferencia un estilo de salida de CLAUDE.md, un hook y un subagente
Todas estas opciones parecen indicarle a Claude cómo debe comportarse, pero funcionan en capas diferentes.
- Un estilo de salida se añade al prompt del sistema. Se aplica a todas las respuestas de la conversación principal.
- CLAUDE.md se añade como mensaje de usuario después del prompt del sistema. Es el lugar adecuado para las convenciones del proyecto y los datos sobre el código.
--append-system-promptañade texto al prompt del sistema para una sola invocación, sin eliminar nada. Es la versión puntual de un estilo de salida.- Un hook es un comando de shell que Claude Code ejecuta cuando se produce un evento. El arnés lo impone, por lo que se ejecuta aunque Claude no lo hubiera elegido. Consulte qué puede hacer y qué no puede hacer un hook de Claude Code.
- Un subagente se ejecuta con su propio prompt del sistema y su propio conjunto de herramientas.
Una prueba sencilla permite decidir entre las dos primeras opciones. Los datos sobre el proyecto deben ir en CLAUDE.md, porque Claude necesita conocerlos. La redacción debe ir en un estilo de salida, porque determina cómo se lee la respuesta. Todo lo que deba ocurrir siempre, independientemente de lo que decida el modelo, debe ser un hook.
Los estilos de salida sólo se aplican a la conversación principal. Un subagente no hereda el estilo, porque inicia su propia conversación con su propio prompt del sistema. Una bifurcación de la conversación actual es la excepción, porque hereda exactamente el prompt del sistema de la conversación principal. Si un subagente escribe de una forma que no le gusta, edite el archivo de ese agente en lugar de modificar su estilo.
Cómo escribir su propio estilo de salida
Un estilo de salida personalizado es un archivo Markdown con frontmatter. Guárdelo en su directorio personal para usarlo en todos los proyectos, o dentro del repositorio para mantenerlo junto con el código. El directorio del usuario es ~/.claude/output-styles/ y el directorio del proyecto es .claude/output-styles/.
mkdir -p ~/.claude/output-styles
cat > ~/.claude/output-styles/terse-ops.md <<'EOF'
---
name: Terse ops
description: Command first, explanation after, for SSH sessions
keep-coding-instructions: true
---
Lead with the command or the file change. Put the explanation after it, in two sentences or fewer.
Do not narrate what you are about to do. Report what you did.
When a command can fail, print the one check that proves it worked and say what a healthy result looks like.
EOFInicie una sesión y abra /config. Su estilo aparece en la lista Estilo de salida con la descripción que escribió. Si no aparece, el archivo no se está leyendo: compruebe la ruta y confirme que el bloque de frontmatter --- sea lo primero del archivo. El nombre del archivo se convierte en el nombre del estilo, salvo que el frontmatter establezca name; por eso este se llama Terse ops y no terse-ops.
Selecciónelo o establezca la clave con ese nombre exacto y borre:
{
"outputStyle": "Terse ops"
}Un campo determina si el archivo es un ajuste o un reemplazo. keep-coding-instructions tiene false de forma predeterminada, lo que significa que un estilo personalizado elimina las instrucciones integradas de ingeniería de software de Claude Code y funciona sólo con su texto. Esas instrucciones integradas indican a Claude cómo delimitar un cambio y cómo verificar su trabajo. Omita el campo para un asistente de redacción o un analista de datos, cuando nada de eso sea aplicable. Establézcalo en true para cualquier caso que siga afectando al código; de lo contrario, se preguntará por qué un ingeniero cuidadoso ha dejado de comprobar su propio trabajo.
description es la línea que el selector /config muestra junto al nombre. Escríbala pensando en el momento, dentro de seis meses, en que tenga que elegir entre dos de sus propios estilos.
Por qué un estilo conciso es diferente por SSH
En una VPS lees la transcripción a través de varias capas que no existen en un terminal local, y cada capa penaliza la verbosidad.
El desplazamiento es el primer factor. En tmux, cada panel conserva un número fijo de líneas establecido por history-limit, cuyo valor predeterminado es 2000. Una transcripción explicativa llena ese búfer más rápido, por lo que la parte inicial de la sesión se expulsa antes y desaparece la salida a la que querías volver. Auméntalo si necesitas más espacio:
echo 'set -g history-limit 20000' >> ~/.tmux.conf
tmux source-file ~/.tmux.confLos paneles creados después de ese cambio conservan 20000 líneas cada uno, a costa de más memoria por panel. Los paneles que ya estaban abiertos mantienen el límite anterior, porque el tamaño del búfer se fija cuando se crea el panel. Si todavía estás preparando la disposición de la sesión, ejecutar Claude Code dentro de tmux en una VPS explica el procedimiento.
La latencia es el segundo factor. La respuesta se transmite al terminal mientras se genera. En un enlace con un tiempo de ida y vuelta alto, una introducción larga es tiempo que pasas viendo aparecer texto antes de que llegue la respuesta.
Los tokens de salida son el tercer factor. Cada línea explicativa se factura como salida. Los estilos Explanatory y Learning son más largos por diseño. Concise es más corto por diseño, porque indica a Claude que mantenga las respuestas breves de forma predeterminada.
No confíes en un porcentaje proporcionado por nadie, incluida esta página. El tamaño de la diferencia depende de tus prompts, del modelo y del trabajo que le solicites, así que mide tus propios resultados antes y después. Ejecuta la misma tarea real en dos sesiones nuevas: una con Default y otra con Concise, y después compara. Una statusline es el medidor más sencillo, porque Claude Code entrega a tu script un objeto JSON por stdin que ya contiene el nombre del estilo y los recuentos de tokens:
cat > ~/.claude/statusline.sh <<'EOF'
#!/bin/bash
input=$(cat)
style=$(echo "$input" | jq -r '.output_style.name // "default"')
out=$(echo "$input" | jq -r '.context_window.total_output_tokens // 0')
cost=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
echo "style=$style out=$out cost=$cost"
EOF
chmod +x ~/.claude/statusline.shConfigura el ajuste statusLine para que lo use:
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}La barra situada en la parte inferior de la sesión muestra ahora el estilo activo junto a los tokens que ha producido. Es exactamente la comparación entre antes y después que necesitas. El script necesita jq, el analizador JSON de línea de comandos, así que instálalo primero con sudo apt install -y jq. Si la barra sigue vacía, ejecuta el script manualmente y pásale algo de JSON mediante una tubería, porque una statusline que termina con un código distinto de cero no muestra ni informa de nada. Una statusline personalizada de Claude Code enumera el resto de los campos de ese objeto. Para la facturación, en lugar del estado de la sesión, consulta adónde van realmente los tokens de Claude Code y las herramientas que registran el gasto de Claude Code.
Cómo comprobar qué estilo de salida está cargado realmente
Use estas comprobaciones en lugar de hacer suposiciones.
/statusmuestra las fuentes de configuración activas para esta sesión, incluido si se están aplicando configuraciones administradas por una organización./contextmuestra el prompt del sistema cargado como una categoría en el desglose de la ventana de contexto.claude doctor, ejecutado desde el shell sin iniciar una sesión, muestra los diagnósticos de instalación y configuración, e informa de los archivos de configuración que no son válidos.
Cuando un estilo no se aplica, la causa casi siempre es una de estas dos. La primera es que lo cambió durante la sesión, así que ejecute /clear. La segunda es la precedencia: .claude/settings.local.json tiene prioridad sobre .claude/settings.json, y ambos tienen prioridad sobre ~/.claude/settings.json. Como el selector /config escribe en el archivo local, un estilo que el equipo haya confirmado en .claude/settings.json queda sobrescrito silenciosamente en cualquier máquina donde alguien haya usado el menú alguna vez. /status indica qué fuente ganó.
Un error de sintaxis JSON produce el mismo síntoma, pero se corrige de otra forma. claude doctor indica el nombre del archivo que no pudo analizar, por lo que conviene ejecutarlo antes de buscar una causa más compleja.
FAQ
¿Por qué dejó de funcionar el comando /output-style?
Se dejó de admitir en v2.1.73 y se eliminó en v2.1.91, por lo que el comando ya no existe en una compilación de mediados de 2026. Ejecute claude --version para comprobar qué versión tiene. Elija el estilo en /config, en Output style, o establezca la clave outputStyle en un archivo de configuración. La clave ha sobrevivido al comando, por lo que establecerla directamente es la instrucción que conviene anotar.
Cambié el estilo de salida y no ocurrió nada. ¿Por qué?
El estilo de salida forma parte del prompt del sistema, y Claude Code crea ese prompt una sola vez al iniciar la sesión. Un cambio realizado durante la sesión se guarda, pero no se aplica, porque la sesión activa sigue enviando el prompt que creó al iniciarse. Ejecute /clear o inicie una sesión nueva. Si todavía no se aplica, ejecute /status para comprobar qué origen de configuración prevaleció, ya que .claude/settings.local.json prevalece sobre .claude/settings.json y ambos prevalecen sobre ~/.claude/settings.json.
¿El estilo de salida Concise ahorra dinero?
Reduce los tokens de salida en la dirección esperada, porque indica a Claude que mantenga las respuestas breves de forma predeterminada. La cantidad depende de los prompts y del modelo, así que considere cualquier porcentaje publicado como una medición del trabajo de otra persona. Mida sus propios resultados: ejecute /context en una sesión nueva con cada estilo para el lado de entrada; después, ejecute la misma tarea con cada estilo y compare el número de tokens de salida. Concise nunca acorta un informe de errores ni una advertencia de seguridad, por lo que las partes que más necesita leer permanecen completas.
¿Un cambio de estilo de salida modifica la forma en que escriben mis subagentes?
No. Los estilos de salida se aplican sólo a la conversación principal, porque un subagente inicia su propia conversación con su propio prompt del sistema y su propio conjunto de herramientas. Un fork de la conversación actual es la excepción, porque un fork hereda exactamente el prompt del sistema del proceso principal. Para cambiar la forma en que responde un subagente, edite el archivo propio de ese agente.
¿Un estilo de salida puede permitir que Claude ejecute comandos sin preguntar?
No. Un estilo de salida es texto del prompt del sistema, por lo que sólo puede influir en lo que Claude intenta hacer. El estilo Proactive hace que Claude suponga y actúe en lugar de detenerse ante decisiones rutinarias, pero no puede aprobar un comando. El modo de permisos determina qué se ejecuta sin solicitar confirmación, y esa es la configuración que debe comprobar antes de dejar una sesión ejecutándose en un servidor.