Running Claude Code and Codex in German
CLAUDE.md and AGENTS.md that actually stick
Neither tool's documentation pages we checked offer a locale or response-language setting — they offer instruction files. Claude Code reads CLAUDE.md at the start of every session; Codex builds an instruction chain from AGENTS.md files. So the German output is something you write down once, not something you configure away.
Updated 2026-10-01
Four mechanics that decide the outcome
When CLAUDE.md is read
Claude Code's memory page states: "You write these files in plain text; Claude reads them at the start of every session."
How the text arrives
The same page notes that CLAUDE.md content is delivered as a user message after the system prompt, not as part of the system prompt itself.
How Codex reads instructions
Codex documents AGENTS.md to "Give Codex extra instructions and context for your project", building a chain from the global file down to the working directory.
Size guidance
Claude Code's own advice: "Target under 200 lines per CLAUDE.md file." — "Longer files consume more context and reduce adherence."
Why a language instruction has to be written down
Both tools treat instruction files as context rather than enforced configuration — Claude Code's documentation says exactly that — so a rule telling the tool to answer in German behaves like any other convention: it holds when it is short, explicit and near the top, and it drifts when the file is a wall of prose. The reliable pattern is one language rule, one scope for code identifiers, and one place where exceptions are listed.
What German teams get wrong first
Three recurring mistakes: hiding the rule inside a comment (Claude Code strips block-level HTML comments from CLAUDE.md before injection), leaving the code language unspecified so the model renames identifiers in German, and letting the file grow past the point where instructions are followed. All three are documented behaviours, not folklore.
The three files worth knowing
Personal preferences across every project — the natural home of a line telling the tool to explain in German.
Team-shared instructions for the repository, committed and reviewed like code.
Codex's project instruction file, discovered from the repository root down to the working directory.
Documented vs. your own experiment
Documented
CLAUDE.md files give Claude persistent instructions and are read at the start of every session; they can import other files with @path/to/import; block-level HTML comments are stripped before injection; content arrives as a user message after the system prompt; the docs advise targeting under 200 lines and note that longer files reduce adherence; Claude Code reads AGENTS.md only when no CLAUDE.md is present above the working directory unless you configure it otherwise. Codex documents AGENTS.md for extra project instructions, merges files from the repository root toward the working directory so nearer files take precedence, skips empty files, and stops adding them at the size defined by project_doc_max_bytes.
Not documented — test it on your repo
No response-language or locale switch appears on the Claude Code or Codex pages we checked, so nobody should promise you a setting that turns German on. How strongly a model keeps German across long tool-heavy sessions, what it does with ß and umlauts inside identifiers, and whether your own file ordering still loads what you expect — all three are things you verify with /context and a short task, not things this page can settle.
Two files, two jobs
CLAUDE.md — behavioural guidance
The Claude Code docs split the two jobs: settings for technical enforcement, CLAUDE.md for behavioural guidance. Language, tone and explain-before-patching rules belong in the second.
AGENTS.md — project context for Codex
Codex reads AGENTS.md as instructions and context for the project, with files closer to the working directory overriding earlier guidance — the same place to state the German convention once, per repository.
A German CLAUDE.md you can paste
Keep it short and unambiguous. Recommended block: "Sprache: Antworte in Erklärungen, Plänen und Review-Kommentaren auf Deutsch. Code, Bezeichner, Dateinamen, Commit-Messages und Testnamen bleiben auf Englisch. Keine Umlaute in Bezeichnern — ae/oe/ue/ss verwenden. Halte jede Erklärung unter 10 Sätzen, bevor du fragst." Save the file as UTF-8, run /context in a session and confirm the file is listed under Memory files, then give it one real task and check whether the German survived the tool calls.
On QCode
Instruction files travel with the CLI, not with the endpoint: whichever model you call, CLAUDE.md and AGENTS.md are read by the tool before the request leaves. QCode's own pages describe pointing Claude Code at the Anthropic-compatible API via ANTHROPIC_BASE_URL and adding a QCode profile to ~/.codex/config.toml, and state that the live model list is /models — so switching models under the same instruction file is the normal case, and the German rules keep applying.
FAQ
Is there a language setting?
Not on the pages we checked — neither Claude Code's settings and environment-variable references nor Codex's instruction documentation lists a response-language or locale option. What is documented is instruction files, so the language is written down rather than configured.
Where do I put the rule so it always applies?
In your user file: Claude Code documents ~/.claude/CLAUDE.md as personal preferences for all projects and ./CLAUDE.md as team-shared instructions for the project. Put the language rule in the personal file, the repository conventions in the project file.
Does German in CLAUDE.md work at all?
The file is plain-text Markdown, and the docs describe reading it at the start of every session without any statement about natural language, so German text is just content. What matters is length and placement: the docs advise under 200 lines and warn that longer files reduce adherence.
Should identifiers and commits be German too?
That is a convention, not a vendor fact — but state it explicitly either way. If you do not, the model decides per task, and mixed German identifiers in an English-named codebase is the usual outcome. Keeping umlauts out of identifiers also dodges transliteration and encoding trouble downstream.
What breaks silently?
Two documented behaviours: block-level HTML comments in CLAUDE.md are stripped before injection, so a rule hidden in a comment never arrives; and Claude Code reads AGENTS.md only when no CLAUDE.md exists above the working directory unless you set otherwise — so a leftover AGENTS.md can be ignored.
Can I keep German when a relay serves a different model?
The instruction file is read by the CLI before the request goes out, so it is not tied to one model. Whether a given model follows German consistently is your own test — the docs are explicit that these files are context, not enforced configuration.
Sources
Claude Code: the memory page ("How Claude remembers your project"), the settings page and the environment-variable reference on code.claude.com, fetched 2026-10-01. Codex: the AGENTS.md and CLI documentation from developers.openai.com, fetched the same day. QCode-side statements come from QCode's own pages. Where the docs are silent, this page says it is silent.
One instruction file, German from the first session
Write the language rule once, verify it with /context, then test it across the models you actually call.
Related reading
CLAUDE.md best practices
Structure, length and what belongs in the file.
AGENTS.md specification guide
Discovery order and precedence across the tree.
Claude Code guide
Install, sessions and the settings scopes.
Documentation of both vendor tools changes; every quoted behaviour here was read from the official pages on 2026-10-01. Model behaviour with German output is not a vendor guarantee — verify it on your own repository.