A static security analyzer for AI agent configurations. Point it at an OpenAI or Anthropic tool definition file and get a prioritized list of security vulnerabilities before they're exploited.
| Check ID | Vulnerability | Severity |
|---|---|---|
| SHELL-001 | Unrestricted shell execution | CRITICAL |
| PATH-001 | Path traversal via unconstrained file path | HIGH |
| INJECT-001 | Indirect prompt injection via external content | HIGH |
| INJECT-002 | Unconditionally obedient system prompt | HIGH |
| EXFIL-001 | Data exfiltration (inbound + outbound tool combo) | CRITICAL |
| EXFIL-002 | Unconstrained outbound URL/recipient | HIGH |
| VALID-001 | Missing input validation on dangerous tools | HIGH |
| CHAIN-001 | Read + Write + Execute tool chain | CRITICAL |
| CHAIN-002 | Credential access + write/exec | HIGH |
| DEPUTY-001 | Confused deputy (missing identity param) | HIGH |
| SYSPROMPT-001 | Overly broad system prompt | HIGH |
| SYSPROMPT-002 | Role confusion susceptibility | MEDIUM |
| SYSPROMPT-003 | Hardcoded secret in system prompt | CRITICAL |
| SYSPROMPT-004 | Minimal system prompt with no guardrails | MEDIUM |
pip install -e ".[dev]"# Scan an agent config
aass examples/goose_like_agent.json
# With JSON + Markdown output
aass examples/goose_like_agent.json --output-json report.json --output-md report.md
# Fail CI if any HIGH+ finding exists
aass agent_config.json --fail-on HIGH
# Force format detection
aass config.json --format anthropicOpenAI (--format openai):
{
"system_prompt": "...",
"tools": [
{"type": "function", "function": {"name": "...", "description": "...", "parameters": {...}}}
]
}Anthropic (--format anthropic):
{
"system_prompt": "...",
"tools": [
{"name": "...", "description": "...", "input_schema": {...}}
]
}pytest -v