Open source · Rust · llama.cpp

Swap models. Keep momentum.

One OpenAI-compatible endpoint for the GGUF models on your machine, with deliberate compatibility, model management, and single-GPU operations instead of hand-managed llama-server processes, ports, and GPU memory.

  • One resident model
  • OpenAI-compatible API
  • 100% local
GGUF Switchboard routing local language models through a central control plane

Request lifecycle

One route. Deliberate model changes.

A request names the model it needs. The switchboard uses kind-aware routing, protects in-flight work, changes the resident model, and rolls back safely when a load cannot complete.

  1. 01Request model B
  2. 02Drain model A
  3. 03Load model B
  4. 04Forward request
GGUF Switchboard lifecycle showing model selection, draining, loading and request forwarding
The switch lifecycle preserves one stable API while the resident model changes.

Control plane

Built for constrained local inference.

The narrow single-GPU scope makes switching predictable: one resident model, memory-aware eviction, idle priority loading, and optional automatic GPU layers.

One compatible gateway

Serve supported OpenAI Chat Completions (POST /v1/chat/completions) and Completions (POST /v1/completions), plus Embeddings, Models, and usage endpoints. Compatibility is best-effort against the installed llama.cpp build; Responses and Audio are partial and backend or model dependent. Also accept streaming and non-streaming Anthropic Messages API requests.

Tool calls without guesswork

Responses is partial: it translates function tools and calls with strict SSE events through Chat Completions; built-in and hosted tools are not supported. Audio is partial and proxied only when llama-server exposes the requested endpoint. Tool behavior remains model-dependent, so the selected GGUF and its chat template still matter.

Find, pull, and prove models

Search Hugging Face, inspect files, and pull models with hardware-aware quant selection, checksum and GGUF validation, and a resumable download fallback. A successful pull registers the model and refreshes a running server. In the current development build, a post-pull speed test measures prompt and generation throughput, with --no-bench as the opt-out.

Linux service, shared models

Install as a system-wide Linux service under a dedicated ggs service account. The current development build adds shared model-directory permissions. Refresh the live registry when the available models change.

Controlled resident-model changes

Drain the single slot, swap or roll back the resident model, route by model kind, evict under memory pressure, retry with OOM context fallback, and load idle priority models before they are needed.

Operate what you can inspect

Use optional automatic GPU layers alongside Swagger UI, Prometheus, health status, the live registry, portable models.json metadata, and usage history.

Architecture layers connecting OpenAI clients to GGUF models through GGUF Switchboard and llama.cpp
Existing OpenAI clients connect to one endpoint; llama.cpp remains the inference backend.

Product evidence

Inspect the system you are running.

The live registry, API surface, and model state remain visible instead of disappearing behind a desktop wrapper.

A live run: a curl request against the switchboard, nvidia-smi showing GPU memory shift as the resident model is evicted and swapped, and the streamed JSON response.

Operational boundary

Know exactly what it is built for.

Experimental software for development machines and single-GPU home labs.

Trusted LAN deployment; it is not an internet-facing multi-tenant gateway.

One model stays resident at a time, with controlled swaps between requests.

llama.cpp required with llama-server installed and GGUF model files available locally.

Quick setup

Deploy system-wide with one command.

Run ./deploy.sh for the primary quick setup. It installs GGUF Switchboard system-wide so all users can access the installed project and models directory. In the current development build, the models directory has shared writable permissions for all intended users.

git clone https://github.com/pradeepgudipati/gguf-switchboard.git
cd gguf-switchboard
./deploy.sh

Open source

Take control of your local model runtime.

Review the architecture, compatibility notes, and source before running it on your machine.