gabrielmoreira/agent-skills-mirror/traffic-capture
- community
- ext:[{"type":"plugin","description":"Custom plugin integration"}]
Checking that the SKILL.md file is still in the repository.
Working on the HTTP capture proxy and its replay/fuzz path: the egress guard that stops the proxy becoming an SSRF pivot, why it checks the resolved IP, and keeping capture off the scan's critical path. Trigger: editing scanners/capture_proxy/ (capture_addon.py, egress.py, ingest_worker.py); adding a forward/replay/fuzz path; changing EgressPolicy or the internal denylist; wiring an agent tool that replays captured traffic.
Install
npx vskill@latest install gabrielmoreira/agent-skills-mirror/traffic-captureSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
When to Use
- Changing how the proxy forwards, captures, ingests, or replays traffic.
The one-line "route every egress through the guard" rule is in the capture_proxy AGENTS.md CRITICAL RULES; this skill is the mechanism.
Critical Rules
- NEVER match the internal denylist on the hostname alone. The guard denies
on the resolved IP (RFC1918 and friends), because a hostname that resolves to an internal address (or re-resolves after a check) is the SSRF/DNS-rebinding case. See scanners/capture_proxy/egress.py (the block conditions operate on the resolved IP).
- **NEVER build a replay/fuzz target from unvalidated LLM output and send it
straight out.** The replay path is a new egress path; it must pass the same EgressPolicy guard as captured traffic, or the agent can be steered into an internal pivot. Args must not reach the wire un-guarded.
- NEVER remove a block condition to "make replay work". Each condition is
individually toggleable via EgressPolicy (surfaced in settings); loosen it there, per-condition, not by deleting the check.
- ALWAYS keep capture and ingest off the scan's critical path. Capture writes
an append-only spool; a separate worker tails it into Postgres (scanners/capture_proxy/ingest_worker.py). That decoupling is deliberate - capture must never block or slow the scan it observes.
The capture pipeline
| Stage | File | Note | |
|---|---|---|---|
| intercept | capture_addon.py | mitmproxy addon; request/response hooks | |
| egress guard | egress.py | resolved-IP denylist + EgressPolicy toggles; the SSRF backstop | |
| ingest | ingest_worker.py | tails the spool -> Postgres; off the scan path |
Commands
A build alone does not swap the running proxy: the orchestrator spawns it, not compose. Stop and start traffic capture once after a rebuild so it is recreated from the new image; that interrupts every session's capture.
Resources
- docs/readmes/README.TRAFFIC.md - capture/replay/fuzz architecture and settings
- Related: capture_proxy AGENTS.md CRITICAL RULES (route egress through the guard)
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingmirrors/repos/samugit83@redamon/skills/traffic-capture/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Extension points
pluginCustom plugin integration
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/gabrielmoreira/agent-skills-mirror/traffic-capture)