llm-verify
Verify an LLM API endpoint — model authenticity, billing inflation, relay provenance, performance and silent downgrades. Use when the user asks whether the model they are paying fo…
asale ai
@asale-ai
Install
$ openclaw skills install @asale-ai/llm-verifyllm-verify
llm-verify is a single-binary CLI that runs a black-box check against any LLM
API endpoint and answers what the user actually wants to know: am I getting the
model I am paying for, am I being overcharged, and how many relays sit on this
path?
When to use this
Reach for this skill when the user asks anything like:
- "Is this relay/proxy trustworthy?" "Is this key really Claude?"
- "Has the model been downgraded?" "It feels dumber than it used to."
- "Is the billing right?" "The token counts look off."
- "Check this API endpoint for me."
- Debugging an endpoint that is slow, drops its stream, or breaks tool calls.
How to run it
llm-verify --base-url <URL> --api-key <KEY> --model <MODEL_ID>
| Flag | Meaning |
|---|---|
--protocol anthropic|openai | Inferred from the URL and model name if omitted |
--depth fast|balanced|forensic | Default balanced; forensic samples more — slower and costlier, but firmer |
--claimed-model <ID> | Use when the vendor's advertised name differs from the ID you request |
--lang en|zh | Report language; follows the system locale by default |
-o report.html | HTML report path |
--json report.json | Also emit machine-readable JSON |
--no-open | Do not open a browser |
Credentials can also come from .env or the environment:
LLM_VERIFY_BASE_URL, LLM_VERIFY_API_KEY, LLM_VERIFY_MODEL.
Exit codes
| Code | Meaning |
|---|---|
| 0 | Clean |
| 1 | Failing score, or a suspicious / counterfeit / inconclusive verdict |
| 2 | A hard gate tripped (silent fallback, shared-pool forwarding, tier downgrade, wrapper injection, cache replay, hidden prompt, response replay) |
Suitable as a CI gate as-is.
Reading the result
The tool reports two independent axes. Do not conflate them.
- Authenticity: genuine / genuine-with-defects / relayed / suspicious / counterfeit / inconclusive
- Origin: direct from vendor / cloud platform / subscription-derived / relay / reconstructed channel / undetermined
A real model behind a relay is "relayed", not "counterfeit". That is a longer path, not a substituted model.
Reporting back to the user
- Lead with the conclusion, then the evidence. They want to know whether they can rely on it, not all 40 probe lines.
- Call out hard gates separately. They are facts no weighted score excuses.
- Not tested is not passed. Say plainly which probes were skipped.
- Carry the confidence across, especially for identity: adjacent versions inside one tier are genuinely hard to separate, and the tool abstains when the evidence is thin. Do not supply a verdict it declined to give.
- Do not convict on the tool's behalf. One tier apart is within sampling noise; the tool does not accuse there, and neither should you.
Limits to state honestly
- Resolution stops at tier granularity (flagship / mid / light). Adjacent versions inside a tier cannot be separated without distribution baselines.
- The tier call depends on sampling; use
--depth forensicwhen it matters. - An injected system prompt contaminates identity fingerprints, which is why the contract layer runs first and downgrades identity confidence when it finds injection.
- It cannot prove the server-side weights are the official ones — only that behaviour does or does not match expectations.
- Quantised builds (int4 / fp8) can only be given a probability, never a verdict.
Top skills in this category
Skill Vetter
@spclaudehomeSecurity-first skill vetting for AI agents. Use before installing any skill from ClawdHub, GitHub, or other sources. Checks for red flags, permission scope, and suspicious patterns.
Multi Search Engine
@gpyangyoujunMulti search engine integration with 16 engines (7 CN + 9 Global). Supports advanced search operators, time filters, site search, privacy engines, and Wolfra...
API Gateway
@byungkyuCall third-party APIs through the Maton gateway, which injects the credential for an app the user has already connected. Use this skill when the user names a connected app and a concrete action in it - read a mailbox, query a CRM, file an issue, update a spreadsheet, run a query through a connected
MoltGuard - Security & Antivirus & Guardrails
@thomaslwangMoltGuard — OpenClaw security guard by OpenGuardrails. Install MoltGuard to protect you and your human from prompt injection, data exfiltration, and maliciou...
1password
@steipeteSet up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.