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 agentmods add commands/bogzx/seeks/startgit clone --depth 1 https://github.com/Bogzx/seeksWhat 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 | $0.00026 | $0.00978 |
| Opus 5 | $0.00013 | $0.00489 |
| Sonnet 5 | $0.00005 | $0.00196 |
| Haiku 4.5 | $0.00003 | $0.00098 |
Grade A, and why
start scanned grade A with 0 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 yesterday.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Run shell via the Bash tool; never bare-cd (use git -C / subshells / absolute paths).
- Pick the loop (
<name>). If no name was given →node "${CLAUDE_PLUGIN_ROOT}/bin/seeks.mjs" latest(the most-recently-touched loop); if that prints nothing, tell the user there are no loops (/seeks:new <goal>first) and STOP. Otherwise<name>=$0. Tell the user which loop you're starting. - Freshness check (re-run / stale base). Read
node "${CLAUDE_PLUGIN_ROOT}/bin/seeks.mjs" status-get <name>andnode "${CLAUDE_PLUGIN_ROOT}/bin/seeks.mjs" base-check <name>. If the loop'sdoneis true (you're re-running a finished loop) ORbase-checkprintsmoved(the base branch advanced since this loop was set up), ask the user once (default yes): "Base<base_ref>has moved / this loop already finished — refresh it against the latest code before running? (recommended)". On yes:- Finished loop → fresh re-scaffold from the latest base (keep the recipe):
node … gc <name>(removes the old worktree+branch+run — keepsspec.md); re-creategit worktree add .claude/worktrees/<name> -b seeks/<name> "<base_ref>"; re-analyze the blast radius and rewrite.seeks/run/<name>/context.md;node … init <name> '{…fresh status from spec.md — armed:false, done:false, verifier_certified:false, dry_sweeps:0, no_progress_count:0, base_ref, worktree_path, the spec's min_dry_sweeps/max_iters/thresholds…}';node … base-record <name>;backlog-addthe starter items fromspec.md; reconcileopen_items; write a freshstate.md. - In-progress loop, base moved → rebase + re-analyze (keep the work):
git -C .claude/worktrees/<name> rebase "<base_ref>"(on conflict, STOP and tell the user to resolve); rewritecontext.md;node … base-record <name>. On no, continue without refreshing.
- Finished loop → fresh re-scaffold from the latest base (keep the recipe):
node "${CLAUDE_PLUGIN_ROOT}/bin/seeks.mjs" lock-acquire <name>— if it exits non-zero, the loop is running elsewhere (fresh heartbeat). STOP and tell the user.- Reset sticky guards + the iteration counter so a paused/halted loop resumes with a fresh budget:
node … status-set <name> '{"armed":true,"needs_human":false,"no_progress_count":0}'thennode … reset-fires <name>(this also clears the gate's release latch — a loop that already finished/halted wakes up again). If it previously halted on max-iters, ask the user whether to raisemax_itersfirst.- Time budget. If the user passed
--for <dur>/--until <time>, convert it to seconds and runnode … budget-set <name> <sec>. Then always stamp the clock so the wall-clock budget counts from this start:node … start-clock <name>. (Absent any budget, this is a no-op for termination — the loop runs as before.) - Maker model nudge: read
node … role makerand tell the user one line — "this loop's tier runs the maker best on<model>; you drive the maker yourself, so/model <model>to match (or carry on)." The maker is this session, so seeks can't switch it for you.
- Time budget. If the user passed
- Call the
EnterWorktreetool withpath: ".claude/worktrees/<name>". - Begin exactly the first pass per the
/seeks:loopskill (read it now), then STOP — end your turn after that single pass. Do NOT continue into the next pass. End the pass withprogress-tick, then stop. The Stop hook re-invokes you for each subsequent pass and sustains the loop until done / needs-human / stuck /max_iters.
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.
- yesterday First seen · 18 lines · 26 tokens per session scan A 1c835d405e74
start is a command published in the GitHub repository Bogzx/seeks (4 stars, last pushed 15d ago), licensed MIT. It adds 26 tokens to every session and 978 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
nio
Nio — scan code, evaluate an action, read the audit report, manage config.
hs
Hardstop - Pre-execution safety layer for shell commands. Shows status and help.
log
Show Hardstop audit log entries.
off
Disable Hardstop protection temporarily.
skip
Skip Hardstop safety check for the next command only.
status
Show Hardstop current status and statistics.