RedAmon is an AI framework that connects reconnaissance, exploitation, and post-exploitation activities into an automated security-testing pipeline, while organizing findings and proposing code fixes. It is for authorized penetration testing, security research, and education. The catalogue entries provide skills and instructions for working with the framework.
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 samugit83/redamon --skill recon-tool-integrationgit clone --depth 1 https://github.com/samugit83/redamonWrote 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/samugit83/redamon/recon-tool-integration)<a href="https://agentmods.dev/skills/samugit83/redamon/recon-tool-integration"><img src="https://agentmods.dev/badge/skills/samugit83/redamon/recon-tool-integration/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/samugit83/redamon/recon-tool-integration"><img src="https://agentmods.dev/badge/skills/samugit83/redamon/recon-tool-integration.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
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 →
- medium MCP Rug Pull · line 84 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
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.00114 | $0.01888 |
| Opus 5.5 | $0.00046 | $0.00755 |
| Sonnet 5.5 | $0.00023 | $0.00378 |
| Haiku 4.5 | $0.00011 | $0.00189 |
Grade A, and why
recon-tool-integration 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 21d 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 — 137 lines — stays where its author put it; the contents beside it link to each section on GitHub.
When to Use
- Adding a brand-new scanning/enrichment tool to the scan pipeline.
For adding AI decision-making to an existing tool, use recon-ai-enrichment.
For the graph write, use graph-db-writes. For the settings, use
project-settings-cascade. This skill is the module + pipeline wiring.
Critical Rules
- NEVER ship the enrichment module without its
_isolatedwrapper.run_<tool>_enrichment_isolated()is the actual call path for the GROUP 3b parallel fan-out AND for every unit test; the plainrun_<tool>_enrichment()alone is never fan-out-safe. Reference: recon/main_recon_modules/censys_enrich.py:369. - NEVER vary the top-level result key. The module writes
combined_result["<tool>"]and the wrapper returnssnapshot.get("<tool>", {})with the same identifier used everywhere else in the pipeline (censys_enrich.py:365). - NEVER collect a field and not write it to the graph. Every field in the
output dict must land on a node/relationship or it is silent data loss - see
graph-db-writes. - NEVER add a tool setting without updating BOTH preset layers. Add it to the
Zod recon-preset-schema.ts and to
RECON_PARAMETER_CATALOGin webapp/src/app/api/presets/generate/route.ts. Miss the Zod schema and AI-generated presets silently strip the setting; miss the catalog and the preset LLM never knows the tool exists. - ALWAYS prefix every
print()log[symbol][ToolName]([*]progress,[+]success,[-]skipped,[!]error). Recon stdout is tailed into the SSE recon drawer; a bareprint()is invisibly formatted. - ALWAYS place a fan-out tool behind the deep-copy
_isolatedwrapper and in the correct execution group in recon/main.py; never parallelize across a dependency boundary (a tool needing live URLs cannot run before GROUP 4). - ALWAYS route a new external call through
recon/helpers/circuit_breaker.py. An
API endpoint goes through a
Breaker(guarded_call, or aprovider:endpointbreaker withrecord(classify_http(...))); its keys go through aKeyPool, not a raw main-key read. A loop over scan hosts (HTTP or a Docker tool) gates each host withhost_health.allow(url)/scope.skip_if_down(url)and records the outcome withhost_alive/host_failed— any HTTP response is life, only a connection failure counts. Never log a key or a response body: breaker messages carry the provider, endpoint and a refused key's 1-based rotation position only. - ALWAYS declare what the tool cut to the coverage accumulator. Open a
scope = circuit_breaker.scope((), label="Tool", unit="host(s)")at the tool's start and callscope.finish("<phase>", sources=[...], host_source="<graph source>", payload=result)at its end — so the end-of-run prune KEEPS a paused source's or a skipped host's prior findings instead of deleting them as "gone", and the run showspartial — N sources skipped.host_sourcemust equal thesourcevalue the tool writes to the graph. A tool whose findings carry no host field passeshost_field=False(the skip is reported at the source level). - A new tool setting FAILS THE BUILD until it is in the registry. Every
parameter is described once in
recon_settings/registry.yaml,
and a test walking
Prisma.ProjectScalarFieldEnumfails until every column has an entry. Draft it withpython3 tooling/scripts/extract_recon_registry.py, EDIT IT, thenpython3 recon_settings/build.py. - Tuning is OPEN and controlled at the point of use, not by being refused.
A rate is capped to the engagement ceiling at scan start; a wordlist path
outside the project's own directories is dropped. A container image is a
closed
values:list and an out-of-set value is REFUSED at the write, because accepting one and replacing it at scan start madeget_recon_settingsecho an image the scan would never run. - Two things stay closed, and only two. The engagement SCOPE
(
mcp: create_only, set once bycreate_project) and the engagement RECORD (mcp: never,deny_reason: engagement-record- the client, the contacts, the dates, the document). The engagement's LIMITS are ordinarymcp: settablefields in theengagement_limitsgroup: they are reachable from the form and from MCP alike, and what makes them safe is that each is enforced at scan start whatever the setting says. See README.MCP.SERVER.md. - A settable field with no form input fails
parity.test.ts, and so does a form input with no classification. Neither door may reach something the other cannot.form_sectionis joined from the tool's own entry, so a field lands beside its tool automatically. - A new
rpsfield withtraffic: activeand noroe_capped: truefails the build. That gap is how three rate limits shipped reachable over MCP and outside the ceiling.
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.
- 21d ago Changed · +17 lines 29cf6c2263a5
- 1mo ago Changed · +19 lines 8273fe775acb
- 1mo ago Changed · +9 lines 7ddd7800a72d
- 1mo ago First seen · 92 lines · 114 tokens per session scan A b7984e8913fd
recon-tool-integration is a skill published in the GitHub repository samugit83/redamon (3,170 stars, last pushed yesterday), licensed MIT. It adds 114 tokens to every session and 1,888 once invoked, about $0.0005 per session on Opus 5.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-30.
Other skills, from other repositories
detecting-shadow-api-endpoints
Discover and inventory shadow API endpoints that operate outside documented specifications using traffic analysis, code scanning, and API discovery platforms.
codex-autoresearch
Triage improvement work and run or resume accepted measured loops in a local project. Architecture, documentation, UX, product study, open research, taste, and one-shot fixes stay direct unless the user explicitly requests repeated measurement with a complete experiment contract.
openai-docs
Use when the user asks how to build with OpenAI products or APIs, asks about Codex itself or choosing Codex surfaces, needs up-to-date official documentation with citations, help choosing the latest model for a use case, or model upgrade and prompt-upgrade guidance; use OpenAI docs MCP tools for non-Codex docs…
skill-creator
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Codex's capabilities with specialized knowledge, workflows, or tool integrations.
ad-attacks
Active Directory attack reference — BloodHound Cypher queries, Kerberos attack decision tree, ACE/ACL abuse, ADCS ESC1-8, and AD misconfig checklist.
wordlists
SecLists path map, hashcat rules, CeWL usage, and custom wordlist generation for all attack categories.