Macdara Ó Murchú
GitHub

PluginExtension

cornerman

I started this to save tokens. Then I felt the work hold up better over long stretches. My tests couldn’t confirm that, so treat it as how it felt to me.

  • Windows
  • Linux
  • macOS

macOS runs in the automated tests but has not been tested by hand.

Source on GitHub

Context counter. How full the chat is, filling towards the nudge size. Hover it to see which handover the tab loaded.

#Why not auto-compaction?

When a chat gets full, Claude Code’s auto-compaction squeezes it into a summary you never see, and carries on in the same chat. Cornerman writes a handover, a short note of the goal, what’s done and what’s next, that you can open and edit. It starts a fresh chat from that note and keeps the old chat’s tables, lists, links and paths one click away.

Claude keepsYou loseChat size after
/compactIts own summary of the chatWhat the summary leaves outSmaller
--resumeThe whole chatNothingSame as before
/clearNothingEverything, including where you wereEmpty
cornermanA short handover it wrote on purposeThe rest of the chatJust the handover

#Measured

Return to a 390k-token session after the cache expired: full rewrite vs fresh session from a handover
US$1.56 vs US$0.15 to 0.17
n=3, Sonnet 5.5, 10 Oct 2026
Switch a 390k-token Sonnet 5.5 session to Opus: carry the whole context vs start fresh from a handover
US$3.13 vs US$0.24
n=1, 8 Oct 2026
A whole build, Sonnet 5.5, finished runs: relay vs auto-compaction vs never compacting
US$9.08 vs US$9.19 vs US$9.66
n=5, n=5, n=3

#Install

Claude Code plugin
claude plugin marketplace add https://github.com/m4cd4r4/cornerman
claude plugin install cornerman@cornerman
VS Code extension
code --install-extension macdara.cornerman

VS Code Marketplace · Open VSX (VSCodium, Cursor)

#What you’ll see first

A pie in the VS Code status bar shows how full the chat is. Nothing else happens until the chat reaches 250k tokens. To see a handover sooner, hover the pie and click Hand over now.

#How it’s built

How cornerman carries work across a clear. When the chat passes 250k, the plugin asks for a handover and Claude writes it. The plugin saves it to the handover store. The relay runs /clear, up to your limit, and the SessionStart hook chooses a waiting handover under 7 days old: this window's, this branch's, or the only one waiting. On a match the plugin loads it once, archives it and writes a readable copy, the relay sends the prompt, and Claude carries on after checking the snapshot. With no match, Claude lists the titles and asks which one.