GitHub Docs

Poolside trains models purpose-built for software engineering rather than general chat. VibeCody talks to its OpenAI-compatible endpoint at https://inference.poolside.ai/v1.

Get an API Key

  1. Go to poolside.ai and request access — Poolside is enterprise-first, so keys are issued per organization rather than self-serve
  2. Once provisioned, create a key from the console
  3. Copy it

There is no free tier.

Configure VibeCody

Option 1: Encrypted store (recommended)

vibecli set-key poolside "..."
vibecli --provider poolside

The key is stored encrypted in ~/.vibecli/profile_settings.db, not in any plaintext file. See Secure settings storage.

Option 2: Environment variable

export POOLSIDE_API_KEY="..."
vibecli --provider poolside

Option 3: Config file (~/.vibecli/config.toml)

[poolside]
enabled = true
model = "poolside/laguna-s-2.1"
api_url = "https://inference.poolside.ai/v1"   # optional, default shown

Prefer option 1 or 2 for the key itself — VibeCody’s storage rules keep credentials out of config.toml.

In VibeCoder, the key field is under Settings → Configuration → Keys, and Poolside appears in the toolbar model dropdown once a key is set.

Model Selection

Model Strengths Best for
poolside/laguna-s-2.1 Balanced coding model Daily tasks (default)
poolside/laguna-xs-2.1 Smaller, faster Quick completions, high-volume calls
poolside/laguna-m-1 Larger, earlier generation Harder reasoning

Default: poolside/laguna-s-2.1

Override from the CLI:

vibecli --provider poolside --model poolside/laguna-xs-2.1

See Poolside’s supported-models list for the authoritative set — the table above is what VibeCody ships as its picker defaults, not a live query.

Model ids are fully qualified. Always poolside/laguna-s-2.1, never the bare laguna-s-2.1 — the API answers a bare name with {"error":"please check the model you provided"}.

Fixed in v0.5.11. The daemon’s /models used to publish these three without the prefix, so a picker that sends the model name verbatim — which they do — handed the API an id it refused. Poolside is the one provider whose own model parameter is namespaced, so /models no longer repeats the provider when a name already carries it: the published id and the API’s id are now the same string. A model named for a different namespace (Groq’s openai/gpt-oss-120b) is unaffected.

Best For

  • Code-specific models — trained for software engineering rather than adapted from a general chat model
  • Enterprise deployments — per-organization key issuance and a configurable api_url for a private proxy

Verify Connection

vibecli --provider poolside -c "Write a Python async web scraper"

Troubleshooting

Poolside API key not set (POOLSIDE_API_KEY)

No key reached the provider. Check vibecli list-keys shows poolside, or that POOLSIDE_API_KEY is exported in the shell that launched VibeCody.

401 / 403

The key is present but rejected — confirm it belongs to an organization with inference access, and that it has not been rotated in the Poolside console.

Model not found

Pass the fully-qualified id (poolside/laguna-s-2.1) rather than the bare model name, and check the supported-models list — Poolside retires generations.

Routing through a proxy

Set api_url to your gateway. VibeCody appends /chat/completions to whatever you give it, so supply the base including any version segment.