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 skills add OutlineDriven/outline-driven-development --skill burpsuite-project-parsergit clone --depth 1 https://github.com/OutlineDriven/outline-driven-developmentWrote 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/skills/outlinedriven/outline-driven-development/burpsuite-project-parser)<a href="https://agentmods.dev/skills/outlinedriven/outline-driven-development/burpsuite-project-parser"><img src="https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/burpsuite-project-parser.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high YARA Match · line 2 YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).Fix: Remove offensive tool references and exploit code. Legitimate agent skills should not contain penetration testing tools, exploit frameworks, or reconnaissance utilities.
- medium Output Handling · line 75 Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.Fix: Set explicit limits on output length, generation count, and rate. Use max_tokens and truncation to prevent unbounded output.
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.1 | $0.00049 | $0.01744 |
| Opus 5 | $0.00024 | $0.00872 |
| Sonnet 5 | $0.00010 | $0.00349 |
| Haiku 4.5 | $0.00005 | $0.00174 |
Grade A, and why
burpsuite-project-parser 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.
How it starts
The opening of the file, as written. The whole thing — 76 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Burp Suite project parser
Contract
| Field | Bound contract |
|---|---|
| Trigger | A user asks to search or analyze a Burp Suite .burp project, extract audit items, inspect request or response metadata, or search captured traffic. |
| Authority | Read-only: the .burp project is read through Burp Suite Professional; no project file is modified. No remote mutation. |
| Side effect | The user-selected local .burp project is read through Burp Suite Professional; output is capped and filtered in parsed mode, or streamed raw in stream mode. |
| Done | The requested operation returns the correct JSON output for the selected mode: size-checked and truncated in parsed mode, or raw streamed in stream mode. |
Inputs
- Project file path (required): absolute path to a
.burpproject file. - Operation (required): one of
auditItems,proxyHistory,siteMap,responseHeader='regex',responseBody='regex', or a sub-component filter such asproxyHistory.request.headers. - Mode (required):
parsed(default) orstream.streamreturns the parser output unchanged to stdout without body truncation. - BURP_JAVA (required if not at default platform path): path to Burp Suite Professional's bundled Java executable.
- BURP_JAR (required if not at default platform path): path to
burpsuite_pro.jar. - jq (required for
parsedmode): used for filtering, truncating body fields, and triaging audit items.
Procedure
- Verify prerequisites. Confirm Burp Suite Professional is installed, the
burpsuite-project-file-parserextension (github.com/BuffaloWill/burpsuite-project-file-parser) is loaded, andBURP_JAVA,BURP_JAR, andjqresolve to existing executables.BURP_JAVAandBURP_JARdefault to macOS/Applications/Burp Suite Professional.app/Contents/Resources/...and Linux/opt/BurpSuiteProfessional/.... If any prerequisite is missing, stop and report it. This skill does not parse.burpfiles directly. Done when: Burp Suite, the extension, Java, JAR, and jq are confirmed present. - Confirm the project file exists at the supplied path. If not, stop and report the missing file. Done when: the project file is confirmed.
- If no operation argument is supplied, print usage and stop. Done when: at least one operation is present or usage is printed.
- Mode
parsed: preflight result size by running the operation throughwc -cl:
The"$BURP_JAVA" -Djava.awt.headless=true -jar "$BURP_JAR" \ --project-file="$PROJECT_FILE" <operation> | wc -cl-Djava.awt.headless=trueflag must precede-jar. Interpret both metrics: lines under 50 and bytes under 50 KB are safe; lines 50 to 200 or bytes 50 to 200 KB require narrowing; lines over 200 or bytes over 200 KB require further narrowing; lines over 1000 or bytes over 1 MB require stopping and refining. A single large response on one line shows a high byte count but only one line; the byte check catches this. Done when: size is classified as safe, needs narrowing, or stop-and-refine. - Mode
parsed: if the size check is too broad, narrow the operation. Replace fullproxyHistoryorsiteMapwith sub-component filters (proxyHistory.request.headers,proxyHistory.response.headers,siteMap.request.headers,siteMap.response.headers). Tighten regex patterns from.*to specific content. Pipe throughjqwith aselectfilter before retrieving full output. Done when: the operation is narrowed to pass the size check. - Mode
parsed: retrieve the narrowed result with a hard byte cap of 50 KB:
Done when: the narrowed result is retrieved with a 50 KB byte cap."$BURP_JAVA" -Djava.awt.headless=true -jar "$BURP_JAR" \ --project-file="$PROJECT_FILE" <operation> | head -c 50000 - Mode
parsed: truncate body fields and triage audit items usingjq. For any operation returning a.bodyfield, truncate each body to 1000 characters before it enters context:
For audit items, triage by severity and confidence:... | head -n 20 | jq -c '.body = (.body[:1000] + "...[TRUNCATED]")'
Present Burp findings as indicators requiring manual validation, not proven vulnerabilities. Note that proxy history may be incomplete due to Burp scope filters, intercept settings, or traffic not routed through the proxy. Done when: every body field is truncated, audit items are triaged, and findings are presented as indicators requiring validation.... | jq 'select(.severity == "High")' | jq 'select(.confidence == "Certain" or .confidence == "Firm")' - Mode
stream: run the parser by executing the resolved Java binary headless against the resolved JAR, passing--project-file=<project-file>followed by every operation argument verbatim:
Stream the JSON output (one object per line) to stdout unchanged. Do not parse, filter, or mutate the output. Done when: the parser is invoked and its output is streamed.<BURP_JAVA> -Djava.awt.headless=true -jar <BURP_JAR> --project-file=<PROJECT_FILE> <operation...>
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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 Changed · +6 lines · -22 tokens per session 939b1363b341
- 4d ago First seen · 70 lines · 71 tokens per session scan A 26b93de3c58f
burpsuite-project-parser is a skill published in the GitHub repository OutlineDriven/outline-driven-development (52 stars, last pushed 2d ago), licensed Apache-2.0. It adds 49 tokens to every session and 1,744 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-09-03.
Other skills, from other repositories
audit-project
Run an iterative multi-agent code audit until critical and high findings are resolved. Use when the user says "audit my code", "find all the bugs", "deep code audit", "iterative review", or "review until clean".
duet
Use when the user invokes /duet, says "pair with me", or faces aesthetic, architectural, or irreversible decisions.
goal-prompt-drafting
Use when asked to draft copy-ready /goal objectives for long-running agents; returns one normalized one-line objective with measurable end state, grounded proof, easy-out invariants, a stop clause, and a Missing list. Not for source or remote-system changes.
handoff-prompt
Use when the user asks for a handoff, delegation, or clipboard-ready prompt for another agent: a standalone path-free prompt copied to the clipboard, confirmed by title. Not for session-snapshot briefs — use handoff; never remote, credential, publish, deploy, or irreversible.
publish-branch
Use when asked to publish the checked-out branch: commit and push it on whatever branch it is, the default branch included. Not for creating branches, PRs, force pushes, or pushing any other branch; when the request excludes the default branch, use commit-push-current.
drill
Use when a concept needs practising rather than explaining: run a scaffolded exercise from worked example to independent problem, quiz the learner, run spaced recall over what they cleared, or probe for the gaps blocking what they want next. For explanation, use explain-concept; for an end-to-end build, use capstone.