--- title: "Poolside" description: "Run Laguna coding models through Poolside's direct API or OpenRouter" --- [Poolside](https://poolside.ai/) trains the Laguna family of agentic coding models. Fabro includes Poolside's OpenAI-compatible API as a built-in provider, with Laguna S 2.1 and Laguna XS 2.1 available through both Poolside directly and the opt-in [OpenRouter integration](/integrations/openrouter). ## Prerequisites - A Poolside developer API key from [platform.poolside.ai](https://platform.poolside.ai/) - A running Fabro server Poolside Platform currently offers free developer access for a limited time. The built-in catalog records Poolside's published paid endpoint prices so Fabro can produce durable estimated cost telemetry when the preview ends or an account uses paid access. ## Configure direct access The direct `poolside` provider is enabled in the built-in catalog. Store its key in the target Fabro server vault: ```bash fabro provider login --provider poolside # For a non-default remote server: fabro provider login --server https://your-fabro.example --provider poolside # Or set the vault token directly: fabro secret set POOLSIDE_API_KEY fabro secret --server https://your-fabro.example set POOLSIDE_API_KEY ``` Standalone SDK usage outside a Fabro server can use an env-backed credential source explicitly: ```bash export POOLSIDE_API_KEY= ``` The provider sends OpenAI-compatible Chat Completions requests to `https://inference.poolside.ai/v1` using bearer authentication. ## Included models | Fabro model ID | Poolside API model ID | Context | Max output | Role | |---|---|---:|---:|---| | `laguna-s-2.1` | `poolside/laguna-s-2.1` | 1,048,576 | 131,072 | Provider default; aliases `laguna`, `laguna-s` | | `laguna-xs-2.1` | `poolside/laguna-xs-2.1` | 262,144 | 32,768 | Small default and connectivity probe; alias `laguna-xs` | Both models support text input, tool calling, native reasoning, streaming, and automatic prompt-cache usage reporting. They do not support image input. ## Use direct Poolside models ```bash fabro model list --provider poolside fabro model test --model laguna-xs-2.1 --deep fabro run workflow.fabro --model laguna-s-2.1 ``` In workflow stylesheets: ```dot title="workflow.fabro" digraph Example { graph [ model_stylesheet=" * { model: laguna-s-2.1; } .quick { model: laguna-xs-2.1; } " ] start [shape=Mdiamond, label="Start"] work [label="Implement", prompt="Implement and verify the requested change."] exit [shape=Msquare, label="Exit"] start -> work -> exit } ``` ## Reasoning behavior Laguna S 2.1 and XS 2.1 support two thinking modes: off and max. Max thinking is enabled by default. These releases do not expose low, medium, or high reasoning-effort levels, so Fabro intentionally does not advertise typed `reasoning_effort` controls for them. Fabro preserves Poolside's `reasoning_content` between assistant and tool messages. This is important for interleaved thinking across multi-step tool calls. For direct API or SDK requests, disable thinking through `provider_options.poolside`: ```json { "model": "laguna-s-2.1", "provider_options": { "poolside": { "chat_template_kwargs": { "enable_thinking": false } } } } ``` ## Use Laguna through OpenRouter Enable OpenRouter and configure its separate API key as described in the [OpenRouter integration](/integrations/openrouter): ```toml title="settings.toml" [llm.providers.openrouter] enabled = true ``` The OpenRouter routes use vendor-namespaced model IDs so they can coexist with direct Poolside routes: ```bash fabro model test --model poolside/laguna-xs-2.1 --deep fabro run workflow.fabro --model poolside/laguna-s-2.1 ``` OpenRouter returns authoritative in-band cost telemetry. Its current paid rates per million input, output, and cache-read tokens are: | Model | Input | Output | Cache read | |---|---:|---:|---:| | `poolside/laguna-s-2.1` | $0.10 | $0.20 | $0.01 | | `poolside/laguna-xs-2.1` | $0.06 | $0.12 | $0.03 | The XS rate reflects OpenRouter's current promotional discount and can change. Fabro prefers OpenRouter's authoritative `usage.cost` over catalog estimates. Fabro does not include promotional `:free` OpenRouter variants in the built-in catalog because their availability and limits can change. Add one as a custom model if you explicitly want that route. ## Troubleshooting **"No API key configured"** — Store `POOLSIDE_API_KEY` on the target server with `fabro provider login --provider poolside`. The server runtime resolves the key from its vault, not from process env. **Unknown model** — Direct Poolside routes use `laguna-s-2.1` and `laguna-xs-2.1`. OpenRouter routes include the `poolside/` prefix. **Reasoning effort rejected** — Laguna's hosted endpoints support thinking off or max, not low/medium/high effort. Omit `reasoning_effort`; use the provider option above only when you need to disable thinking. ## Further reading Official API endpoints, authentication, model listing, and tool-use examples. Current model capabilities, weights, context windows, and release information.