CLI installer and management tool for the llm.port platform
Project description
llmport-cli
The single entry point to deploy, configure, and manage the llm.port platform — an open-source LLM gateway that routes, secures, and observes traffic across local runtimes and remote providers.
pip install llmport-cli # or: uv tool install llmport-cli
llmport doctor # verify prerequisites
llmport deploy /opt/llmport # full production deployment
Features
- One-command production deploy — pre-flight checks,
.envgeneration, image builds, database migrations, and service startup. - Auto-tuning — detects host CPU / RAM and computes optimal worker counts, DB pool sizes, and queue channel pools.
- Module management — enable / disable optional services (PII redaction, Auth, Mailer, Docling OCR) via Docker Compose profiles.
- GPU auto-detection — discovers NVIDIA (CUDA), AMD (ROCm), and Intel GPUs; selects the correct vLLM container image automatically.
- Developer workflow — clone all repos, install deps, run infra + migrations, and generate a VS Code workspace in one command.
- Rich terminal UI — tables, progress bars, and themed output powered by Rich. Interactive TUI wizard via Textual.
- Command abbreviation — type
llmport stinstead ofllmport status.
Requirements
| Dependency | Minimum |
|---|---|
| Python | 3.12 |
| Docker Engine | 24.0 |
| Docker Compose | v2 |
| Git | 2.x |
Installation
From PyPI
pip install llmport-cli
# or with uv
uv tool install llmport-cli
From source
git clone https://github.com/llm-port/llm-port-cli.git
cd llm-port-cli
uv sync # install deps + editable entry point
uv run llmport --help
Verify
llmport version
llmport doctor
Quick start
Production deployment
# Full deploy — pre-flight, env gen, build, migrate, start
llmport deploy /opt/llmport
# Enable optional modules
llmport deploy /opt/llmport --modules pii,auth
# Skip image builds (pull only)
llmport deploy /opt/llmport --no-build
# Provision node-agent on this host during deploy
llmport deploy /opt/llmport --local-node
# Provision node-agent on remote host over SSH
llmport deploy /opt/llmport --local-node --local-node-host ubuntu@10.0.0.12
Day-to-day operations
llmport up # start all services
llmport up --build llm-port-api # rebuild a single service
llmport down # stop all services
llmport down --volumes # stop + remove volumes
llmport status # service table
llmport logs -f # tail all logs
llmport logs -f llm-port-backend # tail one service
Modules
llmport module list # show available modules
llmport module enable pii auth # enable modules
llmport module disable docling # disable a module
Configuration
llmport config show # print current config
llmport config set dev.branch main # update a value (dot-notation)
llmport config edit # open in $EDITOR
llmport config path # print config file location
Auto-tuning
llmport tune # detect resources, write .env
llmport tune --profile prod # production-grade sizing
llmport tune --dry-run # preview without writing
Admin utilities
llmport admin reset-password --email admin@localhost
Developer workflow
# Bootstrap everything — clone repos, install deps, start infra,
# run migrations, generate VS Code workspace
llmport dev init ~/projects/llm-port
llmport dev init ~/projects/llm-port --ssh # SSH cloning
llmport dev init ~/projects/llm-port --overwrite # force pull
# Start / stop / status
llmport dev up
llmport dev up --backend-only
llmport dev up --local-node
llmport dev up --local-node --local-node-host ubuntu@10.0.0.12
llmport dev down
llmport dev status
# Check dev prerequisites (optionally auto-install missing tools)
llmport dev doctor
llmport dev doctor --install --yes
--local-node installs a systemd unit by default and requires sudo on Linux.
Use --local-node-no-sudo to skip privileged systemd setup.
Command reference
| Command | Description |
|---|---|
llmport version |
Print CLI, Python, Docker, and Compose versions |
llmport doctor |
Run system health checks (OS, RAM, disk, Docker, GPU, ports) |
llmport deploy [DIR] |
Full production deployment with pre-flight checks |
llmport deploy [DIR] --local-node |
Deploy + provision node-agent (local or SSH host) |
llmport up [SERVICES...] |
Start services (supports --build, --pull) |
llmport down |
Stop and remove containers (--volumes, --all) |
llmport status |
Show service state, health, and ports (--json) |
llmport logs [SERVICES...] |
Stream logs (-f, -n, --timestamps) |
llmport config show|set|edit|path|init |
Manage YAML configuration |
llmport module list|enable|disable |
Toggle optional platform modules |
llmport tune |
Auto-tune worker and pool settings (--profile, --dry-run) |
llmport admin reset-password |
Reset a user password directly in the database |
llmport dev init [DIR] |
Bootstrap full developer workspace |
llmport dev up |
Start backend, worker, and frontend dev servers |
llmport dev up --local-node |
Start dev services and provision node-agent |
llmport dev down |
Stop all dev processes |
llmport dev status |
Show repo branches, infra, and dev processes |
llmport dev doctor |
Check dev prerequisites (--install) |
Project structure
llm_port_cli/
├── pyproject.toml
├── src/
│ └── llmport/
│ ├── cli.py # Click root group + AliasedGroup
│ ├── commands/
│ │ ├── version.py # version
│ │ ├── doctor.py # doctor
│ │ ├── deploy.py # deploy
│ │ ├── up.py # up
│ │ ├── down.py # down
│ │ ├── status.py # status
│ │ ├── logs_cmd.py # logs
│ │ ├── config.py # config group
│ │ ├── module.py # module group
│ │ ├── tune.py # tune
│ │ ├── admin.py # admin group
│ │ └── dev/ # developer workflow
│ │ ├── dev_init.py
│ │ ├── dev_up.py
│ │ ├── dev_status.py
│ │ └── dev_doctor.py
│ ├── core/ # shared utilities
│ │ ├── compose.py # Docker Compose wrapper
│ │ ├── detect.py # OS / GPU / port detection
│ │ ├── settings.py # YAML config (~/.config/llmport/)
│ │ ├── api_client.py # Backend REST client (httpx)
│ │ ├── bootstrap.py # First-admin bootstrap
│ │ ├── env_gen.py # .env generation (Jinja2)
│ │ ├── git.py # Git clone / checkout helpers
│ │ ├── install.py # Cross-platform tool installer
│ │ ├── registry.py # Central metadata registry
│ │ ├── sysinfo.py # Resource detection + tuning
│ │ └── console.py # Rich themed output
│ ├── tui/ # Textual TUI wizard
│ └── templates/ # Jinja2 .env templates
└── tests/
License
Apache License 2.0 — see LICENSE for details.
Part of the llm.port project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llmport_cli-0.2.7.tar.gz.
File metadata
- Download URL: llmport_cli-0.2.7.tar.gz
- Upload date:
- Size: 76.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
faa2704d98c507b7b4e4c3c53110e23fa535c9ee0dc531c691fae3a854ab4512
|
|
| MD5 |
e75a0ac42085f02fa652a730566a0a98
|
|
| BLAKE2b-256 |
59ec9a90f66e8885b401638a31996f683c0c491d4c61be656af91bcf7ca8a67d
|
File details
Details for the file llmport_cli-0.2.7-py3-none-any.whl.
File metadata
- Download URL: llmport_cli-0.2.7-py3-none-any.whl
- Upload date:
- Size: 98.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64fb05a97e6db04a2d4a163ab8b95290b17c46f12a75cce6dcf2efb716154315
|
|
| MD5 |
a5d51c76d0185cee9325d093cb7a627d
|
|
| BLAKE2b-256 |
3fb076eea0d69478e4b170d7c497466b00899adac000c62b15fef9700fc53443
|