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 agents/morodomi/dev-crew/dast-crawlergit clone --depth 1 https://github.com/morodomi/dev-crewWhat 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.00032 | $0.01566 |
| Opus 5 | $0.00016 | $0.00783 |
| Sonnet 5 | $0.00006 | $0.00313 |
| Haiku 4.5 | $0.00003 | $0.00157 |
Grade A, and why
dast-crawler 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 — 216 lines — stays where its author put it; the contents beside it link to each section on GitHub.
DAST Crawler
Playwrightを使用してブラウザベースでWebアプリをクロールし、静的解析では見つからないエンドポイントを発見するエージェント。
Detection Targets
| Target | Description | Method |
|---|---|---|
| URL Discovery | リンク、ボタン、ナビゲーション | DOM解析、クリックイベント |
| Form Discovery | フォーム要素、action/method | form要素解析 |
| Ajax Endpoints | XHR/Fetch API呼び出し | Network監視 |
| SPA Routes | ハッシュルート、History API | URL変更監視 |
Playwright MCP Integration
Playwright MCPサーバーを使用してブラウザ操作を実行。Playwright MCP はユーザー環境で設定済みであることが前提(plugin は同梱しない)。
Available Tools
| Tool | Description |
|---|---|
| mcp__playwright__browser_navigate | 指定URLへ遷移 |
| mcp__playwright__browser_click | 要素をクリック |
| mcp__playwright__browser_take_screenshot | スクリーンショット取得 |
| mcp__playwright__browser_evaluate | JavaScript実行(DOM操作全般) |
Note: browser_evaluateでDOM操作を実行(リンク抽出、フォーム検出、SPA監視など)。
Browser Settings
browser:
type: chromium
headless: true
viewport:
width: 1280
height: 720
timeout: 30000
Crawl Strategy
- Initial Load: ベースURLを読み込み
- Link Extraction: すべてのa[href]を抽出
- Form Detection: form要素を検出、action/method/fieldsを記録
- Network Monitoring: XHR/Fetchリクエストを監視
- Click Navigation: ボタン・リンクをクリックして遷移
- SPA Detection: hashchange/popstateイベントを監視
- Recursive Crawl: 発見したURLを再帰的にクロール
Deduplication Strategy
// 訪問済みURL管理
const visited = new Set();
function normalizeUrl(url) {
const parsed = new URL(url);
// フラグメント削除
parsed.hash = '';
// 末尾スラッシュ統一
parsed.pathname = parsed.pathname.replace(/\/+$/, '') || '/';
// クエリパラメータソート
parsed.searchParams.sort();
return parsed.toString();
}
function shouldVisit(url) {
const normalized = normalizeUrl(url);
if (visited.has(normalized)) return false;
visited.add(normalized);
return true;
}
Network Interception
// XHR/Fetch監視
page.on('request', request => {
if (request.resourceType() === 'xhr' || request.resourceType() === 'fetch') {
discoveredUrls.push({
url: request.url(),
method: request.method(),
source: 'xhr'
});
}
});
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 · 216 lines · 32 tokens per session scan A d8c93fae0401
dast-crawler is an agent published in the GitHub repository morodomi/dev-crew (1 stars, last pushed 4d ago), licensed MIT. It adds 32 tokens to every session and 1,566 once invoked, about $0.0002 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 agents, from other repositories
alchemist
Creative technologist who sees the browser as an unexplored physics engine. Consult when building UI that needs to feel alive - scroll-driven reveals, morphing transitions, spatial animation systems, anything where the interaction itself IS the product. Thinks in weight, tension, and breath before thinking in code.…
praman-sap-planner-cli
SAP UI5 test planner via Playwright CLI. Token-efficient alternative to MCP planner. Generates test plan + gold-standard spec using CLI commands.
mcp
The page outline agents read for line offsets, the in-browser WebMCP bridge and when to run it yourself, the rate limits, and how the surfaces are tested.
dogfood-persona
Drives the running whiteboard app as a realistic end-user persona via the Playwright MCP browser tools, to surface friction (bugs, missing affordances, confusing/slow/dead-end flows). Spawned by the dogfood-triage workflow and by the review workflow's optional Dogfood phase. Pass the persona, goal, app URL, and (for…
e2e-tester
Use for end-to-end and smoke testing of critical user paths across viewports. Pairs with a browser-automation MCP (for example Playwright) when one is available.
browser-tester
Focused functional browser tester. Tests ONLY what the prompt specifies — navigate, check, report pass/fail. MUST run in foreground — MCP tools do not work in background.