"Squeeze" button - compact the current chat in place instead of starting a new session

Feature request for product/service

Cursor IDE

Describe the request

Add a manual “Squeeze” button to Agent/Composer chats that compacts the current conversation in place, instead of pushing me into a new session.

On click, the agent distills the thread down to what still matters — the goal, the decisions and constraints we agreed on, the files and symbols in play, what’s already done, what’s next — and keeps working in the same chat with that distilled context as its new base.

How I imagine it working

  • A “Squeeze” button next to the context-usage indicator, available at any time — not only when the window is nearly full.
  • It produces a short carried context block, shown to me before it takes effect, and editable: I can delete a wrong assumption, add a line, or pin a file.
  • The full history stays collapsed and readable so nothing is actually lost, but only the squeezed block counts toward the context window from that point on.
  • Nice extras: a keybinding and a /squeeze command, plus an optional nudge once context passes ~70%.

The problem it solves

Long agent threads are exactly where the useful context lives, but they get expensive and start drifting. Today I have two options: ride it out until automatic compaction kicks in, with no control over what gets kept, or open a new chat and re-explain the task from scratch. What I actually want is “keep this chat, keep the 10% that matters, drop the rest” — at a moment I choose, like right after a feature lands or a bug is fixed.

Why in place rather than in a new chat

Continuity: same thread, same diff review, same task, no re-orientation. And cost: squeezing at logical breakpoints keeps token usage far lower than dragging a 200-message history along for the rest of the session.

Hey, good news. The core of what you’re describing already works today.

Type / in the Agent field and pick Summarize, or just type /summarize. It compresses the conversation right there in the same chat, using the same summarization as the automatic one, but at a time you choose, like right after a feature ships or a bug gets fixed. The full history stays available, and from that point on the context uses the compressed block. In the CLI, /compress does the same thing.

What’s not there yet is a preview and editing of the carried context before applying it, like removing a wrong assumption, adding a line, or pinning a file. This is helpful feedback.

Let me know if /summarize covers your use case, or if anything’s still missing.