What is actually inside
A context window is the token span a model can use for one request: instructions, conversation, files, retrieved chunks, tool outputs, and the answer being generated. It is not the model's weights. It is not every file on disk. It is not every conversation you have ever had with the system.
This distinction matters because users often say, "I told the AI already." Maybe. But if that fact is not inside the current window, not in retrieved memory, and not encoded in model weights, the model cannot use it reliably. The window is an operating contract for this turn — nothing more, nothing less.
The hidden half: output
The window must leave room for the response. Reasoning models may also spend invisible reasoning tokens that count against the same budget even when the user does not see them. If you fill the window with input, you are not being efficient; you are stealing space from the model's ability to finish the job.
Counted vs not counted
Counted: system prompt, all conversation turns, tool/function call results, retrieved RAG chunks, the in-progress reply. Not counted: model weights, anything in a separate session, the user's terminal, files on disk that were not read, browser tabs that were not attached, out-of-band metadata that was never sent.