Skip to main content

gguf-server

Local LLM server GUI for GGUF models, packaged for Python. The GUI runs in your browser against a local backend; inference is served by the standalone gguf-server C/C++ engine, compiled during pip install and bundled with the package as a single binary. Model and template files are referenced by filesystem path through a built-in file browser — nothing is uploaded or copied to temp storage.

Install

pip install gguf-server

Building the bundled engine requires a C/C++ toolchain and CMake ≥ 3.15 (on Windows: MSVC Build Tools). The engine source is resolved from the vendored vendor/server copy (see scripts/vendor_engine.py), a sibling ../server checkout, or GGUF_SERVER_ENGINE_DIR. That tree is self-contained — it carries its own ggml kernels, GGUF runtime, common layer and HTTP server, with no llama.cpp checkout and no external ggml — so the build compiles the server binary and nothing else.

GPU and accelerator backends

The default build is CPU-only. Backends are opt-in and can be requested with an environment variable or a CMake define — the env var is usually easier to pass through pip:

GGUF_SERVER_CUDA=1   pip install gguf-server    # NVIDIA (needs the CUDA toolkit)
GGUF_SERVER_HIP=1    pip install gguf-server    # AMD (needs ROCm/HIP)
GGUF_SERVER_VULKAN=1 pip install gguf-server    # cross-vendor (needs the Vulkan SDK)

CMAKE_ARGS="-DGGUF_SERVER_CUDA=ON" pip install gguf-server   # equivalent

Available: CUDA, HIP, VULKAN, METAL. These are the kernels the engine tree actually ships (vendor/server/kernels/src); the backends llama.cpp has and this engine does not — SYCL, CANN, OpenCL, WebGPU, RPC, zDNN, ZenDNN, OpenVINO, Hexagon, MUSA, BLAS — are simply absent. Each option maps to the ggml option of the same name, and the finer-grained GGML_* knobs (GGML_NATIVE, GGML_AVX512, GGML_CUDA_FA_ALL_QUANTS, …) can still be passed straight through as -DGGML_<NAME>=…. On macOS, Metal is on by default (with the shader library embedded in the binary) — no flag needed.

CUDA builds compile kernels for many GPU architectures and can take a long time; restrict them to your own card to speed this up, e.g. CMAKE_ARGS="-DGGUF_SERVER_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=89". The GPU runtime libraries (cuBLAS, ROCm, …) are linked dynamically and come from the toolkit you built against, so keep it installed.

HTTPS / OpenSSL

