Goose, the open-source coding agent, has added a contents view for the material it assembles before asking a model to work. An October 30 merge in aaif-goose/goose turns its desktop context indicator into a doorway to a report: expand a category, see its estimated token contribution and inspect a preview of the text.
The change sits in the agent around the model. Goose combines instructions, available tools and conversation history into model input; the new report makes those contributions visible. For someone facing a nearly full context window—the amount of input a model can work with at once—that is a more useful starting question than the percentage alone: what is filling it?
This is merged development code. The latest public release inspected on October 31, v1.57.0, published October 28, does not contain it.
Inside the local assembly
Seven sources behind one total
The report separates the material Goose assembles for its model. This inventory names the source categories; it shows no measured session or token proportions.
- System prompt
- The agent’s base instructions, or an override.
- Extension instructions
- Guidance contributed by enabled extensions.
- Instructions & hints
- Project hints, subdirectory guidance and other added instructions.
- Turn context
- Information attached to the turn, such as the working directory and current time.
- Tool definitions
- Names, descriptions and input schemas. These are separate from tool results.
- Compaction summary
- A summary already retained from earlier conversation, with inspectable sections.
- Conversation
- User and assistant messages, tool calls and tool results.
The next unwritten prompt is excluded. Automatic compaction may change the conversation before it is sent. Provider-managed history has no breakdown.
Source: Goose’s report categories and input reconstruction. Editorial inventory, not a Goose screenshot.
The chat is only part of the input
Goose added a status-bar context counter in April. Immediately before this change, the indicator still presented a total against a limit and opened alerts. Manual compaction—replacing accumulated conversation with a shorter summary—was already available. The new capability is inspection, not a new compression method.
The report implementation reaches beyond the saved chat. It shares the input-collection machinery used for inference, obtains the current tools and prompt contributions, repairs conversation history and includes information attached to the turn. It then attributes the resulting local estimate to named sources.
That distinction makes the report useful. A tool’s definition—the description and input schema telling the model how to call it—occupies input separately from the results it returns. Project instructions are another contribution. A previous conversation summary is another. A fullness gauge cannot tell the user which of these deserves attention.
The desktop view groups tool definitions by extension and lets readers expand entries into previews. Conversation material is separated into user messages, assistant messages, tool calls and tool results. A compaction summary can be opened by section, such as user intent or next steps. The previews stop after 2,000 characters; this is a guide to the contents, not necessarily the complete contents themselves.
Two numbers, two different questions
The pull request explains why the report need not match the footer. The footer reflects provider-reported usage from the previous request. The report estimates input assembled locally now, using the o200k tokenizer and local counting rules. A difference between them is not, by itself, an accounting error.
Nor is the report an exact capture of the next request. Your next message has not been written, so it is excluded. If automatic compaction is already due, Goose warns that the conversation will be compacted before the next request goes out. The report does not run that future summary first and reveal its contents.
There is also a firm boundary around providers that keep their own conversation history. For those, the dialog explains why no breakdown is available. Goose can inspect the input it assembles; it cannot open a provider’s hidden history or show which words a model will actually use.
Inspect first; judge the outcome separately
The report keeps the existing Compact now action nearby. It does not add a control for deleting an individual category. Its immediate value is diagnostic: someone can distinguish a large tool catalogue from a long conversation before deciding what to investigate or change elsewhere.
The source tests check attribution totals, message grouping, summary sections and the removal of a temporary next-prompt placeholder. An integration fixture checks the report on empty and populated sessions; desktop tests cover display, refresh failure and session changes. We inspected these definitions and the implementation; we did not execute the upstream tests or run a live Goose session.
The next useful evidence is a containing release followed by an ordinary long task: does seeing the contributors help someone reduce unnecessary input while preserving the information needed to finish? That needs observed decisions and task results, not just a smaller total. The gain in this merge is already specific: when the context window fills, Goose offers a way to look inside the agent’s assembly work.