JetBrains benjamin-plus
JetBrains ships a measured, inject-only token-efficiency skill with real receipts, and deliberately opts out of the SKILL.md ecosystem to do it.
benjamin-plus is a 2,996-byte ruleset that changes how coding agents look things up, backed by the most honest A/B write-up in this category: 17.9% lower median cost with quality flat, plus a measured reason to inject the text rather than ship it as a skill folder. The catches are real: you cannot rerun any of the evals from this repo, the universal installer rejects it by design, and it is six days old with one author and three commits. It costs nothing to try, removes cleanly, and the packaging finding alone is required reading for skill authors.
$git clone https://github.com/JetBrains/benjamin-plus-skill ~/.benjamin-plus
2.1 MB, no dependencies
$cat ~/.benjamin-plus/injected-instruction.md
matcher covers startup, resume, clear, compact
$cat ~/.benjamin-plus/injected-instruction.md >> ~/.codex/AGENTS.md
or append to any CLAUDE.md / system prompt
install if
- Heavy Claude Code or Codex users on metered APIs. The claimed 10 to 18% cost cut applies to every session, the payload is 745 tokens of one-time context, and removal is trivial.
- Teams running agent fleets. The same research program's cross-platform check (675 paired Java SWE-bench replicas) suggests the effect survives different harnesses; a per-session percentage multiplies fast at scale.
- Skill authors and packagers. The inject-versus-skill-folder A/B (3 median steps and 73% path misses to fetch a SKILL.md) is evidence about skill discovery cost that every multi-skill pack should reckon with.
skip if
- Anyone who wants a standard, registry-installable skill. There is no SKILL.md, no skills.sh presence, and the universal installer exits 1. If your workflow only consumes installed skills, this repo is not aimed at you and says so.
- Harnesses where execution blocks until completion and reads are already gated. The authors themselves note the polling rule is inert on Claude Code and the savings come from the other four rules; if your agent already batches lookups, the measured floor (~10% on a lean baseline) shrinks further.
- Readers who need to verify before adopting. The eval harness is unpublished, so every number is a citation of their document, not a rerunnable artifact.
What It Does
benjamin-plus is JetBrains' first official agent skill: a five-rule, 2,996-byte text payload that gets injected into a coding agent's context (via a Claude Code SessionStart hook, an AGENTS.md append, or any system prompt) to cut session cost. The rules change how the agent looks things up, not what it builds: gather facts in one pass, read the smallest slice that answers the question, probe the environment once, treat the task's own check as the definition of done, and poll long-running commands in 30-second slices instead of every second. The repo (236 stars, 6 days old at test) contains the ruleset, the injection payload, a hook script, a checksum manifest, and an unusually detailed A/B results document claiming 17.9% lower median cost with quality unchanged. It targets developers running metered coding agents at any volume.
The Good
The eval write-up is the most honest one GearScope has reviewed in this category. EXPECTED-RESULTS.md keeps the v5 archive next to the v6 headline, explains the medians-versus-totals disagreement ("the skill wins the middle of the distribution and gives some of it back on trap-task tails"), discloses that the control arm drifted +10.5% between run days, refuses to overclaim quality ("not powered as an equivalence test; 80 pairs rules out large effects only"), lists iteration shortcuts that were fine for gating but not quotable, and states total program spend ($153 across 254 billed trials). Every number in the README traces back to this file, and the internal consistency holds: 225 instances times 3 replicas equals the "675 paired replicas" the README cites, and the token claim (745) matches our chars-divided-by-four heuristic (2,996 bytes yields 749) almost exactly.
The install-method finding is load-bearing research, not packaging opinion. The team ran hook-injected delivery against skill-folder delivery head to head on Java SWE-bench with Codex CLI: injection saved 4.4% (p=0.003) while the skill folder saved nothing (β0.5%, not significant) because fetching SKILL.md cost a median of 3 steps with 73% path misses. So the repo ships injection only, and the README says so in plain terms. This is the first vendor skill we have reviewed that opts out of the SKILL.md ecosystem on measured evidence, and it corroborates what GearScope found in the orca review (agents burn steps finding skill files) from the opposite direction.
The payload itself is disciplined, and the single-source-of-truth claim holds. Five rules, each behaviorally specific (chain probes with ; and label sections, | head -50 on inspection only, one wider look if a peek was too narrow), each carrying its own correctness guard: keyhole rules "apply to inspection, never to ingestion," and "efficiency never outranks correctness." We verified that the RULESET.md body (post-frontmatter) is byte-identical to the injected-instruction.md payload, that SHA256SUMS.txt verifies all 8 files against the working tree, and that the 8-line hook script emits the full 55-line payload with the banner from any working directory.
It comes from a lab that stress-tests its own claims. This is the same JetBrains research program that externally verified caveman's prose-compression numbers at 8.5% on real coding runs (a smaller figure than caveman's own marketing, published anyway). The v6 polling rule was added because Java traces showed 45.8% of treated-arm steps were polls, 3,982 of them at sub-5-second intervals. The repo is CODEOWNERS-gated ("every change needs an approval from the repo owner," internal ticket PEN-3817), and the one merged PR was a plain-language README rewrite.
The Bad
The "Reproducing" section reproduces nothing. EXPECTED-RESULTS.md ends with four commands (gen_instruction.py, compare.py, adoption.py, mediators.py) and points at LAB-NOTES.md and winning-strats.md. None of those files exist in the repo, and no eval code ships at all. The headline 17.9% figure is therefore trust in a well-written document, not something a reader can rerun. The same file also points at dist/benjamin-plus/SHA256SUMS.txt while the repo ships the manifest at root, which is harmless drift from the internal research repo but confirms the public repo was carved out of a larger private one.
The universal installer rejects the repo, and the frontmatter invites the attempt. npx skills add JetBrains/benjamin-plus-skill exits 1 with "No valid skills found. Skills require a SKILL.md with name and description." That is deliberate (the README's whole thesis is inject-don't-install), but RULESET.md still carries full SKILL.md-format frontmatter (name, a 461-character description under the 1,024 limit, license), so anyone following muscle memory hits a clean but confusing dead end. There is no skills.sh registry presence at all.
It is six days old with a three-commit history. One contributor, no tags, no releases, no CI, no tests, one open community issue. Nothing here is load-bearing infrastructure yet; the entire value proposition rests on one eval document from one research run plus one external cross-check.
Every agent that is not Claude Code or Codex gets one sentence. "Any other agent: append injected-instruction.md to the system prompt." True, and the payload is plain text so it works, but Hermes, OpenClaw, Cursor, and Copilot users get no file paths, no hook equivalents, and no guidance for the re-injection-after-compaction problem that the hook matcher explicitly solves for Claude Code. The hook script's own header documents the registration better than the README does for non-Claude hosts.
Smoke Test Results
Hands-on host test on macOS 26.5.2 (aarch64), bash 3.2, Node 24.13.1, npm 11.8.0, Claude Code CLI 2.1.152. The repo is a text payload plus an 8-line hook script, so runs exercise clone integrity, emission, packaging, and the live-session path. Full logs: fresh, with-deps, functional.
Run A. Fresh clone, no deps preinstalled
$ git clone --depth 1 https://github.com/JetBrains/benjamin-plus-skill /tmp/benjamin-plus-review
β
2.1 MB, 11 files outside .git
$ bash hooks/sessionstart.sh | head -1
β
BENJAMIN-PLUS MODE ACTIVE
$ bash hooks/sessionstart.sh | wc -l
β
55 (full payload, exit 0, executable bit set as cloned)
$ shasum -a 256 -c SHA256SUMS.txt
β
8 of 8 checksums OK (README, RULESET, payload, hook, 3 assets, results doc)
$ cmp <(sed -n '14,65p' RULESET.md) <(sed -n '4,55p' injected-instruction.md)
β
byte-identical: ruleset body matches injected payload
Pass rate: 5 of 5. Zero dependencies beyond bash and coreutils; the entire skill is verifiable with the tools already on any Unix host.
Run B. Host with deps preinstalled (Node 24.13.1, Claude Code 2.1.152)
$ npx -y skills add JetBrains/benjamin-plus-skill --agent claude-code --yes
β exit 1: "No valid skills found. Skills require a SKILL.md with name and description." (nothing landed; deliberate per README, see The Bad)
$ python3 -m json.tool hook-settings.json
β
VALID (the README's SessionStart JSON block parses and matches the documented hooks schema)
$ claude --version
β
2.1.152 (Claude Code) present on host
$ bash hooks/sessionstart.sh # invoked from / (unrelated cwd)
β
banner emitted, exit 0 (script resolves its own path via dirname)
Pass rate: 3 of 4. The single failure is the universal-installer path, which is the repo's documented intent and fails fast with a clear error, but it is still the path most agent users will try first.
Run C. Functional verification (does it do what it claims?)
$ claude -p "quote the first line of the BENJAMIN-PLUS block in your session context"
β "Failed to authenticate. API Error: 401 OAuth access token has expired." (host CLI credential expired; policy prohibits entering credentials)
$ echo $(( $(wc -c < injected-instruction.md) / 4 ))
β
749, within 0.5% of the claimed 745-token payload (2,996 bytes, 505 words)
$ awk 'NR>=4 && NR<=9' RULESET.md | wc -c
β
461 chars: description fits the 1,024-char agent-skill limit
Functional pass rate: 2 of 3. The delivery mechanics are fully verified (emission, byte-identity, checksums, valid hook config). The behavioral claim, that agents receiving the payload run 10 to 18% cheaper, was not exercised end to end: the host Claude Code CLI could not open an authenticated session, and the A/B harness that produced the claim is not published.
What the runs tell you
The artifact is exactly what it claims to be: a small, checksummed, dependency-free text payload with a working delivery hook. What cannot be verified from the repo is the effect size; you either trust the A/B document or run your own paired comparison, and the README explicitly invites the latter with a template issue format for regressions.
Setup Walkthrough
- Clone the payload repo:
git clone https://github.com/JetBrains/benjamin-plus-skill ~/.benjamin-plus(2.1 MB, no dependencies). - Claude Code: add the SessionStart hook to
~/.claude/settings.jsonwith matcherstartup|resume|clear|compactand commandcat ~/.benjamin-plus/injected-instruction.md. The matcher re-injects after /clear and compaction, the two events that silently wipe injected context. Verify with/hooks. We confirmed the JSON block is valid and the hook script variant works from any cwd. - Zero-config alternative for any repo:
cat ~/.benjamin-plus/injected-instruction.md >> CLAUDE.md. - Codex CLI: append the same file to
~/.codex/AGENTS.mdor a repo's AGENTS.md. - Any other agent (Hermes, OpenClaw, Cursor, Copilot, custom): append
injected-instruction.mdto whatever the agent loads as persistent context. There is no SKILL.md, so skill registries andnpx skills addwill not work, by design. - Removal is the inverse of whatever you did: delete the hook block or the appended lines. Nothing else is installed anywhere.
Alternatives
- JuliusBrussee/caveman (reviewed 4.5/5) cuts output tokens by making the agent talk in compressed prose, verified at 8.5% on real runs by this same JetBrains program. Different mechanism (output style versus lookup discipline), so the two stack; benjamin-plus changes process, caveman changes phrasing.
- DietrichGebert/ponytail (reviewed 5/5) is the YAGNI-discipline skill that ships the laziest correct solution (54% less code on a benchmark). It attacks code volume, benjamin-plus attacks conversation steps; ponytail also ships as a real multi-platform skill with an MCP server if registry install matters to you.
- ayghri/i-have-adhd (reviewed 4.5/5) spends tokens on clarity, shaping output so readers get the answer first. It is the philosophical opposite on token spending and a useful counterweight if you tried compression skills and lost too much signal.
Reviews stay honest because nobody pays us to publish them. If this one saved you time, throw a coin.
Tip the reviewer- reviewed by
- GearScope
- tested
- 2026-08-23 · macOS (Apple Silicon)
- last verified
- 2026-08-23
- depth
- HANDS-ON
- sponsorship
- none, ever
Don't install your next skill blind.
Every week: the shortlist of skills worth installing β and the ones to skip β from 100+ hands-on tests. No spam, no affiliate links.