# What text does a model router read in a Claude Code turn?

Authors: AutoRouter
Published: 2026-11-04T06:30:00.000Z
Reading time: 5 min
Canonical: https://autorouter.com/blog/what-text-a-router-reads-in-claude-code
Part of: What is an LLM router? (https://autorouter.com/blog/what-is-an-llm-router.md)
Publisher: AutoRouter, the Mac app for Codex and Claude Code (https://autorouter.com)

> A model router should judge a Claude Code turn by the request the person typed in it. Claude Code also adds its own text to the conversation, and CLAUDE.md files arrive as a user message after the system prompt, so a one-line request can sit beside pages of project notes. Run /context all in a session to see which memory files loaded.

## Key facts

- Claude Code delivers CLAUDE.md content as a user message placed after the system prompt ([Anthropic](https://code.claude.com/docs/en/memory), read November 4, 2026).
- Claude Code adds system reminders to the conversation, including CLAUDE.md files, hook output, the list of skills and notes about changed files, and a logged API request shows them inside user messages in `<system-reminder>` tags ([Anthropic](https://code.claude.com/docs/en/glossary#system-reminder), read November 4, 2026).
- AutoRouter judges how hard a Claude Code turn is from the text the person typed, leaving out the memory files and reminders Claude Code adds.

[AutoRouter, the Mac app for Codex and Claude Code](https://autorouter.com), judges how hard each Claude Code turn is from the text the person typed, and leaves out the memory files and reminders Claude Code adds. When a message holds only that added text, it uses the last request the person typed. The pick then follows what you asked: the length of your CLAUDE.md doesn't change how hard AutoRouter thinks a one-line request is. AutoRouter wrote this post, and the Claude Code behavior in it comes from Anthropic's docs as read on November 4, 2026.

## What text does Claude Code add to a conversation?

Claude Code adds its own context to the conversation alongside your messages, as system reminders: your CLAUDE.md files, your output style's instructions, text a hook returns as `additionalContext`, the list of available skills, a note when a file Claude read earlier changes on disk, and the commit and pull request attribution lines ([Claude Code glossary](https://code.claude.com/docs/en/glossary#system-reminder)). You never send these yourself. In a logged API request, each reminder shows up inside a user message wrapped in `<system-reminder>` tags, or on some models as its own message with the `system` role.

CLAUDE.md is the largest of these in most projects. Claude Code loads CLAUDE.md and CLAUDE.local.md from the working directory and every directory above it at launch, joins them all instead of letting one override another, and delivers that content as a user message after the system prompt ([Claude Code docs](https://code.claude.com/docs/en/memory)). Auto memory adds the first 200 lines or 25 KB of MEMORY.md, whichever comes first.

Some of this text arrives in the middle of a session. A CLAUDE.md in a subdirectory loads once Claude reads, writes or edits a file in that subdirectory, and a path-scoped rule loads when Claude works on a matching file ([Claude Code docs](https://code.claude.com/docs/en/memory)). Hook text lands where the hook fired: a `UserPromptSubmit` hook's `additionalContext` sits alongside the prompt you just sent, and a `Stop` hook's arrives at the end of the turn so Claude can act on it ([Claude Code hooks](https://code.claude.com/docs/en/hooks)).

## Which text should set a turn's difficulty?

The request the person typed should set the difficulty of the turn, because it is the only text that says what this turn asks for. Memory files and reminders describe the project, the tools and the session, so they make a request longer without making it harder. The table sorts the text a Claude Code request can carry.

| Text in the request                              | Where it comes from                                                      | Sets difficulty? |
| ------------------------------------------------ | ------------------------------------------------------------------------ | ---------------- |
| The request you typed                            | You, in this turn                                                        | Yes              |
| CLAUDE.md and CLAUDE.local.md                    | Loaded at launch from the working directory and the directories above it | No               |
| Auto memory (MEMORY.md)                          | Loaded at launch, first 200 lines or 25 KB                               | No               |
| Subdirectory CLAUDE.md and path-scoped rules     | Loaded mid-session when Claude works on a matching file                  | No               |
| Hook output, the skills list, changed-file notes | Added by Claude Code as system reminders                                 | No               |

## How can a router find the request the person typed?

A router can find the typed request in four steps:

1. Remove system reminders and memory blocks from each user message, since the person didn't type them.
2. Take the newest text the person typed in this turn.
3. If the newest user message holds only added text, use the last request the person typed.
4. Check the result on real transcripts from projects with long and short CLAUDE.md files, and from sessions where hooks add context.

Step 3 matters in long sessions. When a `Stop` hook returns text, the conversation continues with a message that carries Claude Code's text and no new words from you, and a router that scored that message alone would be judging the hook.

## What does AutoRouter read in a Claude Code turn?

AutoRouter reads the text the person typed when it judges how hard a Claude Code turn is, and leaves out the memory files and reminders Claude Code adds. When a message holds only that added text, AutoRouter uses the last request the person typed.

For you, that means the pick follows what you asked. A one-line request is judged on that line, so quick work can go to the cheapest capable model even in a project with a long CLAUDE.md, and hard work still goes to the strongest model your plans cover. Your rules still come first, and models still have to clear the quality bar before price counts. [How AutoRouter picks a model for each turn](/blog/how-autorouter-picks-a-model) walks through that order, and [What is an LLM router?](/blog/what-is-an-llm-router) covers the kinds of routers and where AutoRouter fits among them.

AutoRouter sometimes misjudges how hard a task is. Every turn shows its model, what it cost and why, so when a pick falls short you can rate it or choose a model yourself.

## Questions

### Is CLAUDE.md part of the system prompt?

No. Claude Code delivers CLAUDE.md content as a user message after the system prompt, and Claude reads it and tries to follow it, with no guarantee of strict compliance when instructions are vague or conflict ([Claude Code docs](https://code.claude.com/docs/en/memory)).

### How do you see which memory files loaded?

Run `/context all` in a session and read the list under Memory files; in fullscreen mode, `/context` alone collapses that list. `/memory` lists your CLAUDE.md, CLAUDE.local.md and auto memory locations and opens any of them in your editor ([Claude Code docs](https://code.claude.com/docs/en/memory)).

### How long should a CLAUDE.md file be?

Anthropic suggests keeping each CLAUDE.md under 200 lines, because longer files take more context and Claude follows them less closely. Instructions that matter for only part of a codebase can move to path-scoped rules, which load only when Claude works with matching files ([Claude Code docs](https://code.claude.com/docs/en/memory)).

### What does AutoRouter keep from each turn?

AutoRouter keeps the message that opens each turn, up to 4,000 characters, to review routing, along with records of the model chosen, tokens and cost. Requests pass through AutoRouter's servers on their way to each provider, and AutoRouter doesn't store transcripts ([AutoRouter privacy policy](https://autorouter.com/privacy)).

## Sources

- [Claude Code docs: How Claude remembers your project](https://code.claude.com/docs/en/memory), read November 4, 2026
- [Claude Code docs: Glossary, system reminder](https://code.claude.com/docs/en/glossary#system-reminder), read November 4, 2026
- [Claude Code docs: Hooks reference](https://code.claude.com/docs/en/hooks), read November 4, 2026
- [AutoRouter privacy policy](https://autorouter.com/privacy)

## Read next

- [Model routers for Claude Code and Codex, compared](https://autorouter.com/blog/model-routers-claude-code-codex.md): AutoRouter, the Mac app for Codex and Claude Code, adds 20+ models to both apps as of October 2026, picks one for each turn after your own rules, uses your ChatGPT and Claude plans first, and shows each turn's model, what it cost and why. claude-code-router and LiteLLM are open-source gateways you run yourself; Weave Router scores each request, hosted or self-hosted; OpenRouter bills one balance of credits; and Portkey adds budgets and logs. Claude Code's opusplan and Codex profiles cover simple cases with nothing to install.
- [Cursor Auto mode vs Copilot auto vs AutoRouter](https://autorouter.com/blog/auto-mode-vs-autorouter.md): Cursor's Auto mode and GitHub Copilot's auto model selection each pick a model for every request inside their own tools. AutoRouter, the Mac app for Codex and Claude Code, picks a model for each turn in those two apps and shows the model, what it cost and why. Use the Auto built into the tool you work in, and AutoRouter when that tool is Codex or Claude Code on a Mac.
- [How to write model routing rules in plain English](https://autorouter.com/blog/plain-english-routing-rules.md): AutoRouter, the Mac app for Codex and Claude Code, lets you write routing rules in plain English, such as "Use Claude Opus 5.5 for UI work." When one of your rules applies, it decides the turn, and your rules come before AutoRouter's recommended ones. Choosing a specific model in the picker sends turns straight to that model instead.

Tags: [Claude Code](https://autorouter.com/blog/tags/claude-code.md), [Model routing](https://autorouter.com/blog/tags/model-routing.md), [AutoRouter](https://autorouter.com/blog/tags/autorouter.md)

Drafted with AI from the sources linked above, then checked and edited by the AutoRouter team.
