Skip to main content

lllm3090

Local LLM serving for a single RTX 3090, with a browser control panel.

A llama.cpp engine, a web UI on loopback that starts and stops it and downloads models, and a curated model list where every entry has been checked to fit 24 GB with a usable context left over.

Install

Debian 13 or a derivative (Ubuntu 24.04 / 26.04), an RTX 3090, and the NVIDIA driver already working:

# uv, if you do not have it: https://docs.astral.sh/uv/getting-started/installation/
curl -LsSf https://astral.sh/uv/install.sh | sh

uv tool install lllm3090
lllm3090 setup

setup checks the hardware, installs the one apt package the engine needs, fetches a pinned llama.cpp build and starts the panel as a user service. It is safe to re-run and skips whatever is already done.

It touches nothing outside $HOME except libvulkan1, and downloads no model weights — you pick those from the panel.

Then open http://127.0.0.1:8080, download Qwen3-8B (5 GB) to prove the install works, and Qwen3.8-27B (15 GB) for real use.

Use

lllm3090 models          # what exists, what fits, what is downloaded
lllm3090 start Qwen3.8-27B
lllm3090 status
lllm3090 claude          # launch Claude Code against the local model
lllm3090 stop            # free the VRAM

The engine exposes both the OpenAI API (/v1/chat/completions) and Anthropic's (/v1/messages) on 127.0.0.1:1919, so Claude Code and OpenAI-compatible clients both work against it without a translation proxy.

Why it is scoped to one GPU

Every figure in the model catalogue — download size, resident VRAM, KV cache cost per token, achievable context, expected tokens per second — is computed for 24 GB of GDDR6X at compute capability 8.6. On another card the software would still run and every number would be wrong, so the installer checks and warns.

Documentation

https://gilesknap.github.io/lllm3090

The panel

The lllm3090 control panel

Engine state and VRAM at the top, the models you have with start/stop, the curated list with what fits this card and what it will do, and the engine log streaming underneath. Downloads run in the background with progress, and resume from a part file if interrupted.

Download files

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

Source Distribution

lllm3090-0.4.0.tar.gz (311.1 kB view details)

Uploaded Source

Built Distribution

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

lllm3090-0.4.0-py3-none-any.whl (38.5 kB view details)

Uploaded Python 3

File details

Details for the file lllm3090-0.4.0.tar.gz.

File metadata

  • Download URL: lllm3090-0.4.0.tar.gz
  • Upload date:
  • Size: 311.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for lllm3090-0.4.0.tar.gz
Algorithm Hash digest
SHA256 60971367fc1a1afc58d041dd5b24cbf39d8503a1391e6ebc1b9d3de271899787
MD5 9ffcf83d4faaeaee6787b664062d75ea
BLAKE2b-256 112a5c50b5d90da222b407c9524f488e143cc9f99a2549dde44af82a29e82e45

See more details on using hashes here.

File details

Details for the file lllm3090-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: lllm3090-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 38.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for lllm3090-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 92c6b981231782b26959f8f42020b18a6b73c56648cdff27d925ab7c0d9920e0
MD5 5aa485cf8a75b344138882ed052927ed
BLAKE2b-256 f3785f85a692b2dea4cccd5a3cfa65641c1b1b3f59fd335975b1468a643ce593

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.0

2 files

This release

0.4.0 This release

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

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