commit eeaf2b9d026a67e70e42e44ff7a857e73506be9c
parent 8feba7e027292a94089da7be42d2a6d6f6e6c928
Author: Andrew Laack <andrew@laack.co>
Date: Mon, 2 Mar 2026 22:01:26 +0000
Merge pull request #170 from imbue-ai/andrew/registry-pull
Show --update-models flag in --help menu and inform usage in the skill.
Diffstat:
5 files changed, 32 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
@@ -203,6 +203,23 @@ Then:
vet "Harden error handling" --model gpt-5.2
```
+### Model registry
+
+Vet maintains a remote model registry with community-contributed model definitions. To fetch the latest definitions without upgrading vet:
+
+```bash
+vet --update-models
+```
+
+This downloads model definitions from the [registry](https://github.com/imbue-ai/vet/blob/main/registry/models.json) and caches them locally at `~/.cache/vet/remote_models.json`. Once cached, registry models appear in `vet --list-models` and can be used with `--model` like any other model.
+
+Model resolution priority (highest to lowest):
+1. User config (`.vet/models.json` or `~/.config/vet/models.json`)
+2. Builtin models (Anthropic, OpenAI, Gemini)
+3. Registry models (cached via `--update-models`)
+
+See [`registry/CONTRIBUTING.md`](https://github.com/imbue-ai/vet/blob/main/registry/CONTRIBUTING.md) for information about contributing model definitions to the registry.
+
### Configuration profiles (TOML)
Vet supports named profiles so teams can standardize CI usage without long CLI invocations.
diff --git a/registry/CONTRIBUTING.md b/registry/CONTRIBUTING.md
@@ -2,11 +2,11 @@
Models added to `registry/models.json` should meet the following bar:
-1. **Forwards compatibility.** This registry exists primarily so older versions of vet get access to new models. When built-in models are added, they should be added here if endpoint compatibility allows it.
+1. **Produces useful output.** The models should be able to complete a vet run and produce at least some actionable findings. It does not need to catch everything, but it shouldn't consistently mis-identify issues.
-2. **Produces useful output.** The models should be able to complete a vet run and produce at least some actionable findings. It does not need to catch everything, but it should not consistently mis-identify issues.
+2. **Runs reliably.** The API endpoint must be stable with no consistent failures, timeouts, or malformed responses during normal usage.
-3. **Runs reliably.** The API endpoint must be stable with no consistent failures, timeouts, or malformed responses during normal usage.
+Additionally, models added as built-ins to vet that are compatible with the registry (OpenAI-compatible endpoints), should be added to the registry to ensure older versions of vet can make use of newer models.
## Limitations
diff --git a/skills/vet/SKILL.md b/skills/vet/SKILL.md
@@ -91,6 +91,7 @@ Vet analyzes the full git diff from the base commit. This may include changes fr
- `--model MODEL`: LLM to use (default: claude-opus-4-6)
- `--list-models`: list all models that are supported by vet
- Run `vet --help` and look at the vet repo's readme for details about defining custom OpenAI-compatible models.
+- `--update-models`: fetch the latest community model definitions from the remote registry and cache them locally. See "Updating the Model Registry" below for when to run this.
- `--confidence-threshold N`: Minimum confidence 0.0-1.0 (default: 0.8)
- `--output-format FORMAT`: Output as `text`, `json`, or `github`
- `--quiet`: Suppress status messages and 'No issues found.'
@@ -105,6 +106,15 @@ The vet CLI, skill files, and export scripts can become outdated as agent harnes
If this happens, try updating them. Run `which vet` to determine how vet was installed and update accordingly. For the skill files, check which skill directories exist on disk and update them with the latest versions from https://github.com/imbue-ai/vet/tree/main/skills/vet.
+### Updating the Model Registry
+
+Run `vet --update-models` to fetch the latest community model definitions from the remote registry without upgrading vet itself. This caches model definitions locally so they appear in `--list-models` and can be used with `--model`.
+
+You should run `vet --update-models` when:
+- Vet reports an unknown or unrecognized model error.
+- `vet --list-models` does not show a model you or the user expects to be available.
+- The user explicitly asks you to update the model registry.
+
## Additional Information
Additional information can be found in the vet repo:
diff --git a/uv.lock b/uv.lock
@@ -1494,7 +1494,7 @@ wheels = [
[[package]]
name = "verify-everything"
-version = "0.2.2"
+version = "0.2.3"
source = { editable = "." }
dependencies = [
{ name = "anthropic" },
diff --git a/vet/cli/main.py b/vet/cli/main.py
@@ -159,7 +159,7 @@ def create_parser() -> argparse.ArgumentParser:
model_group.add_argument(
"--update-models",
action="store_true",
- help=argparse.SUPPRESS,
+ help="Fetch the latest model definitions from the remote registry and cache them locally.",
)
model_group.add_argument(
"--temperature",