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/rakutentech/sorify/generategit clone --depth 1 https://github.com/rakutentech/sorifyWhat 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.00102 | $0.03939 |
| Opus 5 | $0.00051 | $0.01969 |
| Sonnet 5 | $0.00020 | $0.00788 |
| Haiku 4.5 | $0.00010 | $0.00394 |
Grade A, and why
generate 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 — 464 lines — stays where its author put it; the contents beside it link to each section on GitHub.
sorify
Trigger
Invoked from the generate command with natural language or structured arguments.
Step 1: Understand the input and determine mode
The input may be plain arguments, structured text, or natural language in any language. Read the entire input and extract:
| What | How to identify |
|---|---|
target_url |
Any https:// or http:// URL that is clearly the service being tested (NOT a GHE/GitHub repo URL) |
source |
A GHE/GitHub URL, or a local filesystem path (/, ~/, ./ prefix) — optional |
Examples:
https://stg.example.com/
→ target_url = https://stg.example.com/, source = none
https://stg.example.com/ https://github.com/your-org/your-repo
→ target_url = https://stg.example.com/, source = ghe (order does not matter)
https://github.com/your-org/your-repo https://stg.example.com/
→ same result
このサービスのテストを作成して。URL: https://stg.example.com/ リポジトリ: https://github.com/your-org/your-repo
→ target_url = https://stg.example.com/, source = ghe
/Users/hiro/projects/myapp https://stg.example.com/
→ target_url = https://stg.example.com/, source = /Users/hiro/projects/myapp
If target_url cannot be identified → abort with error:
Error: No target URL found. Please provide the URL of the service to test.
Determine mode:
source absent or empty → DOM Mode
source is GHE/GitHub URL (contains 'ghe.' / 'github.com' / 'your-ghe-domain') → GHE Source Mode
source is local path (starts with '/', '~/', './') → Local Source Mode
Step 2: Determine the Sorify base URL
The Sorify MCP server (configured in this plugin's .mcp.json) already handles
authentication transparently — no login step is needed here. Read SORIFY_URL
from ~/.sorify only for building the human-readable run link in the final summary:
if [ ! -f ~/.sorify ]; then
echo "Error: ~/.sorify not found. Please create it with your Sorify credentials."
echo "See the plugin README for the required format."
exit 1
fi
SORIFY_BASE_URL=$(grep "^SORIFY_URL" ~/.sorify | cut -d= -f2)
UPLOADED_BY=$(grep "^SORIFY_USERNAME" ~/.sorify | cut -d= -f2)
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 · 464 lines · 102 tokens per session scan A e4568a59fdf5
generate is a command published in the GitHub repository rakutentech/sorify (5 stars, last pushed 3d ago), licensed Apache-2.0. It adds 102 tokens to every session and 3,939 once invoked, about $0.0005 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
record
Record the browser while validating a flow, then judge it against a rubric.
mbt
Run a browser automation task on a website in natural language (alias for /muggle-browser-task).
mdo
Muggle AI autonomous workflow entry point (alias for /muggle-do).
mfeedback
Submit, list, or delete Muggle Test feedback (alias for /muggle-feedback).
mimport
Import existing tests/PRDs/specs INTO Muggle Test (alias for /muggle-test-import).
mpr
Post the Muggle E2E visual walkthrough to a PR (alias for /muggle-pr-visual-walkthrough).