LOCAL INFERENCE ENGINE · MLX + LLAMA.CPP

Local inference engines. One gateway for coding.

Bridge1 runs local coding models on MLX and llama.cpp, with memory checked before loading.

DIRECT ENGINESOPENAI + ANTHROPIC APISMEMORY CHECK BEFORE LOADROUTE1 MODEL SWITCHING
A bridge plan and matching elevation show a tiny orange car following an orange route across a river.

Bridge1 runs local coding models on MLX and llama.cpp, with memory checked before loading. Its prediction paths include DFlash and DFlash2 checkpoints, MTP heads, n-gram lookup or no drafter. The local gateway adapts client requests; the dashboard reports the active method. Drafter Fusion → Method credits →

From agentic coding request to local model output.

The coding agent keeps one address. Bridge1 chooses the model behind it, checks that the model can be loaded, and reports what happened.

Each step is visible in the Live Log and the dashboard.

LOCAL PATHCoding agent → Bridge1 gateway → local model
01REQUEST
CC CODING AGENT

One local address

An OpenAI- or Anthropic-format request arrives at the gateway.

OpenCodeCodexClaude Code
02LOCAL
1 BRIDGE1 GATEWAY

Identify and translate

Bridge1 recognises the client, translates the request and tool calls, and applies the model's settings.

APISTATETRACE
03SELECT
R1 ROUTE1 OR A MODEL NAME

Pick the local model

Route1 points at the model you chose. A plain model id picks that model directly.

MEMORY CHECKWINDOWLOAD
04ADMIT
MB MEMORY PLAN

Fit it, or say why not

The model loads if it fits the budget with what is already loaded. Otherwise Bridge1 evicts a colder model or refuses, and says why.

BUDGETFITREASON
05RUN
LLM ONE ENGINE PROCESS PER MODEL

llama.cpp or MLX

The model runs on its own engine process. The reply is translated back to the client's format and streamed.

VISIBLE STATE The Live Log and dashboard show what ranMODEL · ENGINE · CONTEXT · SPEED PATH
CLIENT APIOpenAI or Anthropic format
MODEL NAMERoute1 or a native ID
SPEED PATHEngaged, declined or unavailable
MEMORYReserved, free, held by macOS

A simplified picture of the request path. Which speed path runs depends on the model; see the Speed page.

MLX and llama.cpp processes, managed by the desktop app.

Bridge1 manages its llama.cpp and MLX engines itself. You do not start a model server, and you do not edit engine flags to use a catalog model.

Each catalog entry comes with a pinned engine build and a runtime profile. Bridge1 does not retrain model weights. Each model page names its quantization.

01Coding agenta named client
↓ OpenAI or Anthropic request
02Bridge1 gatewayone local service
↓ Route1 or a plain model id
03llama.cpp or MLXthe model's own engine process
DASHBOARD ILLUSTRATIONNOT A SCREENSHOT
Gatewayrunning on this Mac
Route1points at the model you chose
Memoryreserved, free and held by macOS
Live Logrequest, error and speed-path detail
LIVE LOGrequest detail, errors and load decisions in one place

Memory is checked before a model loads.

Bridge1 keeps a budget for models: the smaller of macOS's own GPU memory limit and your installed memory minus a third of installed memory, at least 4 GB and at most 8 GB. macOS sets its own limit, and Bridge1 reads it at run time.

Each model’s bill includes weights, overhead and context. The pre-load memory-fit check avoids admitting a window the Mac cannot hold. Client limits still apply. See Full Context and model artifacts →

What this means for your Mac →
BUDGET

Set by macOS and your Mac

The budget is the smaller of macOS's GPU limit and installed memory minus a third of installed memory, at least 4 GB and at most 8 GB.

WINDOW

Sized to fit

The default window is the largest one that fits the budget. You can lower it for a model as an Advanced setting.

ADMISSION

Explained, not silent

When a model cannot load, the gateway says why. Colder models may be unloaded first.

Three API routes. One local runtime.

OPENAI-COMPATIBLE

Chat Completions and Responses

For clients that use OpenAI request formats, through /v1/chat/completions and /v1/responses. OpenCode and Codex use these routes.

OpenCode and Codex setup →

API compatibility means the request formats match. It does not mean every client behaves the same way. The named clients are listed on the Compatibility page.

Measure a model on your Mac.

Calibrate measures a model's prefill and decode speed on your Mac. Bridge1 uses the result for request timeouts and cold-start estimates.

Calibration does not set the context window. The memory plan does that, and it is the same whether you calibrate or not.

Keep the client setting. Change the model.

Route1 is a model name that Bridge1 controls. Your client points at claude-route1 (Claude Code and Claude Desktop) or route1 (other clients). You choose which model Route1 serves in the app.

If the model behind Route1 is not loaded, Bridge1 starts it when nothing else is loaded. Otherwise, load it first.

OpenCode, Pi.dev, Codex and Hermes Agent show each model under the same plain id. Claude Code and Claude Desktop show those same models with names beginning with claude-, as those apps require.

route1 always follows the model you pick in Bridge1. Switch models there and keep your client configuration.

In OpenCode, Pi.dev, Codex, Hermes Agent or Claude Code, type bridge1: help in a chat to check status, list models, or load, switch or stop a model. If a model is not ready, Bridge1 explains the next step in the chat. Turn chat controls off in Settings.

CLIENT SETTINGUNCHANGED
ANTHROPIC_MODEL="claude-route1"

The client keeps one name. Switching the model behind Route1 does not change the client.

SWITCHING COSTREAD THIS

A switch means the new model reads the chat again from the start. The first reply after a switch takes longer.

Long coding sessions depend on prefill as well as decode.

In a long conversation, reading the prompt can take longer than writing the reply. Bridge1 reuses a cached prompt prefix when it can.

Inspect the evidence →

Runtime questions

Do I need a separate MLX or llama.cpp server for Bridge1?

No. Bridge1 starts and supervises the engine for each catalog model. You choose the model rather than maintaining a server process and launch flags. The local gateway is the client-facing component of the inference engine, and the dashboard shows which engine and model actually ran.

How does Route1 avoid changing every coding client config?

route1 follows the model you pick in Bridge1, so switching needs no client config edit. OpenCode, Pi.dev, Codex and Hermes Agent share plain model ids. Claude Code and Claude Desktop show the same models with claude- names because those apps require them.

Read the model-switch behavior

Why does switching a local LLM make the next turn slower?

The new model must process the conversation with its own weights and cache state. Route1 keeps the client setting stable, but cannot reuse another model’s computed state. Load the Route1 target first if another model is already resident; budget checks still govern whether it fits.

Who sets the context size and memory budget in Bridge1?

Bridge1’s memory plan sets both for a catalog load. Weights, context and engine overhead must fit the available model budget, and the app explains refusal or eviction. You can lower a model’s window in Advanced settings instead of discovering a memory overrun during a long coding request.

Full Context and artifact choices

Do I have to calibrate a local model before coding?

No. Calibration is optional and measures prefill and decode on your Mac for timeout and cold-start estimates. The memory plan sizes context independently, so skipping calibration does not require you to invent a window size or engine speed estimate.