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
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/samugit83/redamonnpx agentmods add skills/samugit83/redamon/plugin-platformWrote 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/plugin-platform)<a href="https://agentmods.dev/skills/samugit83/redamon/plugin-platform"><img src="https://agentmods.dev/badge/skills/samugit83/redamon/plugin-platform/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/plugin-platform"><img src="https://agentmods.dev/badge/skills/samugit83/redamon/plugin-platform.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00172 | $0.02192 |
| Opus 5.5 | $0.00069 | $0.00877 |
| Sonnet 5.5 | $0.00034 | $0.00438 |
| Haiku 4.5 | $0.00017 | $0.00219 |
Grade A, and why
plugin-platform 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 — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.
When to Use
- Changing the Plugin Manager, the catalog check, the Gateway, the override store or the UI host.
- Changing the runner, its worker spawn, the SDK or the
plugin-gatewayproxy. - Touching how
redamon.shor compose start, remove or wire the plugin services.
For a new built-in skill part also follow builtin-agent-skill (layer 10, the part registry);
for an LLM call path, llm-provider-integration; for tests, redamon-testing.
Critical Rules
- NEVER put plugin-specific logic in the base repository. No plugin id, prompt or behaviour
in
webapp/src,agenticorservices; a plugin's name may appear only in tests, fixtures and docs. Check:grep -rnw -i "skiller" --include=*.ts --include=*.tsx --include=*.py webapp/src agentic servicesfinds only test files (-w, or everyUserSkillErrormatches). The platform is generic; a plugin lives inredamon-plugins. - NEVER add an off switch or a degrade-to-off path. The platform always runs (owner decision
2026-10-12). A host that cannot run it is refused by install, update and up with the cause
named, before any core service is recreated (
require_plugin_engine,plugins_preflight,_plugins_preparein redamon.sh); a runner that is down at runtime is a state the UI shows (the runner banner, 503runner_unavailable), never a 404. - NEVER name a plugin service in a plain
up.docker compose up -d --no-deps <profile service>starts a profile service even without--profile(measured, experiment E8), so a plugin service inrebuild_core,restart_onlyor any ad-hocupstarts it without the recreate a runner rebuild needs and without the failure that stops the command. Onlyplugins_convergestartsplugin-runnerandplugin-gateway. - NEVER wire the webapp to the plugins in
docker-compose.yml. Itsplugins-edgenetwork andpluginsvolume live in docker-compose.plugins.yml, whichredamon.shloads only after the plugin preflight created the plugin networks, so a Docker that refuses them stops the command with that cause instead of failing halfway through the coreup. A new webapp plugin variable still goes in the webapp'senvironment:list: the webapp has noenv_file. - NEVER put the runner or the proxy on
redamon, and never widen the proxy's prefixes. Postgres, Neo4j, kali-sandbox and agent routes there trust the network. The proxy passes only/api/plugin-gateway/v1/*,/api/plugin-runner/v1/*and/runner/v1/*(proxy.py);tests/redamon_plugins_profile_test.shasserts the networks. - ALWAYS serve a Gateway call through
withGateway(gateway.ts). It re-authorizes every call: the call token,action_ended/job_ended(a token must not outlive its action or job; found by the phase 04 review), the plugin still serving (enabled, ready, not revoked), the permission an admin granted, and the tenancy of the session. A route that reads the token itself skips some of these. - NEVER let a plugin write what the agent runs. A plugin may only
propose; approval, reset and deletion are core routes that check the scope owner strictly (changeSetAccess.ts:ownsScope, andbodyOwnerMatchesbecause the act-as cookie is site-wide), and admin lifecycle routes re-read the role from the database because the session JWT outlives a demotion (lifecycleRoutes.ts). AreviewProposalthat a job reports is validated in jobs/complete like a sync result, never trusted. - NEVER deliver approved text outside the agent's own settings fetch.
skillTextOverridesgoes only to the master internal key withincludeSkillOverrides=true(projects/[id]/route.ts):includeSkillContentalone is also sent by text-to-cypher and accepted from the scanner key. On the agent side the seam reads only the session's settings context and falls back to the factory text (skill_part_seam.py); it never raises. The one exception isuser_skill.text: approving never makes it active, it saves a NEW user skill (adopted), which is the person's own and travels the ordinary user-skill path (userAttackSkillswithincludeSkillContent, which the scanner key can read too). Never deliver auser_skill.textrow's value any other way. - ALWAYS gate saving a
user_skill.textproposal on the proposer (enabled, ready, not revoked, grantedoverride:user_skill.text, andactiveVersion === meta.pluginVersion) in the save transaction, failing closed (userSkillAdoption.ts). What a save creates outlives the plugin, so the catalog's revocation must reach it: reconcile withdraws the revoked version's waiting proposals and quarantines the skills saved from them, installed or not (userSkillRevocation.ts), and every toggle writer refusestrueon a quarantined skill. - NEVER hand a plugin a user skill outside its session or holding credentials. The Gateway's
user_skill.texttarget (userSkillOverrideOps.ts) requires the token's user as owner, a session whose turns used the skill (sessionSkills.ts) and no quarantine, answers every refusal with the same 404 (no existence oracle), and refuses credential-shaped text with 422skill_contains_credentials. The platform's meta keys (PLATFORM_META_KEYSin overrides.ts) are stripped from a plugin's meta; the proposer's version, conversation and job come from the call token. - ALWAYS read time from
clock.tsand never import the test doubles from production code. clock.ts is the only clock, so tests pin it; noProductionImports.test.ts fails when a production module importswebapp/src/lib/plugins/__testing__/. - A new extension point, SDK call or UI primitive is a platform version bump held equal in five
files by
platformVersion.parity.test.ts(the runner's contract cases included). Follow the checklist in README.DEV.md §6.6.
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 First seen · 130 lines · 172 tokens per session scan A fbafb9a0a6fc
plugin-platform is a skill published in the GitHub repository samugit83/redamon (3,106 stars, last pushed today), licensed MIT. It adds 172 tokens to every session and 2,192 once invoked, about $0.0007 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-10-15.
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.