Development only: loads the collection's mods side by side to test the shared row in every order

Jay's Claude Code mods for long conversations: read the part that matters, and keep it when you compact. Page: https://jaygptpro.com/context-mods/
Small add-ons that change how Claude Code looks and works: a button above the prompt, and a yellow highlight on the part of a long reply worth reading. Each one is a Claude Code mod (a plugin with function hooks) packed inside a skill folder, so one command installs it and Claude Code loads it by itself in every new conversation.
| Mod | What you get | Costs |
|---|---|---|
TL;DR (tldr-highlight) | After a long reply, the paragraphs worth reading turn yellow and a notification says the reply in one sentence, in your language. A TL;DR button turns it on and off. | One short Haiku call per long reply, from your Claude plan |
| Smart PreCompact | A context meter above the prompt and a Smart compact button that tells the compact what to keep. Lives in its own repo: JayGPTPro/smart-precompact. | One call when you compact |
Installed together, they can share one row above the prompt in the desktop app.
Open Claude Code and paste the prompt for what you want. Claude runs the install, checks it, and tells you what to expect.
Then open a new conversation. Mods load only when a conversation starts.
You need Node.js (for npx):
npx skills add JayGPTPro/context-mods --skill tldr-highlight -g -a claude-code
Smart PreCompact installs from its own repo:
npx skills add JayGPTPro/smart-precompact -g -a claude-code
Without Node.js: download the repo as a zip and copy skills/tldr-highlight into ~/.claude/skills/ (Windows: %USERPROFILE%\.claude\skills\). Keep the hidden .claude-plugin folder inside it.
When a reply runs past about 150 words, a small model reads it and picks at most three paragraphs: the direct answer, anything waiting on you, and anything that failed or was not checked. They get a yellow background: past the first one, no more than a third of the reply, and never code or a lone heading. The same call writes the reply as one sentence in the language you write in, shown as a notification. ↩ No TL;DR turns it off and the choice is kept; TL;DR turns it back on. The highlight is drawn in the desktop app. A terminal shows the button and the sentence.
Only the drawing changes. The conversation, and what Claude reads, stay as written. The call to the model goes through your own Claude Code login, like the conversation itself.
claude plugin disable tldr@skills-dir
To remove it:
npx skills remove tldr-highlight -g
Never keep a backup copy of a mod's folder inside ~/.claude/skills: Claude Code would load it twice.
claude --debug writes the engine's notes about each mod to the debug log, on lines that start with the mod's name.The mod is a skill folder in skills/: SKILL.md, .claude-plugin/plugin.json, hooks/ (register.tsx, and panel.ts, the shared row) and tests/. dev/test-all.sh runs every check: the mod's claude plugin test and claude plugin validate, and the shared row in every order the mod and Smart PreCompact can load in. It runs on Mac and Linux.
Built by Jay. An independent project, not an Anthropic product.
hooks/register.ts 6 lines1// Development only: tests/order.test.ts runs the shared row logic (hooks/panel.ts, copied in by
2// dev/test-all.sh) the way TL;DR and Smart PreCompact chain it, in every order.
3import type { Register } from 'claude-code'
4
5export const register: Register = () => undefined
6