AI/TLDR

Shimmy

A single Rust binary that serves GGUF models on an OpenAI-compatible API

Local RuntimesOpen source
Language
Rust
License
Apache-2.0
$cargo install shimmy

Overview

Shimmy is a local inference server for GGUF models that ships as one binary and speaks the OpenAI API. You point an existing client — an SDK, an editor plugin, anything that already targets `/v1/chat/completions` — at a Shimmy port, and it serves completions from a model file on your own disk instead of a hosted endpoint.

What distinguishes it from the other local runtimes is that the stack is Rust the whole way down. Shimmy is the server; the engine underneath is Airframe, a pure-Rust transformer implementation whose compute shaders are written in WGSL and executed through WebGPU. That means no Python runtime, no C++ toolchain, and no backend flags to pick: the same build targets NVIDIA, AMD, Intel, integrated GPUs and Apple Silicon, because WebGPU is the abstraction layer rather than a vendor SDK. Shimmy 2.0 removed the earlier llama.cpp, MLX, Hugging Face and RustChain backends to make this the only path.

The project leans hard on reproducibility. Model specs are derived from GGUF metadata rather than hardcoded per-model constants, accumulation happens in F32, and the README states that the same model with the same seed and parameters produces the same output. Every supported model/quantisation pair goes through a three-part certification regimen covering maths, inference and determinism before it is listed, and the README is explicit that architecture recognition alone does not imply certification.

It is published on crates.io as `shimmy` and licensed Apache-2.0. The maintainer states in the README that the project is independently maintained and will remain free.

What it does

  • OpenAI-compatible endpoints — chat completions, text completions, streaming and model listing — so existing SDKs and tools work unchanged
  • Pure-Rust WebGPU (WGSL) engine via Airframe: no Python runtime, no C++ toolchain, no per-vendor backend selection
  • Runs across NVIDIA, AMD, Intel, integrated GPUs and Apple Silicon from one build
  • Deterministic output: F32 accumulation, and the same model plus seed plus parameters returns the same result
  • TurboShimmy INT4 KV cache, which the docs report cuts KV-cache memory around 7x in tested configurations
  • YaRN RoPE scaling for extended context, enabled through the `SHIMMY_MAX_CTX` environment variable
  • Model specs auto-derived from GGUF metadata, with a documented certification ledger covering 12 model families

Getting started

Shimmy installs as a Rust crate and serves a GGUF file you already have on disk. You need a stable Rust toolchain and a GGUF model; the project's quickstart doc covers GPU setup and VRAM sizing in more detail.

Install the binary

Install from crates.io with cargo.

bashbash
cargo install shimmy

Serve a GGUF model

Point Shimmy at an absolute path to a .gguf file and bind it to a local port.

bashbash
shimmy serve --model-path /absolute/path/to/model.gguf --bind 127.0.0.1:11435

Check what is loaded

From another terminal, list the models Shimmy is serving.

bashbash
shimmy list --short

Call it like OpenAI

Send a normal chat-completions request. Any client that speaks that surface can be pointed at the same URL.

bashbash
curl -s http://127.0.0.1:11435/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"tinyllama-1.1b","messages":[{"role":"user","content":"Say hi in 5 words."}],"max_tokens":32}'

Stretch the context window

Extended context is opt-in through an environment variable that turns on YaRN RoPE scaling. The extended-context doc works through the VRAM arithmetic before you raise it.

bashbash
SHIMMY_MAX_CTX=16384 shimmy serve --model-path /absolute/path/to/model.gguf

Commands and code are distilled from the project's own documentation — always check the official repo for the latest.

When to use it

  • Run an OpenAI-compatible endpoint on a laptop or workstation when you cannot send prompts to a hosted API
  • Deploy local inference onto machines where installing Python or a CUDA toolchain is impractical — the binary has no runtime dependencies
  • Get reproducible generations for testing or evaluation, where the same seed and parameters must return the same tokens
  • Serve a small model on a constrained GPU using the INT4 KV cache instead of provisioning more VRAM

How Shimmy compares

Shimmy alongside other open-source local runtimes tools AI/TLDR tracks, ranked by GitHub stars.

ToolStarsWhat it does
Ollama★ 181kA developer-friendly tool that downloads and runs local LLMs from the terminal with a built-in OpenAI-compatible API.
llama.cpp★ 128kA C/C++ inference engine that runs LLMs in the GGUF format on CPUs, Apple Silicon, and GPUs with low memory use.
GPT4All★ 77.4kGPT4All is a free desktop app and Python client that runs large language models locally on your own computer, with no API calls or GPU required.
LocalAI★ 49.1kA self-hosted server that exposes an OpenAI-compatible API for running text, vision, voice, and image models on local hardware.
Jan★ 44.5kAn open-source desktop app that runs LLMs fully offline as a ChatGPT-style assistant on your own computer.
llmfit★ 36.7kA Rust terminal tool that inspects your CPU, RAM, GPUs and VRAM and scores which open-weight models and quantizations will actually run well on that machine, with a TUI, CLI, REST API and local-runtime integrations.
Colibrì★ 35kA pure-C inference engine that keeps a Mixture-of-Experts model's dense trunk resident in RAM and streams its routed experts from disk, so 744B-2.8T models run on consumer hardware.
Shimmy★ 5.9kA single Rust binary that serves GGUF models on an OpenAI-compatible API