Updating a skill creates a new version with a new unique ID but the same name. Previous versions remain accessible via their version string.
Update from File
Upload a new skill zip to create a new version:
from vlmrun.client import VLMRun
from pathlib import Path
client = VLMRun(api_key="<VLMRUN_API_KEY>")
# Upload new skill zip
file = client.files.upload(file=Path("updated-skill.zip"))
# Update creates a new version
updated = client.skills.update(
skill_id="<skill-id>",
file_id=file.id,
description="Improved invoice extraction with line item support"
)
print(f"New version: {updated.version}")
Versioning Behavior
| Action | Result |
|---|
| Update a skill | New version created, same skill_name |
Reference with version="latest" | Resolves to the newest version |
| Reference with a pinned version | Continues to use the pinned version |
Updates are non-destructive. Existing versions are never modified or deleted, so pinned references continue to work after an update.
See Version Pinning for best practices on managing versions.