What's New in v0.46: Gateways, Local Models, and a Rebuilt Harness Page | Blog | Lanes
v0.46 is about where your agents get their tokens from. You can now point any session at a model provider that is not the CLI's own: a model running on your laptop, a box on your network, or a provider you buy by the token. Ollama is managed end to end, from install to a context window sized for your machine.
Underneath that, the settings area was rebuilt. There is a new Agentic Coding group holding everything about how sessions run, including a Harness page that finally tells you whether the CLI Lanes is about to launch is installed, current, and where it came from.
Bring your own model provider
Settings, then Agentic Coding , then Gateway . A provider profile points a session at a provider of your choosing, and covers three shapes:
Local , an Ollama or LM Studio running on your own machine, with no marginal cost.
Your own hardware , a vLLM box on your network.
A provider you buy , OpenRouter, z.ai GLM, or anything else serving the same wire format.
Start from a preset for Ollama, LM Studio, vLLM, OpenRouter, or z.ai GLM and the base URL and auth mode are filled in for you, or add a blank profile and type your own. Adding a profile selects it, so there is nothing else to switch on.
Lanes is not in the request path. A profile is applied as real process environment when the session starts, so the request goes straight from the CLI to your provider. Nothing routes through us, and the credential never reaches terminal scrollback, the command line, or ps. A profile with no base URL does nothing at all, so the half-filled one you are still typing into cannot affect a running session.
Hit Test connection once you have a base URL. It sends a single one-token request and reports back. An "unknown model" result counts as success: the probe uses a placeholder model name on purpose, so the provider authenticated the request before rejecting the name, which is exactly what is being checked.
One thing to get right: name the model. The profile has no model field, because Lanes already has one in the session picker's Model row. Default is not a safe pick, since the harness would send its own model id and your provider will not serve it. Switching providers per session happens in the new Gateway row, right next to it.
The Gateway docs cover the rest, including bearer versus API key, what you give up by routing a harness away from its own provider, and how to reach a backend that only speaks a different wire format.
Local models, starting with Ollama
Settings, then Agentic Coding , then Local LLMs . Runs models on this machine. Nothing leaves it.
Lanes drives Ollama for you: Install , Start server , Stop server , and Uninstall , each using the right lever for how it was installed, whether that is the Homebrew formula or the desktop app. The status card tells you the version and whether it is actually serving.
Your installed models, honestly. Size on disk, parameter count, quantization, capabilities, and trained context length. The list works even with the daemon stopped, because Lanes falls back to reading the model manifests on disk rather than showing you an empty page.
Recommendations sized for this machine. A short curated list with a checked download size and a minimum memory figure, compared against the RAM you actually have. A Fit column tells you whether a model fits, fits tightly, or cannot work here at all, before you spend the download.
The whole library, searchable. Browse everything on ollama.com from inside the page, or pull any reference by name.
The interesting part is context. A real session sends roughly 38,000 tokens before you type anything : the harness instructions, its built-in tool definitions, and the tool definitions of every MCP server you have connected. Ollama picks its context size from available memory, and when a prompt overflows it truncates instead of failing, keeping the head and the tail. The model then answers with tool-definition JSON and nothing reports the loss.
So Lanes bakes it in. On pull, it creates a -lanes variant of the model with a context window sized from your memory and that model's own key/value geometry. The variant shares its data with the base model, so it costs nothing extra on disk, and ollama rm undoes it. If you would rather choose, the Context window field overrides the estimate.
It wires itself into the rest: the daemon is registered as a Gateway provider automatically once you have a model to serve, and the session picker's Model row lists the tags your daemon actually has, rather than model ids it does not. Full detail in the Local LLMs docs.
A settings home for agentic coding
Everything about how a session runs now lives in one group. Agentic Coding holds Terminal , Harness , Local LLMs , and Gateway . The old CLIs group is gone, the Codex-only page folded into Harness, and per-repository configuration moved up to Workspace , then Projects , where it...