Context low
The message
Context lowWhat it means
The conversation is within about 20,000 tokens of the context window, and nothing will compact it for you because auto-compact is off. It's a warning; the hard stop comes later as “Context limit reached”.
What to do
Run /compact now, or /clear if you're done with the thread. To stop seeing it, turn Auto-compact back on in /config and check DISABLE_AUTO_COMPACT isn't set.
It shows up in red under the prompt in the CLI, with a number that drops each turn:
Context low (N% remaining) · Run /compact to compact & continue
It's a warning, and it's all over Claude Code's issue tracker: 615 issues contain it as of September 26, 2026 (a GitHub search count), many of them pasting it as part of a status line while reporting something else. Anthropic's error reference doesn't list it (it covers the hard stop that comes after), so we went to the component that draws it in the 2.1.283 binary. What we found there explains why some of us see this line all day and others have never seen it once.
You only get this line with auto-compact off
Auto-compact is on by default. With it on, the same spot shows a dim N% until auto-compact instead, and Claude Code compacts on its own when the conversation reaches the limit. The red Context low version is drawn only when auto-compact is disabled, because then nothing will step in (so the warning's job is to tell you to do it yourself).
There's more than one switch, and we found four. The Auto-compact toggle in /config writes autoCompactEnabled to your user settings, a project or managed settings file can set the same key, and the environment variables DISABLE_AUTO_COMPACT and DISABLE_COMPACT both switch it off. With DISABLE_COMPACT set, the line loses its "Run /compact" hint, since compacting is off entirely.
What the percentage counts
The warning appears once the conversation is within 20,000 tokens of the context window (that's a constant in the code). The percentage is what's left of the whole window, so on a 200K model it first shows up around 10% (on a 1M model, around 2%). It isn't the free space /context reports either, and the two can disagree. The screenshot in issue #18159 shows "Free space: 32k" next to a session already stopped with “Context limit reached”, and that issue was still open with no explanation on September 26.
Some accounts see a different tail: Context low (N% remaining) · /model .... That hint appears when your account can use a version of the model with a larger window. Running that command moves the session to the bigger window, which buys room without compacting.
What happens if you keep going
About 3,000 tokens short of the window (another constant in the same function) the level flips to what the code calls blocked, and the next message gets Context limit reached · /compact or /clear to continue instead of an answer. Since v2.1.235 that line adds auto-compact is off · /config to turn it on when the /config toggle would help. From there it's the same situation as the API's “Prompt is too long”, and you have to compact or clear.
What to do
If you turned auto-compact off on purpose (some people do, so a summary never lands halfway through a refactor), treat this as your cue. Finish the step, then run /compact yourself. You can pass it instructions about what to keep, like /compact keep the failing test names.
If you didn't mean to have it off, open /config and switch Auto-compact on, then check your shell for DISABLE_AUTO_COMPACT and your project's .claude/settings.json for autoCompactEnabled. Seeing the warning very early on a 1M-token model is a separate reported bug: #79665 describes a model-side "running low" reminder firing near 177K tokens in 1M sessions, and it was still open on September 26.
Other lines the same feature prints
Match yours against these if the one at the top of the page is not quite it. They come from the same code and mean related things.
Context low (N% remaining) · Run /compact to compact & continueContext low (N% remaining)Context low (N% remaining) · /model NAMEContext limit reached · /compact or /clear to continue