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.3.0.tar.gz (309.2 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.3.0-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for lllm3090-0.3.0.tar.gz
Algorithm Hash digest
SHA256 be3547c9629c91de188d68f6f8b0cbe485b2bb0906336821d9c719fa21458117
MD5 d9063f06e4f0b5157f3da79e8ea2339d
BLAKE2b-256 e4861208e5dff1f61f3964ef4ae675a91de20a04bd1ab380e2a097fd53321f09

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lllm3090-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 37.6 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 758e38e6752771cb0448f6c25dcad597fc6e348fa88616fe70ad35dfa51882ef
MD5 a39b70bf06c3b44ce2a16cc7ea4589bf
BLAKE2b-256 a54e5946c3f292bec2d1fa2d5d6b1e8bc01eeafeb57ee87554b41be30f49aa8f

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.0

2 files

0.4.0

2 files

This release

0.3.0 This release

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