Off by default here (the engine's own default is on). OpenSSL is only needed to download models over HTTPS (-hf / URL arguments); this package always hands the engine local file paths. Leaving it off also avoids a build break on Windows: find_package(OpenSSL) can pick up a foreign-ABI install — an MSYS2/MinGW libcrypto alongside an MSVC toolchain puts MinGW headers on cl.exe's include path and fails httplib.cpp, download.cpp and hf-cache.cpp with winnt.h: fatal error C1189: No supported target architecture. Re-enable with GGUF_SERVER_OPENSSL=1 if you want in-server HTTPS downloads.

Embedded web UI

The engine embeds whatever static assets sit in GGUF_SERVER_UI_DIR (default vendor/server/ui/dist, which ships empty), so out of the box it is API-only and its own / returns 404. That has no effect here — this package serves its own GUI. Point GGUF_SERVER_UI_DIR at a bundle if you want the engine's UI as well.

Windows notes

Both toolchains work; which one you get depends on your shell, so check the CMAKE_CXX_COMPILER line in the configure output if a build misbehaves.

  • MSVC — build from a Developer Command Prompt (vcvars64.bat) so cl.exe is on PATH. This is the primary Windows toolchain.
  • MinGW / MSYS2 — used automatically when C:\msys64\mingw64\bin is on PATH and MSVC is not. Supported here: the build defines _WIN32_WINNT=0x0A00 (MinGW otherwise pins it to a Windows 7-era value, which makes the vendored cpp-httplib hard-error with "doesn't support Windows 8 or lower" and leaves ::CreateFile2 undeclared), and links the MinGW runtime statically so the binary doesn't need libstdc++-6.dll, libgcc_s_seh-1.dll or libwinpthread-1.dll beside it. Turn the latter off with GGUF_SERVER_MINGW_STATIC=0.

Two environment gotchas worth knowing:

  • 'ninja' ... inappropriate file type or format — a pyenv-win shim is shadowing the real ninja. Point CMake at a real one, e.g. -DCMAKE_MAKE_PROGRAM="C:/Program Files (x86)/Microsoft Visual Studio/<ver>/BuildTools/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe".
  • A failed configure leaves a cache behind in build/, and later builds reuse it. Delete the directory (rmdir /s /q build) before retrying after you change toolchain or options.

Usage

python -m gguf_server              # launch the GUI in the browser
gguf-server                        # same
gguf-server --port 8642 --no-browser

The GUI listens on port 8642; the LLM server it launches defaults to 8888.

GUI features (as in the desktop app's LLM panel):

  • Server — start/stop, live status, copyable API base URL, active configuration summary, OpenAI-compatible endpoint reference, and a copyable/editable engine command line
  • Model.gguf model file, optional --mmproj vision projector, and chat template selection (auto-detect from metadata, file, or raw Jinja2)
  • Settings — host/port, API key, model alias, context length, GPU layers, main GPU, per-GPU tensor split sliders, CPU threads, parallel slots, batch and micro-batch sizes, KV cache types, flash attention, continuous batching, mlock, mmap and verbose logging, plus hardware-derived "Recommended" defaults
  • Presets — save the whole configuration, with JSON export/import
  • Hardware — CPU, RAM/VRAM meters and per-GPU details, with live polling
  • Logs — tail of the running server's log with auto-scroll

Engine CLI passthrough (runs the bundled gguf-server engine binary):

python -m gguf_server engine -- --model model.gguf --port 8888
gguf-server engine -- --help

How it works

  • pip install compiles the engine (static ggml + llama + llama-common + mtmd linked into one executable) via scikit-build-core and installs it into the package's bin/ directory.
  • gguf-server starts a stdlib HTTP server (default port 8642) serving the static GUI and a small JSON API, and opens the browser.
  • Starting the server spawns one engine child process with its output redirected to a log file; a watcher thread polls the TCP port until it accepts connections, then reports the endpoint to the GUI. Stopping the GUI stops the child.
  • File selection uses a server-side directory listing (/api/browse) so the GUI gets real filesystem paths — no drag & drop uploads of multi-GB models.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gguf_server-0.0.3.tar.gz (3.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gguf_server-0.0.3-py3-none-win_amd64.whl (21.4 MB view details)

Uploaded Python 3Windows x86-64

File details

Details for the file gguf_server-0.0.3.tar.gz.

File metadata

  • Download URL: gguf_server-0.0.3.tar.gz
  • Upload date:
  • Size: 3.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for gguf_server-0.0.3.tar.gz
Algorithm Hash digest
SHA256 2e752e733d4b6fd6da291c585bfd0d9817286c1a537e6bc14f17f58372a60de4
MD5 d54a281e4f3183b158af3817cb5aa998
BLAKE2b-256 ecf4e4a76be516cef063ccd203562c6908594909ab4aab5e39d7739fdaa118f7

See more details on using hashes here.

File details

Details for the file gguf_server-0.0.3-py3-none-win_amd64.whl.

File metadata

  • Download URL: gguf_server-0.0.3-py3-none-win_amd64.whl
  • Upload date:
  • Size: 21.4 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for gguf_server-0.0.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 c66890912f78159dc3124d32cdfe66593820053d08bf5a76401cbad023090e33
MD5 b031640d9337a067b0eca3944d03bf7f
BLAKE2b-256 6d9ae7aaa01b7023f3f910127947f6c045d242f70c6536db8154449f3097e0ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page