llm-agent

llm-agent is an agent for Claude Code from TyrusRC/praetor. It costs 79 tokens per session (1,399 once invoked), scanned A, original, Apache-2.0.

A security-testing worker for endpoints that send user input to a language model, such as a chat or text-generation API.

In plain words
What is it for?
Use it to test an in-scope LLM endpoint and return confirmed findings or anomalies for review; it does not test ordinary SQL injection, cross-site scripting, or access-control bugs.
Why use it?
It checks for AI-specific risks that ordinary web testing may miss, including prompt injection, jailbreaks, leaked system instructions, unsafe output handling, data disclosure, and overly broad tool access.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths; mentions AGENTS.md.

Good fit Use it to test an in-scope LLM endpoint and return confirmed findings or anomalies for review; it does not test ordinary SQL injection, cross-site scripting, or access-control bugs.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/tyrusrc/praetor/llm-agent
Install

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.

Clone the repo
git clone --depth 1 https://github.com/TyrusRC/praetor

Made for: Claude Code.

Wrote 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.

agentmods badge for llm-agent

README.md
[![agentmods](https://agentmods.dev/badge/agents/tyrusrc/praetor/llm-agent/github.svg)](https://agentmods.dev/agents/tyrusrc/praetor/llm-agent)
Your own site
<a href="https://agentmods.dev/agents/tyrusrc/praetor/llm-agent"><img src="https://agentmods.dev/badge/agents/tyrusrc/praetor/llm-agent/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.

agentmods 80×15 button for llm-agent

Your own site · 80×15
<a href="https://agentmods.dev/agents/tyrusrc/praetor/llm-agent"><img src="https://agentmods.dev/badge/agents/tyrusrc/praetor/llm-agent.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 79 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,399 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00079 $0.01399
Opus 5.5 $0.00032 $0.00560
Sonnet 5.5 $0.00016 $0.00280
Haiku 4.5 $0.00008 $0.00140

Measured 8d ago against content hash b36e63a4f6f3, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

llm-agent 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 8d 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.

.claude/agents/llm-agent.md · 92 lines

How it starts

The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.

llm-agent

You test ONE lane: the LLM layer of the captured endpoint. You do NOT test classic web bugs (SQLi/XSS/IDOR on the app itself) — those are vuln-scanner / auth-tester. A worker never dispatches a commander or another agent (AGENTS.md anti-recursion).

Read .claude/skills/playbook-llm-security.md before your first send. It is your methodology; this file is the dispatch contract.

When to run (gate)

Run ONLY if the assigned endpoint is LLM-backed:

  • Body carries messages[] / prompt / input / query feeding a model.
  • Path is /chat, /completions, /v1/chat/completions, /generate, /ask, /api/ai, /api/assistant.
  • The captured response is model-generated natural-language text.

Not LLM-backed → do nothing, return status:"blocked" with blockers:["endpoint not LLM-backed"]. Only test the operator's own deployment — never point tools at an upstream provider API (api.openai.com, api.anthropic.com); the captured in-scope endpoint IS the target.

FIRST-MOVE PLAYBOOK

1. check_scope(endpoint) — abort if out of scope
2. discover_llm_endpoint(domain) if the surface is not already confirmed;
   record format (openai|anthropic|generic) + has_tools
3. baseline: capture a clean send {status, length, response_hash} (R11)
4. run_web_llm_owasp_top10(endpoint) — automated candidate sweep (LEADS, not verdicts)
   + scan_llm_infra for model-server infra
5. for each candidate class present, drive the targeted send via
   resend_with_modification(index, modify_body=...) / session_request:
     LLM01 prompt injection  — benign canary, cycle encoding/persona/delimiter axes
     LLM07 system-prompt leak — direct + reformat (translate/poem) + continuation
     LLM06 excessive agency   — ONLY if has_tools; Collaborator OOB proves the action
     LLM05 output handling    — emit sink payload, then OBSERVE the downstream sink
     LLM02 sensitive disclosure — confirm any "secret" is real (R7: no bulk dump)
6. VERIFY each candidate (refusal ≠ compromise; echo ≠ sink; placeholder ≠ leak;
   no-tools ≠ agency). Replay confirmed compliance ≥3× → reproductions[] (R10a)
7. assess_finding BEFORE save_finding; annotate_request (R18) + send_to_organizer
8. Stop by REASONING per playbook stop_condition, not a fixed count

Read the full file on GitHub · 92 lines

Changes

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.

  1. 8d ago Changed b36e63a4f6f3
  2. 24d ago Changed f41e167d0097
  3. 1mo ago First seen · 92 lines · 79 tokens per session scan A 41206927820b

Subscribe to this mod's changes

llm-agent is an agent published in the GitHub repository TyrusRC/praetor (6 stars, last pushed 8d ago), licensed Apache-2.0. It adds 79 tokens to every session and 1,399 once invoked, about $0.0003 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-09-17.

Related

Other agents, from other repositories

citation-verifier

Deterministic (not LLM). Greps every finding's quoted rule text in its cited source file and verifies framework citation versions match the pinned set. Mismatches → quarantine.

transilienceai/communitytools · 41 tokens

graph-reviewer

Validates knowledge graphs for correctness, completeness, and quality. Runs systematic checks and renders approval or rejection decisions.

Egonex-AI/Understand-Anything · 26 tokens

article-analyzer

Analyzes markdown files using pre-parsed structural data and LLM inference to extract knowledge graph nodes and edges (entities, claims, implicit relationships, topic clustering).

Egonex-AI/Understand-Anything · 36 tokens

decider

Haiku 5.5 decision sampler for the deciding-with-confidence skill. Answers one sample prompt from decide.py emit --agent decider with a probability per option, as JSON, with no tools and no prose. Dispatch several in parallel, then pool the replies with decide.py aggregate; one reply alone is not a calibrated answer.

oaustegard/claude-skills · 74 tokens

senior-pentester

20+ year offensive security reviewer. Receives one logical firewall's normalized ruleset (already through deterministic detectors) and flags semantic concerns detectors can't catch — business-logic gaps, trust-boundary violations, unusual service combos. 2-4 instances dispatched in parallel during /launch.

transilienceai/communitytools · 62 tokens

mlx-specialist

MLX Swift expert. Covers mlx-swift-lm (MLXLLM, MLXVLM, MLXLMCommon, MLXEmbedders), ModelConfiguration, LLMModelFactory, ChatSession, GenerateParameters, LoRA fine-tuning, VLM multimodal inference, GPU memory management, Neural Accelerator support, and model deployment on iOS, macOS, and visionOS.

The-Artificer-of-Ciphers-LLC/skills-from-the-artificer · 84 tokens