Release · CLI · Providers

VibePod CLI 0.24: bring your own model provider

0.24.0 adds global model providers: register an OpenAI- or Anthropic-compatible endpoint or a local model server once, or import it from a ready-made template, then point an agent at it with vp run <agent> --provider NAME. The release also adds custom volumes and a skills cache cleanup command.

2026-09-25 · Release · CLI · Providers

One registry for every endpoint

Every agent has its own way of configuring a custom endpoint, and switching an agent to OpenRouter or a local Ollama used to mean editing that agent's config by hand. vp provider add asks for the protocol (OpenAI Chat Completions, OpenAI Responses, or Anthropic Messages), the base URL, the authentication and the models, and discovers the model list from the endpoint when it offers one:

vp provider add
vp provider list
vp provider models my-provider
vp provider refresh my-provider

Definitions are global across credential profiles and live under ~/.vibepod/providers/. A key can be referenced from an environment variable, or stored with owner-only permissions after you confirm it. Local servers can use no authentication at all. Discovery shows where it sends requests, verifies TLS, refuses redirects, and asks before sending a key over plain HTTP.

Routing an agent for one launch

--provider routes a single launch through the provider. VibePod writes a private, temporary configuration for the agent and never touches the agent's own saved provider settings:

vp run pi --provider openrouter
vp run pi --profile work --provider local --provider hosted
vp run codex --provider responses-endpoint
vp run claude --provider anthropic-endpoint
vp task create qwen "fix the failing test" --provider local

Seven agents are supported: claude, pi, codex, qwen, tau, jcode and opencode. Pi, Tau, Jcode and OpenCode accept several providers at once and list their models in the agent's own model picker. Claude, Codex and Qwen use one provider and its saved default model. An explicit --model passed to the agent wins over that default. Each agent speaks only some of the protocols. Codex, for example, needs the Responses API. The routing table lists the details.

Share a provider, or start from a template

vp provider export writes a definition without any credential: protocol, URL, authentication mode, models and model settings (context window, output limit, reasoning levels). vp provider import reads one back from a local path or an https:// URL. A team can commit its internal gateway once, and a vendor can publish one file per endpoint.

To skip the wizard entirely, the new VibePod/vibepod-providers repository collects credential-free templates for hosted APIs such as OpenRouter, DeepSeek, Groq and Mistral. Their model lists and settings are synced from models.dev. It also has templates for local servers: Ollama, LM Studio, llama.cpp, vLLM and Lemonade. Import one by its raw URL:

vp provider import https://raw.githubusercontent.com/VibePod/vibepod-providers/main/providers/cloud/openrouter.toml
vp provider import https://raw.githubusercontent.com/VibePod/vibepod-providers/main/providers/local/ollama.toml

Hosted templates reference the vendor's usual API key variable, such as OPENROUTER_API_KEY, so export it before launching. Local templates ship without models; run vp provider refresh NAME once the server is up. Missing templates and fixes are welcome as pull requests.

Mount what the agent needs

Only the workspace and the agent's config directory were mounted before. Now agents.<agent>.volumes adds host paths or Docker named volumes with the familiar docker run -v syntax, for both vp run and vp task:

agents:
  claude:
    volumes:
      - "~/datasets:/datasets:ro"
      - "pip-cache:/root/.cache/pip"

vp run -v/--volume adds mounts for a single session. Missing host paths are rejected instead of being created as root-owned directories, and VibePod's own mount points are protected. A committed project config can mount any path your user can read, so review the volumes of a project you did not write before you run an agent in it.

Upgrading

Nothing to migrate by hand. Agents without --provider behave exactly as before.

python -m pip install --upgrade vibepod

Release details

Related links