Claude Skill MartBrowse skillsWhat is a Skill?
Back to list

LLM Eval Harness

Measure any OpenAI- or Anthropic-compatible endpoint across six dimensions — availability, request fidelity, speed, concurrency, protocol compliance, and quality regression.

Dev & CodingAdvanced1,323212AI score 9/10Last updated: Aug 8, 2026

What it does

Give it a base_url, a model, and an API key held in an environment variable, and it produces measured answers instead of vendor headline numbers.

  • Availability — which model IDs actually route, with 3-state failure classification (no-channel, upstream-error, empty-content) and a deliberately high max_tokens so reasoning models don't read as dead.
  • Request fidelity — does your system prompt, tool schema, and conversation history actually reach the model? A canary code catches the nastiest gateway bug: HTTP 200, fluent replies, and a system prompt that was silently dropped.
  • Speed — TTFT plus sustained decode tok/s, thinking-aware. It captures reasoning_content separately so you don't report a ~750 tok/s model as 4700 tok/s.
  • Concurrency — ramp 10/20/40/60 to find where success rate or p90 latency collapses; ambient proxies and keep-alive pooling are disabled so you measure the model, not the proxy.
  • Protocol compliance — two orthogonal Anthropic checks: does thinking generation fire, and does the endpoint accept a thinking block replayed in history (the failure that kills agentic sessions on turn two)?
  • Quality regression — run your own use-case library, then have three independent blind judges score in isolation; a case passes only on majority agreement, and silence never counts as a pass.

Keys are always passed by env-var name, never by value, so they stay out of ps, shell history, and saved reports. Your use-case library and model rosters live in ~/.llm-eval/, outside the public skill bundle.

Who it's for

  • Backend/platform engineers vetting a new LLM gateway or reseller before adoption
  • Agent developers chasing a "the model ignores my system prompt" bug with no error anywhere
  • Operators who need to know a channel survives real concurrency before a workshop or launch
  • Team leads who must prove with data that switching models won't regress quality

Examples

  1. Onboarding a provider: "test this gateway before we integrate" → availability probe builds the supported-model list, then a 10-sample fidelity probe reports whether system-prompt delivery is delivered, intermittent 6/10, or not-delivered.
  2. Sessions that die mid-conversation: a 400 "invalid part type: thinking" on the second turn → run protocol_probe.py --check history-replay, then cross-check the vendor's own native endpoint before blaming the reseller.
  3. Verifying a tok/s claim: speed_probe.py --mode both reports real-task throughput alongside the sustained decode ceiling, so the write-up separates what was measured from what was inferred.

· · · Install guide · · ·

Install in the Claude app (no terminal)
  1. Download the ZIP with the button below.
  2. In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
  3. Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Download ZIP
Install in Claude Code

Let Claude do it — paste this into Claude Code

Install the skill I found on Claude Skill Mart.
Copy the llm-eval-harness folder from the GitHub repo daymade/claude-code-skills into my ~/.claude/skills/llm-eval-harness/.
When it's done, tell me in one line what this skill can do.

Install with a command instead

git clone https://github.com/daymade/claude-code-skills.git /tmp/claude-code-skills && mkdir -p ~/.claude/skills && cp -r /tmp/claude-code-skills/llm-eval-harness ~/.claude/skills/

This is a third-party skill. Check the source repository before installing.

  1. Open a terminal and clone the repository to a temporary folder:
    git clone https://github.com/daymade/claude-code-skills.git /tmp/claude-code-skills
    
  2. Create your Claude Code skills folder and copy just this skill in:
    mkdir -p ~/.claude/skills
    cp -r /tmp/claude-code-skills/llm-eval-harness ~/.claude/skills/
    
  3. Install uv, which the probe scripts use to run with their dependencies (skip if already installed):
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  4. Create a private data directory — keep use cases and rosters outside the skill bundle:
    mkdir -p ~/.llm-eval
    cp ~/.claude/skills/llm-eval-harness/assets/example_usecases.json ~/.llm-eval/usecases.json
    
  5. Export the API key you want to test as an environment variable; never type the key value on a command line:
    export MY_KEY=sk-...
    
  6. Restart Claude Code and ask something like "benchmark this endpoint's speed and stability" — the skill triggers automatically.
  7. For your first run, lower the sample count (--repeat 3) to gauge token cost and rate limits, then re-run at full sampling for publishable numbers.