# VibePod CLI 0.24: bring your own model provider

> Source: <https://vibepod.dev/news/vibepod-cli-0-24/>
> Published: 2026-09-25 22:50:26+00:00

## 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](../../docs/providers/#temporary-launch-routing) 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](https://github.com/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](https://models.dev). It
      also has templates for local servers: Ollama, LM Studio, llama.cpp, vLLM and
      Lemonade. Import one by its raw URL:

``` python
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

- New `vp provider` command group:`add` ,`list` ,`edit` ,`models` ,`refresh` ,`export` ,`import` ,`remove` . It covers OpenAI Chat Completions, OpenAI Responses and Anthropic Messages, with model discovery and per-model settings.
- `vp run --provider` for`claude` ,`pi` ,`codex` ,`qwen` ,`tau` ,`jcode` and`opencode` , with a temporary per-launch configuration.`vp task create --provider` works for all of them except Pi and OpenCode, which have no headless mode in VibePod.
- `vp list` shows the providers injected into running agents.
- Provider templates in [VibePod/vibepod-providers](https://github.com/VibePod/vibepod-providers) , importable by URL.
- Model discovery and provider file fetches send a VibePod User-Agent, so endpoints behind Cloudflare, such as Groq, no longer answer with 403.
- Custom mounts through `agents.<agent>.volumes` and`vp run -v/--volume` .
- New `vp skills cache clear` removes cached git clones and npm packages. Installed skills keep working.
- A "Built with VibePod" [shields.io badge](../../docs/badge/) for your README.
