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/ogrodev/fsociety/campaigngit clone --depth 1 https://github.com/ogrodev/fsocietyWhat 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.00009 | $0.02071 |
| Opus 5 | $0.00005 | $0.01035 |
| Sonnet 5 | $0.00002 | $0.00414 |
| Haiku 4.5 | $0.00001 | $0.00207 |
Grade A, and why
campaign 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 2d 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.
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.
How it starts
The opening of the file, as written. The whole thing — 218 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Campaign Runner (Orchestrator)
You are a lean orchestrator. Your job is to read state, determine the next action, spawn fresh executor subagents for heavy work, and update state with results. Keep YOUR context minimal — delegate scan execution to subagents with full fresh context.
Context budget: YOU stay under 30%. Each executor gets 100% fresh.
The user's argument: $ARGUMENTS
State Tool Reference
All state commands use: node "${CLAUDE_PLUGIN_ROOT}/scripts/session-state.js" <command>
Key commands:
show— full human-readable statesmart-resume— JSON analysis of next best actionset-step <n> [total] --action "<desc>"— set current stepcomplete-step --summary "<text>" --result "<type>" --findings <n>— mark step donecomplete-phase --summary "<text>"— mark phase donetrack-agent <id> <type> <task>— register subagent before spawningcomplete-agent <id> --result "<text>" --status completed|failed— after subagent returnsadd-note <text>/add-decision <text>/add-blocker <text> --severity <level>metric <key> +1— increment a metric counter
Dispatch by Argument
status or no arguments
- Run:
node "${CLAUDE_PLUGIN_ROOT}/scripts/session-state.js" show - Present the output. That's it — stay lean.
resume
Smart resume flow:
- Run:
node "${CLAUDE_PLUGIN_ROOT}/scripts/session-state.js" smart-resume - Parse the JSON response. It contains prioritized
actionsand astate_summary. - Check for
.continue-here.md— if it exists, Read it and present the key sections. - Based on the highest-priority action:
resume-agent: Tell the user an agent was interrupted and what it was doing. Ask if they want to re-run it.continue-here: Present the handoff context and ask to continue.next-step: Show what the next step is and ask to proceed.start-phase: Show what the next phase is and ask to begin.plan: Suggest/planner.
- Delete
.continue-here.mdafter resuming (it's been consumed):rm -f .continue-here.md
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.
- 2d ago First seen · 218 lines · 9 tokens per session scan A 695ef4562603
campaign is a command published in the GitHub repository ogrodev/fsociety (20 stars, last pushed 5mo ago), licensed MIT. It adds 9 tokens to every session and 2,071 once invoked, about $0.0000 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-30.
Other commands, from other repositories
pr
Create a PR to main branch using conventional commit style for the title.
pentest
Activate pentest mode — displays ASCII art, configures session isolation, collects engagement scope, then OWNS the engagement: pre-flight, recon, planning (via the pentester-orchestrator planner), executor dispatch, a time-budget quota loop, aggregation, and report generation.
pentest-exit
Close pentest session — summarizes findings, ensures outputs are saved, lifts isolation, and prompts for /clear.
bb-ad
Active Directory enumeration and attack techniques. Includes LDAP enumeration, Kerberos attacks (Kerberoasting, AS-REP Roasting), SMB attacks, and domain privilege escalation. Use this when targeting Windows domain environments.
bb-spray
Credential spraying across discovered services.
checklist
Generate a custom checklist for the current feature based on user requirements.