ES · Leer en español Explore for free

Recipe · Basic · 10 min

Claude Code in Spanish, no fluff: language and the Concise style

Make Claude Code always answer in Spanish and without filler: the language setting, the Concise style and a CLAUDE.md rule against drifting to English.

Cover: Claude Code in Spanish, no fluff: language and the Concise style

Tested with Claude Code 2.1.316 · reviewed

See the files on GitHub Free · MIT license

The problem

You write to Claude Code in Spanish and it answers in English, or it answers in Spanish but with three paragraphs of introduction, a narration of every step and a final summary that repeats what it already said. It can always answer in Spanish and without filler, but no single piece achieves that: you need to combine three, the language setting, the Concise output style and a specific rule in CLAUDE.md. Even then, after reading documentation or logs in English, it sometimes switches to English (issue #96326, open).

The solution

Three pieces and an optional one. The files are in the free repository ctrlia-claude-code-espanol; its en/ folder has the same setup with English examples (en/settings.json, en/claude-md-language.md and the en/output-styles/straight-to-the-point.md style), which works for any language if you swap "English" for yours.

1. Piece 1: the language setting

Open ~/.claude/settings.json (create it if it does not exist) and add language and, while you are at it, the style from step 2:

{
  "language": "spanish",
  "outputStyle": "Concise"
}

The official documentation says Claude Code passes the language value as-is to Claude as an instruction to always answer in that language. There is no closed list, so any name Claude understands works, and it is not validated: if you misspell it, there is no error, it simply arrives misspelled.

In a claude -p run you can pass it without touching files with --settings '{"language":"spanish"}'.

2. Piece 2: the Concise style against filler

Since v2.1.237 Claude Code ships the Concise output style: the first sentence says what happened or what the answer is, with no introduction, no narration of every step and no final summary, and a simple question gets one to three sentences. The documentation makes clear that it does the engineering work as thoroughly as the default style, and that it still writes out in full what you need to act safely: error reports, failing tests, security warnings and confirmations of destructive actions.

Turn it on with /output-style concise (v2.1.269 or later) or from /config > Output style; both save it to .claude/settings.local.json, only for that project. To make it your style in every project, put "outputStyle": "Concise" in ~/.claude/settings.json, as in step 1.

Careful: in the settings file that value is case-sensitive. "concise" in lowercase matches no style and leaves you on the default style without warning (the /output-style command, on the other hand, ignores case). The new style applies from your next message.

3. Piece 3: a language rule that covers short messages

Issue #96326 describes the pattern: with the language rule in CLAUDE.md, the language setting and the Concise style, the model switched to English right after reading English output (specs, subagent reports, code reviews), especially in short progress lines and final summaries. Correcting it in the conversation only lasted one turn.

There is no official fix as of 1 Nov 2026, but you can close the gap the report points at: write a rule in ~/.claude/CLAUDE.md that names those cases specifically (progress messages, summaries, questions) and says what to do with English text (quote it as-is, but explain it in Spanish). Also say what must not be translated: function names, commands and literal error messages.

## Idioma
- Escribe SIEMPRE en español: respuestas, preguntas, mensajes de progreso entre herramientas y resúmenes finales.
- Aunque leas documentación, logs, informes de subagentes o revisiones en inglés, tu texto sigue en español.
- Cita tal cual (sin traducir) nombres de funciones, comandos, rutas y mensajes de error; explícalos en español.
- Comentarios de código y mensajes de commit: en el idioma que ya use el proyecto.

The rule is in Spanish on purpose. It says: always write in Spanish (answers, questions, progress messages between tools and final summaries); even when you read documentation, logs, subagent reports or reviews in English, your text stays in Spanish; quote function names, commands, paths and error messages as-is and explain them in Spanish; code comments and commit messages follow the project's existing language.

The official documentation reminds you that CLAUDE.md and styles are instructions Claude follows, not guarantees: if you need something that always holds, that is a hook, and there is no sensible hook for the language of free text. That is why this recipe reduces the drift; it does not eliminate it. If you want the rest of your CLAUDE.md to work too, see how to write a CLAUDE.md that works.

4. Optional: your own "Español directo" style

If Concise falls short or you want your own rules (tone, answer format, no emojis), create a custom style. It is a Markdown file in ~/.claude/output-styles/ (for you) or .claude/output-styles/ (for the project); the file name is the style name unless you set name in the frontmatter. Save this as ~/.claude/output-styles/espanol-directo.md:

---
name: Español directo
description: Respuestas en español, primero el resultado, sin relleno
keep-coding-instructions: true
---
Responde en español neutro.

- La primera frase dice el resultado o la respuesta.
- Nada de introducciones, de narrar cada paso ni de resumen final repetido.
- No elogies la pregunta ni digas que el usuario tiene razón: ve al contenido.
- Preguntas simples: 1-3 frases. Errores, tests que fallan y avisos de seguridad: completos.
- Sin emojis.

In English, the style says: answer in neutral Spanish; the first sentence gives the result or the answer; no introductions, no step-by-step narration and no repeated final summary; do not praise the question or tell the user they are right, get to the point; simple questions in 1-3 sentences, but errors, failing tests and security warnings in full; no emojis.

The key setting is keep-coding-instructions: true: without it, a custom style leaves out the part of the system prompt with Claude Code's engineering instructions (how to scope changes, comment and verify the work). Since you only want to change how it talks, not how it codes, set it to true. Turn it on with /output-style "Español directo" or from /config. If you create or edit the file with Claude Code open, restart it so it reads the file.

Two documented limits: styles apply to the main conversation and to forks, but other subagents use their own system prompt, so their reports may arrive in English; and a style adds input tokens (prompt caching makes it cheaper after the first message).

Check it

Open a new session in a project with an English README and ask "resume el README y dime qué falta" (summarize the README and tell me what is missing). It should answer in Spanish, starting with the conclusion, and quote file names as-is. Then ask for something that reads a lot of English, such as "revisa el CHANGELOG y dime qué cambió en la última versión" (review the CHANGELOG and tell me what changed in the latest version), and watch the short messages between tools: that is where the drift shows up. If it switches to English, do not argue: write "en español" and, if it happens again, add the exact case that failed to the CLAUDE.md rule.

Two quick checks from the terminal:

# Lista los estilos disponibles y el activo (también funciona sin interfaz)
claude -p "/output-style" < /dev/null

# Una ejecución puntual en español y concisa sin tocar archivos
claude -p --settings '{"language":"spanish"}' "Explain what package.json scripts do in this repo" < /dev/null

The first lists the available styles and the active one (it also works headless); the second is a one-off run in Spanish without touching any files. With version 2.1.316 and a clean configuration, with the settings.json from step 1 and the style from step 4 installed, the first command printed this (your style appears at the end of the list, and (current) marks the active one):

Output style: Concise

Available styles:
- default
- Proactive: Claude executes immediately, minimizes interruptions, and prefers action over planning
- Concise (current): Claude responds tersely, leading with results and skipping preamble and narration
- Explanatory: Claude explains its implementation choices and codebase patterns
- Learning: Claude pauses and asks you to write small pieces of code for hands-on practice
- Español directo: Respuestas en español, primero el resultado, sin relleno

Usage: /output-style <style>

What we could not measure cleanly is the effect of language on the answers: on our test machine the global CLAUDE.md already requires Spanish, so every answer came out in Spanish because of that. Run the before-and-after test on your own account.

To keep your configuration healthy, /doctor prompt-audit (v2.1.283) reviews your CLAUDE.md files, skills, agents and commands for instructions written for older models (its report lists first the paths and commands that no longer exist and the instruction files that contradict each other). And /output-style with no arguments tells you which style is active. If you have language rules repeated in several places (global CLAUDE.md, project CLAUDE.md and a style), keep one clear version: contradictions make the result worse.

Why it works

Each piece acts in a different place. language is passed as-is to Claude as an instruction to answer in that language. The output style changes the part of the system prompt that decides how the answer is written, without touching the engineering work (Concise out of the box, or your own with keep-coding-instructions: true). And the CLAUDE.md rule names the cases in which, according to #96326, the model switches to English: short progress messages and summaries after reading English text. All three are instructions, not guarantees, which is why together they work better than any one alone. More details in the settings reference, the output styles page, the settings page and the memory and CLAUDE.md page.

Common mistakes

FAQ

Do I write "spanish" or "español"?

Either, as long as Claude understands it: the value is passed as-is and not validated. "spanish" is the documentation's example and also works for voice dictation.

I set "outputStyle": "concise" and nothing changes.

In the settings file the name is case-sensitive: write "Concise". A name that does not match leaves you on the default style without warning.

Does Concise make Claude work worse or review less?

According to the documentation, no: it only shortens the text. It does the work just as thoroughly and keeps errors, failing tests and security warnings in full.

It still answers in English sometimes. Is there a fix?

That is issue #96326, still open. What helps: the CLAUDE.md rule that names progress messages and summaries, and reminding it when it happens. No instruction guarantees it 100%.

Do subagents answer in Spanish too?

The output style does not apply to subagents (except forks). The documentation does not say whether language reaches them, so their reports may come in English; Claude will summarize them for you in Spanish if the rule asks for it.

What about Claude Code's interface in Spanish (menus, notices)?

The language documentation only mentions answers, voice dictation and session titles; it does not promise to translate the interface. Also, since 2.1.309 the errors from git commands that Claude Code runs for itself are shown in English even if your git is set to another language.

The whole library