* feat(codex): add skill UI metadata * Use official Trail of Bits logo * fix: resolve code review findings for PR #175 Codex silently drops the icons as authored: its loader (codex-rs/core-skills resolve_asset_path) requires icon paths containing '..' to resolve under <plugin_root>/assets/, and the repo-root .codex/assets location fails that containment check. Verified empirically via codex app-server plugin/read: every iconSmall/iconLarge came back null; only brand_color applied. P1 fixed: - Vendor trail-of-bits-mark.svg into plugins/<name>/assets/ for all 38 plugins with skills and point every openai.yaml at ../../assets/trail-of-bits-mark.svg (the supported plugin-level shared asset pattern). Icons now resolve for marketplace installs too, since nothing escapes the plugin root. - Drop the .codex/ additions: .codex/skills/gh-cli/agents/ openai.yaml resolved nowhere (.codex/skills is not a Codex discovery root) and PR #173 removes the whole .codex/ tree P2 fixed: - Patch-bump all 38 touched plugins in plugin.json and marketplace.json so installed clients pick up the metadata Verified: - Static check replicating Codex's resolution algorithm: all 73 yaml files resolve under their plugin assets/ and exist - Live codex app-server probe: 71/72 loadable skills report resolved iconSmall/iconLarge and brand_color #D83A34 (claude-in-chrome-troubleshooting fails to load on main due to a pre-existing 64-char qualified-name limit, fixed by #173's rename; zeroize-audit's manifest mcpServers object is likewise a pre-existing Codex incompatibility fixed by #173) - validate_codex_skills.py, validate_plugin_metadata.py, prek all pass Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(codex): use skill-local icon assets --------- Co-authored-by: Dan Guido <dan@trailofbits.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Burp Suite Project Parser
Search and extract data from Burp Suite project files (.burp) for use in Claude
Author: Will Vandevanter
Prerequisites
- Burp Suite Professional - Required for project file support
- burpsuite-project-file-parser extension - Must be installed in Burp Suite (Available: https://github.com/BuffaloWill/burpsuite-project-file-parser)
- jq (optional) - Recommended for formatting/filtering JSON output
When to Use
Use this skill when you need to get the following from a Burp project:
- Search response headers or bodies using regex patterns
- Extract security audit findings and vulnerabilities
- Dump proxy history or site map data for analysis
- Programmatically analyze HTTP traffic captured by Burp Suite
Trigger phrases: "search the burp project", "find in burp file", "what vulnerabilities in the burp", "get audit items from burp"
What It Does
This skill provides CLI access to Burp Suite project files through the burpsuite-project-file-parser extension:
- Search headers/bodies - Find specific patterns in captured HTTP traffic using regex
- Extract audit items - Get all security findings with severity, confidence, and URLs
- Dump traffic data - Export proxy history and site map entries as JSON
- Filter output - Use sub-component filters to optimize performance on large projects
Installation
/plugin install trailofbits/skills/plugins/burpsuite-project-parser
Usage
Base command:
scripts/burp-search.sh /path/to/project.burp [FLAGS]
Available Commands
| Command | Description | Output |
|---|---|---|
auditItems |
Extract all security findings | JSON: name, severity, confidence, host, port, protocol, url |
proxyHistory |
Dump all captured HTTP traffic | Complete request/response data |
siteMap |
Dump all site map entries | Site structure |
responseHeader='.*regex.*' |
Search response headers | JSON: url, header |
responseBody='.*regex.*' |
Search response bodies | Matching content |
Sub-Component Filters
For large projects, filter to specific data to improve performance:
proxyHistory.request.headers # Only request headers
proxyHistory.request.body # Only request body
proxyHistory.response.headers # Only response headers
proxyHistory.response.body # Only response body
Same patterns work with siteMap.*
Examples
Search for CORS headers:
scripts/burp-search.sh project.burp "responseHeader='.*Access-Control.*'"
Get all high-severity findings:
scripts/burp-search.sh project.burp auditItems | jq 'select(.severity == "High")'
Find server signatures:
scripts/burp-search.sh project.burp "responseHeader='.*(nginx|Apache|Servlet).*'"
Extract request URLs from proxy history:
scripts/burp-search.sh project.burp proxyHistory.request.headers | jq -r '.request.url'
Search for HTML forms:
scripts/burp-search.sh project.burp "responseBody='.*<form.*action.*'"
Output Format
All output is JSON, one object per line. Pipe to jq for formatting or use grep for filtering:
scripts/burp-search.sh project.burp auditItems | jq .
scripts/burp-search.sh project.burp auditItems | grep -i "sql injection"