Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add lenamonj/jeffy-loop --skill jeffygit clone --depth 1 https://github.com/lenamonj/jeffy-loopWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/lenamonj/jeffy-loop/jeffy)<a href="https://agentmods.dev/skills/lenamonj/jeffy-loop/jeffy"><img src="https://agentmods.dev/badge/skills/lenamonj/jeffy-loop/jeffy/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/lenamonj/jeffy-loop/jeffy"><img src="https://agentmods.dev/badge/skills/lenamonj/jeffy-loop/jeffy.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00025 | $0.07678 |
| Opus 5.5 | $0.00010 | $0.03071 |
| Sonnet 5.5 | $0.00005 | $0.01536 |
| Haiku 4.5 | $0.00003 | $0.00768 |
Grade E, and why
jeffy scanned grade E with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Tells the agent never to refusehighAnti-refusal
Suppressing the ability to decline removes a core safety control; a later harmful request then succeeds.
8. Repository scope: if the project is a git repository, compare `git rev-parse --show-toplevel` with the project root. When they differ, the project is a subdirectory of a larger repository, so every checkpoint's `git a Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
1. Hook dependency: `which jq`. If missing the Stop hook cannot parse its input and the loop cannot run. Suggest `winget install jqlang.jq` (Windows), `brew install jq` (macOS), or `sudo apt-get install jq` (Debian/Ubunt Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
cat > "$PR/.claude/jeffy-loop.local.md" <<EOF How it starts
The opening of the file, as written. The whole thing — 161 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Jeffy
Bootstrap per-project Jeffy state files, write the loop state file, and begin iteration 1. The loop engine is Jeffy's own Stop hook, shipped with this skill at hooks/stop-hook.sh: at every turn end it reads .claude/jeffy-loop.local.md at the project root, and while that file names this session and budget remains it re-feeds the iteration prompt; it deletes the file and lets the session end when the budget is spent, the completion promise fires, or one of its own gates ends the run - a stall, an oscillation, a time ceiling, or an audit or refill inside the closing window. The hook anchors itself to CLAUDE_PROJECT_DIR, which hooks receive fixed at the directory Claude Code was started in, so shell cwd drift mid-iteration cannot kill the loop. The hook is registered machine-wide in ~/.claude/settings.json by the installer but exits immediately in any session whose project has no state file. This skill only sets up and launches; the hook implements the loop mechanics.
Project root means the directory Claude Code was started in - the session's primary working directory shown in the environment, which is stable regardless of shell drift. Resolve it to an absolute path with forward slashes and use it everywhere below; never trust the shell's current cwd, which persists across Bash calls and may have drifted into a subdirectory.
Arguments
Parse $ARGUMENTS: if the first token is an integer, it is the iteration budget N, default 10, or 5 on a --highs launch. Next parse the mode flag and the ceiling flags wherever they appear in the remainder. --highs takes no value and selects High-hunt mode for this run: the loop audits the whole surface, fixes only Highs, audits again once no High is open, and closes the first time an audit finds none - no sweep obligation, no Medium or Low queue, no evaluator gate, no closing extension and no convergence claim; a hunt is not a convergence and its receipt is the pull request its Highs produce. The ceiling flags each take one value: --max-time <duration> sets max_wall_clock_seconds, --max-iter-time <duration> sets max_iteration_seconds, --max-context <N> sets max_context_growth, --evaluator-probe <k> sets evaluator_probe, a whole number of swept rows the gate probes, default 0 meaning off, and --max-surface <lines> sets the surface ceiling pre-flight check 11 refuses above, a whole number of tracked source lines, default 150000 on an Improvement launch and 600000 on a --highs launch, 0 meaning off; a duration is a bare number of seconds or a number suffixed s, m, or h (45m, 2h, 900s, 900), and 0 means off, the default for --max-time, --max-iter-time and --max-context; --max-surface alone is on by default. --refeed takes one value, full or pointer, and chooses what the Stop hook re-feeds at every turn end: full, the default, is the whole iteration prompt, the behaviour every receipt was earned under; pointer is the run state and one sentence pointing at the prompt file this session read at launch, an experimental setting for the pre-registered A/B on context occupancy, never a default until that experiment loses no convergence and no gate. A flag missing its value, an unparseable duration, a --max-surface value that is not a plain whole number (300k and 300,000 are refusals, 300000 is a value), a --refeed value other than full or pointer, an --evaluator-probe value that is not a plain whole number, or an unrecognized -- token is a refusal naming the token, never silently folded into the focus - a documented ceiling that becomes free text is a ceiling that is silently off. Whatever text remains after the budget and the flags is the focus directive for this run. If the token after the optional budget is exactly enhance, refuse the launch and stop: Enhance mode was removed in v1.11.0 - the defect loop is the product - and the last release that carries it is v1.10.0. On a fresh project, iteration 1 is always consumed by the audit that generates the backlog, so N=2 executes exactly one task; if the user picks N below 5, proceed but note that larger budgets make materially more progress.
What ships with it
14 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- hooks/lib/check-claims.sh 7.9 KB runs code
- hooks/lib/detect-sandbox.sh 1.7 KB runs code
- hooks/lib/measure-surface.sh 5.4 KB runs code
- hooks/lib/quiet-verify.sh 18 KB runs code
- hooks/lib/run-probe.sh 6.9 KB runs code
- hooks/lib/transcript-usage.sh 3.8 KB runs code
- hooks/stop-hook.sh 213 KB runs code
- references/backlog-default.md 3.4 KB
- references/backlog-highs.md 3.1 KB
- references/iteration-prompt-highs.txt 19 KB
- references/iteration-prompt.txt 34 KB
- references/journal-default.md 2.7 KB
- references/plan-default.md 38 KB
- references/plan-highs.md 25 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed · +1 lines 7f51d32b82df
- 8d ago Changed 4522c165a2d1
- 10d ago Changed · +2 lines eda96b0766be
- 23d ago Changed c0cde4244ae6
- 24d ago Changed · +1 lines 909ac7482e0b
- 1mo ago Changed · +1 lines 2cadac67ac3e
- 1mo ago Changed 87131739a550
- 2mo ago Changed · +7 lines 95812f1a45a1
- 2mo ago First seen · 149 lines · 25 tokens per session scan E e8f5d39924f3
jeffy is a skill published in the GitHub repository lenamonj/jeffy-loop (13 stars, last pushed 2d ago), licensed MIT. It adds 25 tokens to every session and 7,678 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it E with 3 findings (tells the agent never to refuse, asks for root, reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
jeffy compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| jeffylenamonj/jeffy-loop | Skill | 13 | 2d ago | MIT | E | 25 | Claude Code |
| research-refinewanshuiyin/Auto-claude-code-research-in-sleep | Skill | 19k | 2d ago | MIT | A | 101 | Claude Code |
| paper-illustrationwanshuiyin/Auto-claude-code-research-in-sleep | Skill | 19k | 2d ago | MIT | A | 67 | Claude Code |
| rebuttalwanshuiyin/Auto-claude-code-research-in-sleep | Skill | 19k | 2d ago | MIT | A | 73 | Claude Code |
| slides-polishwanshuiyin/Auto-claude-code-research-in-sleep | Skill | 19k | 2d ago | MIT | A | 136 | Claude Code |
| research-implement-featurewanshuiyin/Auto-claude-code-research-in-sleep | Skill | 19k | 2d ago | MIT | A | 120 | Claude Code |
| research-wikiwanshuiyin/Auto-claude-code-research-in-sleep | Skill | 19k | 2d ago | MIT | A | 73 | Claude Code |