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/wessamfathi/suhail/abortgit clone --depth 1 https://github.com/wessamfathi/suhailWrote 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/commands/wessamfathi/suhail/abort)<a href="https://agentmods.dev/commands/wessamfathi/suhail/abort"><img src="https://agentmods.dev/badge/commands/wessamfathi/suhail/abort.svg" alt="Measured on agentmods" 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 | $0.00017 | $0.00803 |
| Opus 5 | $0.00009 | $0.00402 |
| Sonnet 5 | $0.00003 | $0.00161 |
| Haiku 4.5 | $0.00002 | $0.00080 |
Grade A, and why
abort 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 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.
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 — 37 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/su:abort — Suhail run aborter
You are aborting the current Suhail run. This command takes no arguments. It sets aborted: true in .suhail/state.json and persists it via suhail-write (which also re-renders STATUS.md). It does NOT delete .suhail/ or any artifacts; the run record stays on disk for inspection.
/su:abort does NOT initialize a run, does NOT advance state, and does NOT resolve blockers. It only flips the abort flag.
On every invocation
Run the following guards in order, short-circuiting on the first match. Each refusal is exactly one sentence and performs no file mutations.
- No active run. Attempt to Read
.suhail/state.json. If it does not exist, end with: "No active Suhail run found — nothing to abort." - Already aborted. Parse
state.json. If top-levelaborted == true, end with: "This Suhail run is already aborted — no action taken."
Abort
After the guards pass:
- Read
.suhail/state.jsoninto memory (the full object). - Set
aborted = true. - Update
updated_atto the current ISO 8601 timestamp. - Resolve the scripts directory using the following four-step lookup (check each in order; use the first that exists): (1)
${CLAUDE_PLUGIN_ROOT}/scripts/— resolves only when installed as a Claude Code plugin, where the token is substituted inline before this file is read; in any other context it is left literal and the path will not exist, so it falls through; (2)./.claude/commands/scripts/; (3)$CLAUDE_CONFIG_DIR/commands/scripts/if the environment variableCLAUDE_CONFIG_DIRis set and non-empty, otherwise~/.claude/commands/scripts/; (4)./scripts/(dev-repo fallback). If none exist, end with: "Helper scripts not found — install Suhail or run from the dev repo." Pipe the complete updated state JSON tosuhail-write(platform-detected:pwsh <resolved-scripts-dir>/suhail-write.ps1 .suhail/state.jsonon Windows;bash <resolved-scripts-dir>/suhail-write.sh .suhail/state.jsonon POSIX) with the full JSON on stdin. Per the state-machine invariant, always write the full file from the in-memory model — never partial-update, and never writestate.jsondirectly. - On non-zero exit from
suhail-write: write.suhail/parts/<current_part_id>/blocker.md(from: orchestrator) if a current Part exists, otherwise report the failure in one sentence with the exit code. Do NOT retry in a loop. - On success: end with a one-sentence confirmation, e.g. "Suhail run aborted — state marked
aborted, artifacts under.suhail/preserved."
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 First seen · 37 lines · 17 tokens per session scan A 3753de04b30d
abort is a command published in the GitHub repository wessamfathi/suhail (2 stars, last pushed 2d ago), licensed MIT. It adds 17 tokens to every session and 803 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
better-auth:add-plugin
Add a better-auth plugin to an existing project. Configures server and client plugins with proper imports.
better-auth:setup
Interactive setup wizard for better-auth authentication. Guides through database, framework, OAuth providers, and plugin configuration.
bun:migrate
Migrate existing Node.js/npm projects to Bun.
send
Send a message to a peer session.
reskin
Extract a measured design signature (type ramp, accent + its budget, grid unit, radius, layout) from a reference image or site, write it to signature.json, and drive the build to match it — "steal this vibe" as a spec, not pixels.
wf-statusline
Set up a lightweight, artifact-only workflow progress statusline.