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 agentmods add skills/librefang/librefang-registry/apitesternpx skills add librefang/librefang-registry --skill apitestergit clone --depth 1 https://github.com/librefang/librefang-registryWrote 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/librefang/librefang-registry/apitester)<a href="https://agentmods.dev/skills/librefang/librefang-registry/apitester"><img src="https://agentmods.dev/badge/skills/librefang/librefang-registry/apitester.svg" alt="Measured on agentmods" 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 | $0.00027 | $0.10272 |
| Opus 5 | $0.00014 | $0.05136 |
| Sonnet 5 | $0.00005 | $0.02054 |
| Haiku 4.5 | $0.00003 | $0.01027 |
Grade D, and why
apitester-hand-skill scanned grade D with 3 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 4d 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.
Sends data to an external URLmediumData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
| Partial body | Pipe truncated JSON via `echo '{"name":' \| curl -d @-` | 400 Bad Request, not 500 | Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
curl -s -H "Authorization: Bearer $TOKEN" "$1" | python3 -c " Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
### curl Quick Reference This is a copy
100% identical to apitester-hand-skill — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 950 lines — stays where its author put it; the contents beside it link to each section on GitHub.
API Testing Expert Knowledge
HTTP Reference
Status Code Categories
| Range | Category | Common Codes |
|---|---|---|
| 2xx | Success | 200 OK, 201 Created, 204 No Content |
| 3xx | Redirection | 301 Moved, 304 Not Modified |
| 4xx | Client Error | 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 422 Unprocessable, 429 Too Many Requests |
| 5xx | Server Error | 500 Internal, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout |
curl Quick Reference
GET with headers:
curl -s -H "Authorization: Bearer TOKEN" \
-H "Accept: application/json" \
"https://api.example.com/endpoint"
POST with JSON body:
curl -s -X POST \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"key": "value"}' \
"https://api.example.com/endpoint"
Timing information:
curl -s -o /dev/null -w "status:%{http_code} time:%{time_total}s size:%{size_download}b" \
"https://api.example.com/endpoint"
Verbose with headers:
curl -v -H "Authorization: Bearer TOKEN" \
"https://api.example.com/endpoint" 2>&1
Testing Patterns
Functional Testing Checklist
For each endpoint, test:
- Happy path: Valid request with all required parameters
- Missing required fields: Omit each required field one at a time
- Invalid data types: String where number expected, etc.
- Boundary values: Min/max for numbers, empty strings, very long strings
- Special characters: Unicode, HTML entities, SQL keywords
- Null values: Explicit null vs missing field
- Authentication: Valid, invalid, missing, expired tokens
- Authorization: Access own resources, access others' resources
- Pagination: First page, last page, beyond last page, invalid page
- Filtering/Sorting: Valid filters, invalid filters, combined filters
Test Data Patterns
# Safe test strings for injection testing
SQL injection: "'; DROP TABLE users; --"
XSS: "<script>alert('xss')</script>"
Command injection: "; cat /etc/passwd"
Path traversal: "../../etc/passwd"
Long string: "A" * 10000
Unicode: "\u0000\u0001\u0002"
Email format: "[email protected]" (use example.com domain)
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 4d ago First seen · 950 lines · 27 tokens per session scan D fb0ffca4c9ff
apitester-hand-skill is a skill published in the GitHub repository librefang/librefang-registry (11 stars, last pushed 10d ago), licensed MIT. It adds 27 tokens to every session and 10,272 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it D with 3 findings (sends data to an external url, downloads and executes remote code, makes network calls). It is 100% identical to apitester-hand-skill, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
edgeone skill scanner
Scan any agent skill for security risks before you install or use it. Powered by Tencent Zhuque Lab A.I.G (AI-Infra-Guard). 100% local static analysis — no file contents or credentials leave your device. Compatible with CodeBuddy, Cursor, Windsurf, Claude Code, OpenClaw and more. Triggers on: 这个 skill 安全吗, skill 安全扫描…
baby-sit
Monitor a GitHub pull request until CI is green, diagnose failures, and rerun only evidence-backed flaky GitHub Actions jobs.
nano-banana-pro-openrouter
Deterministic OpenRouter image generation adapter for Nano Banana Pro / Gemini image models. Use as skillexec when a meta-skill needs local image files and structured IMAGEREADY records without spawning an LLM agent.
skill-creator-linter
Internal tool (not user-invocable). Called by meta-skill-creator as a DAG step (kind: agent) to lint a candidate meta-skill SKILL.md against G1 (parse + reference check + xmlescape grep + structural lint) and G2 (scheduler dry-run with stub executors). Deterministic, sub-second, no LLM. Returns JSON diagnostics.
paper-abstract-author
Write the abstract after the paper body has been revised, using the final claims and evidence.
langbot-deploy
Deploy and configure a LangBot instance — Docker / Docker Compose, Kubernetes, the config.yaml model, the Box sandbox runtime, the plugin runtime, and the global API key. Use when installing, deploying, upgrading, or configuring LangBot in production or self-hosted environments. Triggers on "deploy langbot", "langbot…