
One Workbench, Many Backends: Why the Tool Surface Should Outlive the Model
Swapping the model is the cheap part We made the case last week that a model you depend on can vanish on a timeline you …

Calliope CLI is the multi-model agent terminal in the Calliope Workbench. It runs commands, edits files, calls tools, and talks to whichever model you point it at. Version 2.5.0 is the largest hardening release it has had. We reviewed the whole codebase , fixed what the review surfaced, upgraded the supply chain, and repaired the release pipeline so the fixes can actually reach the people running it. That last one matters more than it sounds, and it comes up at the end.
Install or update:
npm install -g @calliopelabs/cli
Here is everything in the release.
The CLI used to ship a hardcoded list of model identifiers. That list went stale the way hardcoded lists always do. One model had already been retired by its provider and was returning errors, and others were days from the same fate. Asserting which models exist is a losing game when the providers change them on their own schedule.
refusal stop reason cleanly instead of treating a declined request as an empty success.The review’s whole point was the security surface, and it found real issues. The full writeup is in the companion post ; here is the changelog.
~/.ssh, ~/.aws, and .env files) when a sandbox is active. auto mode is honestly best-effort; a new native mode fails closed for callers who require enforcement./tmp escape hatch, added real-path resolution to defeat symlink escapes, and protected the CLI’s own state directory so a tool can’t plant a hook or tamper with trust.@anthropic-ai/sdk 0.39 → 0.104, plus refreshed model and tooling dependencies.The most consequential fix isn’t in the agent at all. Three consecutive releases had failed to publish to npm, silently, because the failure was buried in a build step nobody watched. The practical effect was that every user had been stuck several versions back, unable to receive any fix even after it was written.
We traced it to a dependency reference that couldn’t resolve in CI, fixed it, and confirmed 2.5.0 actually landed on the registry. A patch nobody can install is a report, not a remediation. This is the one we fixed first.
npm install -g @calliopelabs/cli
# then
calliope --help
2.5.0 is live on npm now. If you have been running an older build, this is the update that finally reaches you, with live model discovery, the security pass, and a clean dependency tree underneath it.

Swapping the model is the cheap part We made the case last week that a model you depend on can vanish on a timeline you …

The agent reads the manual, and the manual can lie When an agent connects to a tool, it does not get a function …