You sent me this: https://github.com/mostlygeek/llama-swap

This is exactly what you need for your goal: run OpenClaw in a venv with local models and swap between them.

What llama-swap Does

Single binary. One config. Run multiple local LLMs and hot-swap between them on demand.

Supports:

  • llama.cpp / llama-server
  • vLLM
  • TabbyAPI
  • Any OpenAI/Anthropic compatible server

Features:

  • Web UI included
  • API key support
  • Auto-unload after timeout
  • Concurrent models
  • Docker support

Setup

# Download (macOS ARM64)
curl -L -o llama-swap.tar.gz "https://github.com/mostlygeek/llama-swap/releases/download/v203/llama-swap_203_darwin_arm64.tar.gz"
tar -xzf llama-swap.tar.gz
chmod +x llama-swap

Config (config.yaml)

upstreams:
  ollama:
    url: http://localhost:11434
    type: openai
  
  lmstudio:
    url: http://localhost:1234/v1
    type: openai
    
  vllm:
    url: http://localhost:8000/v1
    type: openai

default: ollama

Run

./llama-swap serve

Opens web UI at http://localhost:8080/ui

For Your Goal

This is perfect for:

  1. Ollama for quick tasks
  2. LM Studio for polished GUI
  3. vLLM for production/benchmarking

All through one endpoint. Your OpenClaw venv points to llama-swap, you control which model runs via config or API.

Why It Fits Your Setup

Requirement llama-swap
Local only ✅
Multiple models ✅
OpenClaw compatible ✅ (OpenAI API)
Simple ✅ one binary
macOS ARM64 ✅

Guide completed 2026-04-19