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.2.0.tar.gz (303.9 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.2.0-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for lllm3090-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a56a55b7078b4e2e8b74b0c6a4519cb93a399090e95fe523dc0a5a272fe7f6d1
MD5 824799df2ac17127b8b81b0d614510d7
BLAKE2b-256 4f21c5d457605d4e9166b90931fbc43b250ae60c47111becef864d275a7c672b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lllm3090-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 33.2 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34e98b2e2eabf529301c424802ddd0b6099cedfdbae51b65da224d14344ecf19
MD5 35c9312944ecaca514419bac17e18070
BLAKE2b-256 e68176404d1b455b3d423eb5fe89530c9decf8b0444b78b884da2961d1a0f263

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

This release

0.2.0 This release

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