Local models.
Same API.
Runs on your hardware. Speaks Switchboard.
SwitchboardLocal ships with Switchboard. Run open models on-device through the same interface you already use, then fall back to hosted models in a single line when you need one.
Local inference, priced at 0×.
Why run it local?
The same API, on-device
SwitchboardLocal speaks the exact Switchboard interface. The code that calls Claude or GPT calls a local model by changing the model id, and nothing else moves.
Zero metering, zero fee
Local inference runs on your hardware, so there is nothing to meter and no routing fee. Unlimited calls, priced at 0×.
Nothing leaves the machine
Prompts and completions stay on-device. No provider, no network hop, no third party in the loop. The strongest privacy posture there is.
Fall back to hosted in one line
When a request needs a frontier model, route it through Switchboard instead. Same client, same shape: local first, hosted when it counts.
Drop-in
One client.
Local or hosted.
Point the client at a local model and it runs on-device. Point it at a hosted model and Switchboard routes it. Your code never learns the difference.
Full quickstart →import Switchboard
let client = Switchboard.Client(local: LocalModel.default)
let response = try await client.chatCompletions(.init(
model: "local/llama-3.1-8b",
messages: [.user("Hello")],
))
print(response.content ?? "") Start with SwitchboardLocal
It ships in the Switchboard SDK. Add the package, pick a local model, run.