Skip to content

skills(vlmbench): add vlmbench-cli-skill for VLM provider benchmarking - #13

Open
spillai wants to merge 2 commits into
mainfrom
claude/vlmbench-cli-skill-f0ccft
Open

spillai wants to merge 2 commits into
mainfrom
claude/vlmbench-cli-skill-f0ccft

Conversation

@spillai

@spillai spillai commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Adds a minimal, uvx-first skill for the vlmbench CLI, framed around the quickest path to benchmarking any OpenAI-compatible VLM provider.

Supersedes #6, which proposed the same skill at the same path. That PR is now closed; see below for what came across.

What's in the skill

  • Quickstart — a zero-setup provider benchmark. The model is auto-detected from GET /v1/models and a sample image is used when no input is given, so a single command with just --base-url and --api-key is a complete run.
  • Comparing providers — same input plus --tag per provider, then vlmbench compare for one table.
  • Benchmarking a local model--serve starts Ollama (macOS) or vLLM Docker (Linux) in tmux with a GPU monitor pane.
  • Model serve-args — the models needing specific vLLM flags, and when to reach for --profile.
  • Flags worth knowing — 13 rows covering model, input, dataset, endpoint, concurrency, task and upload.
  • Output — the metrics reported and the JSON layout that compare reads.

Every command uses uvx; pip install vlmbench is mentioned once as an aside.

Files

File Change
skills/vlmbench-cli-skill/SKILL.md New, 109 lines
.claude-plugin/marketplace.json Registers the skill so /plugin install vlmbench-cli-skill@vlm-run/skills resolves
README.md One row in the skills table, one usage example

Carried over from #6

#6 uniquely had a model → --serve-args table. It is folded into SKILL.md rather than a separate MODELS.md, keeping the skill one self-contained file. Two things in that copy were stale against vlm-run/vlmbench@main and were corrected:

#6 says vlmbench main
Profile storage directories vlmbench/profiles/<name>/ with config.toml + setup.sh flat vlmbench/profiles/<name>.yaml; neither file exists
Profile inventory 4 profiles 10 ship in the package

This PR points at uvx vlmbench profiles for the live list instead of a static table that drifts. #6's make build/serve/benchmark block was dropped: those targets need a clone of the vlmbench repo and do not apply to the uvx workflow the skill documents.

Verification

Every example command and every default in the flags table was extracted from the skill and run through vlmbench's actual build_parser(), with third-party imports stubbed since the sandbox could not reach PyPI. All 12 commands parse and all 14 documented defaults match the source. The profile format and inventory above were checked against a checkout of vlmbench at main.

Two places where the vlmbench README is stale, which the skill works around rather than copying:

Item vlmbench README says vlmbench source says
--serve on by default default=False, must be passed to auto-start a server
--max-tokens 2048 4096

No changes to the vlm-run/vlmbench repo, so nothing there needs a version bump. Those two README inaccuracies, and the stale profile section in its MODELS.md, are worth a separate fix.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UY3EWR8JezM8uBfUHv6Z7V

Add a minimal, uvx-first skill for the vlmbench CLI, framed around the
quickest path to benchmarking any OpenAI-compatible VLM provider:

- Quickstart with zero-setup provider benchmark (model auto-detected
  from GET /v1/models, sample image when no input is given)
- Provider-vs-provider comparison via --tag plus `vlmbench compare`
- Local benchmarking with --serve (Ollama on macOS, vLLM Docker on Linux)
- Flags table and output/metrics reference

Every example command and every default in the flags table was verified
against vlmbench's argument parser.

Register the skill in .claude-plugin/marketplace.json and list it in the
README skills table.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UY3EWR8JezM8uBfUHv6Z7V
PR #6 proposed the same skill and uniquely carried a model -> serve-args
table. Fold a corrected version into SKILL.md so #6 can be closed without
losing content, keeping the skill a single self-contained file.

Two things in #6's copy were stale against vlmbench main and are fixed here:

- Profiles are flat `vlmbench/profiles/<name>.yaml` files, not per-model
  directories holding `config.toml` + `setup.sh`.
- Its profile list named 4 profiles; the package ships 10. Point at
  `uvx vlmbench profiles` instead of a table that drifts.

Also drop #6's `make build/serve/benchmark` block: those targets need a
clone of the vlmbench repo and do not apply to the uvx workflow this
skill documents.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UY3EWR8JezM8uBfUHv6Z7V
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants