Poolside: Laguna XS 2.1
Laguna XS 2.1 is the latest coding agent model in the 33B-A3B category from [Poolside](https://poolside.ai/) and a step forward from their Laguna XS.2 model (released in April 2026). It combines...
Anyone in the Space can @-mention Poolside: Laguna XS 2.1 with the team's shared context - pooled credits, one chat, one memory.
Starter is free forever - 1 Space, 100 credits/month, 1 MCP. No card.
Verdict
Best for
- Real-time code autocomplete in editors
- Cost-sensitive batch code analysis
- Large codebase context retrieval
- Inline documentation generation
- Quick syntax fixes and formatting
Strengths
The 262K context window handles entire modules or multi-file diffs without truncation, making it practical for codebase-wide search and localized edits. At $0.06 input, you can feed thousands of lines without cost anxiety. The XS designation suggests inference speed optimized for interactive use — expect sub-second completions for typical autocomplete scenarios. Pricing is roughly 15x cheaper than GPT-4o and 8x cheaper than Claude Sonnet 4, making it viable for high-volume developer tooling.
Trade-offs
Without public benchmarks, performance on HumanEval, MBPP, or SWE-bench remains unverified — you're trusting Poolside's internal evals. The model likely struggles with architectural reasoning, test generation from specs, or explaining legacy code compared to Claude Sonnet 4.5 or o1. The XS size means less world knowledge for framework-specific edge cases or newer library APIs. If your task needs deep reasoning over code semantics rather than pattern completion, you'll hit the ceiling quickly.
Specifications
- Provider
- poolside
- Category
- llm
- Context length
- 262,144 tokens
- Max output
- 32,768 tokens
- Modalities
- text
- License
- proprietary
- Released
- 2026-07-02
Pricing
- Input
- $0.06/Mtok
- Output
- $0.12/Mtok
- Model ID
poolside/laguna-xs-2.1
Per-token prices show what the model costs upstream. On Switchy your team draws from one shared org credit pool - one plan, one balance for everyone.
Team cost calculator
5 seats · 80 msgs/day
Switchy meters this against your org's shared credit pool - one plan, one balance for everyone.
Providers
| Provider | Context | Input | Output | P50 latency | Throughput | 30d uptime |
|---|---|---|---|---|---|---|
| poolside | 262k | $0.06/Mtok | $0.12/Mtok | — | — | — |
Performance
Benchmarks
Works well with
Top MCPs
Compatibility data comes from first-party telemetry; once we have enough co-usage signal, top MCPs for this model will appear here.
How Switchy teams use it
Starter prompts
Autocomplete Function Body
Complete the following function implementation. The function signature and docstring are provided. Return only the function body:
```python
def calculate_percentile(data: list[float], percentile: int) -> float:
"""Calculate the nth percentile of a dataset."""
```Open in a Space →Generate Inline Docstring
Write a concise docstring for this function. Include parameter descriptions and return value:
```typescript
function debounce(func: Function, delay: number) {
let timeoutId: NodeJS.Timeout;
return function(...args: any[]) {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => func.apply(this, args), delay);
};
}
```Open in a Space →Explain Code Snippet
Explain what this code does in 2-3 sentences. Focus on the algorithm and edge cases:
```python
def longest_common_subsequence(s1: str, s2: str) -> int:
m, n = len(s1), len(s2)
dp = [[0] * (n + 1) for _ in range(m + 1)]
for i in range(1, m + 1):
for j in range(1, n + 1):
if s1[i-1] == s2[j-1]:
dp[i][j] = dp[i-1][j-1] + 1
else:
dp[i][j] = max(dp[i-1][j], dp[i][j-1])
return dp[m][n]
```Open in a Space →Refactor for Readability
Refactor this function for readability. Improve variable names, add type hints, and simplify logic where possible:
```javascript
function p(a, b) {
let r = [];
for (let i = 0; i < a.length; i++) {
if (a[i] > b) r.push(a[i]);
}
return r;
}
```Open in a Space →Find Potential Bugs
Review this code for potential bugs. List any issues with null handling, edge cases, or logic errors:
```python
def get_user_by_id(user_id: int, users: list[dict]) -> dict:
for user in users:
if user['id'] == user_id:
return user
return None
```Open in a Space →