Skip to main content

LLM-Launchpad

Spin up LLM endpoints on Modal for local and personal use

LLM Launchpad header

  • Deploy any open-source models from the Hugging Face model hub.
  • OpenAI-compatible endpoints via llama.cpp (preferred) and vLLM backends.
  • Direct integration with OpenCode.

Prerequisites

  • uv for Python, environment, and CLI tool management (install with curl -LsSf https://astral.sh/uv/install.sh | sh)
  • Modal account
  • Hugging Face account
  • Optional: OpenCode (install with curl -fsSL https://opencode.ai/install | bash)

Quickstart

Get up and running in four steps:

  1. Install the CLI so llm-launchpad is available in your shell:

    uv tool install llm-launchpad
    llm-launchpad --help
    
  2. Authenticate Modal:

    modal setup
    
  3. Authenticate Hugging Face:

    huggingface-cli login
    
  4. Launch the TUI:

    llm-launchpad
    

Why a TUI?

Setting up LLM endpoints usually means juggling model names, container images, GPU choices, warmup checks, logs, and endpoint details across several commands. The TUI keeps that flow in one place.

From the TUI you can:

  • Launch any open-source model on the Hugging Face model hub without memorizing Modal or backend-specific commands
  • Manage multiple deployed instances and inspect their status
  • Integrate the final OpenAI-compatible base URL and model ID into your workflows like OpenCode after deployment.

Headless CLI examples

The TUI is the recommended path for interactive use, but the same workflows are available from the command line for scripts and repeatable operations.

Deploy a vLLM endpoint and wait until it is ready:

llm-launchpad deploy \
  --backend vllm \
  --model-name Qwen/Qwen3-4B \
  --instance-name qwen3 \
  --do-warmup

Switch a llama.cpp instance to a Hugging Face GGUF model, redeploy it, and warm it up:

llm-launchpad switch \
  --backend llamacpp \
  --repo-id unsloth/Qwen3-4B-GGUF \
  --quant '*Q4_K_M.gguf' \
  --instance-name qwen3

Inspect and manage deployed apps:

llm-launchpad list
llm-launchpad status --backend llamacpp --instance-name qwen3
llm-launchpad logs --backend llamacpp --instance-name qwen3
llm-launchpad stop --backend llamacpp --instance-name qwen3 --yes

Sync existing Launchpad deployments into OpenCode without changing files first:

llm-launchpad opencode sync --dry-run

Storage and cleanup

Downloaded model weights are cached in the Modal huggingface-cache volume so repeated deploys can start faster. Use the TUI Storage screen to refresh the cache inventory, predownload a model, or delete selected cached weights when they are no longer needed.

Stopping an app and deleting cached weights are separate operations: llm-launchpad stop stops a deployed Modal app, while the Storage screen manages cached model files. If storage size looks stale after a deployment or delete, refresh the Storage screen to reload the Modal volume snapshot.

Costs and scaledown

GPU costs are controlled by the Modal resources selected for each deployment and by how long containers stay warm. LLM-Launchpad defaults the scaledown window to 1800 seconds, and you can change it in the Settings screen or with SCALEDOWN_WINDOW before deploying.

For predictable costs:

  • Stop apps you no longer need with llm-launchpad stop.
  • Prefer smaller GPU layouts for quick tests before moving to larger models.
  • Use the warmup command only when you actually need the endpoint ready immediately.
  • Treat displayed cost estimates as guidance and confirm current pricing in Modal for production workloads.

OpenCode integration

LLM-Launchpad automatically detects local installation of OpenCode and will set up your OpenCode config with the final OpenAI-compatible base URL and model ID after deployment.

Troubleshooting

  • Modal CLI not found: reinstall or upgrade the package, then confirm modal --help works in the same shell.
  • Modal authentication missing: run modal setup.
  • Hugging Face download errors: run huggingface-cli login and verify the model license or gated-repo access in your Hugging Face account.
  • Warmup stays queued: Modal may still be scheduling the requested GPU. Try a smaller GPU configuration or wait for capacity.
  • Endpoint status fails after deploy: inspect llm-launchpad logs --backend <backend> --instance-name <name> for backend startup errors.
  • SSH copy or selection feels wrong in the TUI: start with llm-launchpad tui --no-mouse to let the terminal handle native text selection.

Development setup

If you are working from a clone and want the command available directly while editing the source:

git clone https://github.com/ThomasRochefortB/llm-launchpad.git
cd llm-launchpad
uv tool install --editable .
llm-launchpad --help

If you need the full project environment for tests or local development workflows:

uv sync
uv run pytest

Download files

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

Source Distribution

llm_launchpad-1.1.1.tar.gz (200.2 kB view details)

Uploaded Source

Built Distribution

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

llm_launchpad-1.1.1-py3-none-any.whl (152.5 kB view details)

Uploaded Python 3

File details

Details for the file llm_launchpad-1.1.1.tar.gz.

File metadata

  • Download URL: llm_launchpad-1.1.1.tar.gz
  • Upload date:
  • Size: 200.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.7.4

File hashes

Hashes for llm_launchpad-1.1.1.tar.gz
Algorithm Hash digest
SHA256 1f7a2fe38af956144257482975716141a28f67fbb31535317a5b0948f0fed641
MD5 b45bcd59b4774da8242192cf08b97898
BLAKE2b-256 30a803ee98eb04d772aa877b225623644a53f83b6d30c79c5419f088465de88a

See more details on using hashes here.

File details

Details for the file llm_launchpad-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for llm_launchpad-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 25b8cbdceb8332284c4b2cfdc4cfb43cc0e5588bde80fae9b7c9f05d4cc3440b
MD5 76600e40d4f0f48693aa0b95401c954f
BLAKE2b-256 4f210aee9176e95961264314355279d08f8014c9e58ec73668e54d68f369c641

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 files

1.1.0

2 files

1.0.1

2 files

1.0.0

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page