tldr
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- os.homedir — User home directory access in .opencode/plugins/tldr.mjs
- process.env — Environment variable access in .opencode/plugins/tldr.mjs
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Too long; didn't read — for AI coding agents. A skill that makes Claude Code, Cursor, Codex, Gemini CLI and 13 more lead with a 3-line TL;DR and fold the detail instead of burying the answer. 16% fewer output tokens on Sonnet, measured, with every run published. Demote, don't delete.
tldr
Too long; didn't read — for AI coding agents.
Your coding agent buries the answer in four paragraphs.
This makes it lead with three lines and fold the rest.
Demote, don't delete.
🇬🇧 English · 🇨🇳 · 🇪🇸 · 🇧🇷 · 🇯🇵 · ➕ add yours
Install
Paste this into your agent. It works in Claude Code, Cursor, Codex, Gemini CLI, and the 20 agents in the table below.
Install the tldr skill from https://github.com/SurefireStudios/tldr — read the repo's AGENTS.md for instructions.
Prefer a real command? Claude Code:
claude plugin marketplace add SurefireStudios/tldr
claude plugin install tldr@tldr
Every other agent: 🔗 INSTALL.md
Then type /tldr.
Real output from the eval suite, not a mockup — both halves are in evals/results/run6-pass/.
The problem
Two problems, actually.
Your agent talks too much. You asked a yes/no question. You got four paragraphs, a numbered plan, a caveat about edge cases, and "Hope this helps!" The answer was in there somewhere.
Your agents talk too much to each other. A subagent finishes a search and returns 4,000 tokens of narration to the orchestrator, which needed three lines. You paid for all of it, twice — once to write it, once to carry it in context for the rest of the session.
Most "be concise" prompts fix the first problem by deleting information. That is a bad trade the moment you are doing code review, a security audit, or anything you will be held to.
Demote, don't delete
tldr does not make your agent say less. It makes your agent say the important part first, and put everything else directly underneath.
Nothing is thrown away. You choose your depth.
**TL;DR**
- `listOrders` queries the customer table once per row: 241 round trips to render one page.
- Fix: pass `include: { customer: true }` at `src/orders/repository.ts:88`, then delete the loop under it.
- ~10 minutes. The orders benchmark already covers this path.
<details>
<summary>Full detail</summary>
...everything the agent would normally have said, in full...
</details>
In a terminal, where <details> does not render, it uses a plain divider instead. The skill knows the difference.
What changes
Before
|
After
|
The depth dial
You set how much lands above the fold.
| Command | What you get |
|---|---|
/tldr 0 |
Headline only. One line, no detail. |
/tldr 1 |
One line, then the detail. |
/tldr 3 |
Default. Three lines, then the detail. |
/tldr 5 |
Five lines, then the detail. |
/tldr full |
Off. Back to normal. |
The dial resizes the summary. It never thins the detail.
/tldr is also a verb
Turn it on as a mode, or fire it once at a specific thing:
/tldr this file
/tldr that stack trace
/tldr the last 20 commits
/tldr this PR — what should I review first?
/tldr your last answer
One-shot. No mode change.
Agent-to-agent: where the money is
This is the half that other output-style skills do not do.
When output goes to another agent instead of a human, tldr switches to a parseable block. Subagent reports, task results, handoffs, commit messages, PR bodies:
```tldr
status: ok
summary: Removed N+1 in listOrders; orders page drops from 241 queries to 2.
changed:
- src/orders/repository.ts:88-104
- test/orders.bench.ts
next: none
risk: low — changes row ordering when a customer record is null
full: docs/reports/orders-n1.md
```
Three rules do the work:
- Return the block and stop. The orchestrator asked for a result, not a journey.
- Write the long version to a file, reference the path. Don't pipe it through the context window.
- Never compress what the caller needs verbatim — exact errors, exact diffs, exact paths.
Your orchestrator gets a struct. Your context window stops filling with narration. Your bill notices.
Never compressed
Compression is safe for prose. It is not safe for consequences. These always appear in full, above the fold, never folded:
- Destructive actions —
rm -rf, force push, dropped tables, migrations - Security findings — a folded vulnerability is an unreported vulnerability
- Irreversibility and data loss
- Money, quota, and rate limits
- Verbatim error text you need to paste or search
- Diffs of code being changed — a compressed diff is a lie
- Legal, medical, and safety boundaries
- Anything you explicitly asked to see in full
The governing rule, in the skill's own words: a reader who reads only the TL;DR must not end up with a false belief.
Does it actually work?
Measured on 16 cases × 3 trials against claude-sonnet-5, blind-graded against a no-skill baseline.
Results are model-specific — see the Opus section below before generalising:
| Baseline | With tldr |
||
|---|---|---|---|
| Mean output tokens | 339 | 283 | −16% |
| Median output tokens | 295 | 186 | −37% |
| Correctness | 4.771 | 4.979 | +0.208 |
| Fidelity | 4.521 | 4.750 | +0.229 |
| Actionability | 4.312 | 4.896 | +0.583 |
| Safety | 4.417 | 4.604 | +0.188 |
| Concision | 3.604 | 4.667 | +1.063 |
Fewer tokens and better on every dimension, with zero blocking findings. The release gate passes on all five rules — on claude-sonnet-5.
It does not hold on Opus
The same suite on claude-opus-5 fails the gate on all five rules: weighted −0.917, fidelity −1.191, and five disqualifying blockers.
One defect accounts for nearly all of it. Given a task that invites action, the skill pushes Opus to act rather than answer — and with no tools available it emits tool-call syntax, sometimes inventing the results too:
`Glob` {"pattern": "**/*"}
`Result` No files found <- fabricated
| Candidate responses containing tool-call syntax | |
|---|---|
claude-sonnet-5 |
0 / 48 |
claude-opus-5 |
12 / 48 |
Tokens actually fall further on Opus (−34%). The quality goes with them. That is precisely the trade this project claims not to make, so it is stated here rather than buried: as of v0.2.0, use it on Sonnet. The Opus defect is open.
Now the caveats, because a number without them is marketing. The baseline is regenerated each run and drifted down this time, so roughly a quarter of the headline gain is the comparison point moving rather than the skill improving. Across all 48 paired rows the standard error is about 0.090. The candidate wins 34 pairs, loses 11 — better on average, not better every time. And this is one run, on one model.
It took six runs to get here, and the first four failed the gate. evals/RESULTS.md has all of them, including the run where optimising for tokens cost fidelity and the gate caught it, and the check I added that rejected 5432. as a malformed answer.
Reproduce it:
scripts/run_full_eval.sh --smoke # cheap, proves the wiring
scripts/run_full_eval.sh # the real thing
The harness measures tokens and fidelity together, and the gate fails a candidate whose fidelity drops even when tokens improve. That rule fired on runs 2, 3 and 4 — it is load-bearing, not decoration.
Supported agents
| Agent | Install | Always-on |
|---|---|---|
| Claude Code | claude plugin marketplace add SurefireStudios/tldr |
✅ hook |
| Cursor | copy the skill | ✅ rules |
| Cybara | cybara plugin install |
✅ plugin |
| OpenClaw | openclaw skills install git:SurefireStudios/tldr@main |
✅ global scope |
| Hermes | agentskills.io standard | ✅ |
| Codex | plugin | ✅ hook |
| Gemini CLI | extension | ✅ context file |
| GitHub Copilot | VS Code + CLI | ✅ instructions |
| OpenCode | plugin | ✅ flag file |
| Zed | rules | ✅ |
| Qwen Code | extension | ✅ |
| Kimi Code CLI | plugin | ✅ |
| Windsurf | rules | ✅ |
| Amp | agent skill | ✅ |
| Aider | conventions | ✅ |
| Cline / Roo | custom instructions | ✅ |
| Pi / Oh My Pi | extension | ✅ status bar + dial |
| Antigravity | plugin | ✅ |
| Anything else | paste the sentence | — |
FAQ
How do I make Claude Code less verbose?Install this skill and type /tldr. Claude Code will lead every response with a three-line summary and fold the rest. Use /tldr 1 for one line, /tldr full to turn it off. For always-on, see INSTALL.md.
"Be concise" deletes information and the agent drifts back to verbose within a few turns. tldr relocates information — the detail is always there, folded — and the ruleset persists for the whole session. It also covers agent-to-agent output, which a style instruction does not touch.
Use the agent-to-agent block. Subagents return a parseable tldr struct and write their long output to a file instead of piping it into the orchestrator's context. See agent-to-agent.
It is explicitly designed not to. Destructive actions, security findings, data loss, cost, and verbatim errors are on a never-compress list and always render above the fold. See Never compressed.
Does it work with agents other than Claude?Yes — 14 harnesses, listed above. The skill is plain markdown with no runtime, so it works anywhere you can give an agent instructions, including ones not on the list.
Is this safe to install? What does it run?Nothing, by default. The skill is a single markdown file. The optional always-on hook is a ~30-line Node script that reads one file and prints it. Read skills/tldr/SKILL.md in two minutes and decide for yourself.
Yes, see Tune it. It is one markdown file. Fork it and edit it.
Tune it
Fork, edit skills/tldr/SKILL.md, then swap your copy in:
claude plugin uninstall tldr
claude plugin marketplace remove tldr
claude plugin marketplace add <your-username>/tldr
claude plugin install tldr@tldr
Restart your agent, then /tldr.
Contributing
Translations, new harness adapters, and eval cases are the three highest-value contributions. See CONTRIBUTING.md.
License
MIT. Do whatever you want with it.
TL;DR: star it. ⭐
You just read an entire README about not reading things.
Don't be too lazy for the last click.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi