Skip to content

Add optional desktop launcher for Windows and Linux - #1607

Open
ipechman wants to merge 2 commits into
JustVugg:devfrom
ipechman:feat/desktop-launcher-pr
Open

ipechman wants to merge 2 commits into
JustVugg:devfrom
ipechman:feat/desktop-launcher-pr

Conversation

@ipechman

@ipechman ipechman commented Sep 18, 2026

Copy link
Copy Markdown

Colibri's model-specific launch options currently require users to assemble command-line arguments. This adds an optional desktop launcher for people who already have Colibri, Python, and model files installed on Windows or Linux.

Changes

  • Add a saved model library, Web Chat/API Server selection, CPU/automatic/NVIDIA CUDA choices, named GPU selection, and optional memory/context/output/port controls.
  • Use the surrounding Colibri installation's model registry and diagnostics to check compatibility before starting. Packaged launchers discover Colibri beside the executable or in its immediate parent; source launches use the current Colibri folder.
  • Keep inspection and process work off the GUI thread. Start/Stop manages the launched process tree, displays loading/readiness status, and provides logs and a redacted command preview.
  • Remember model preferences and the Light/Dark theme. Handle invalid or unwritable settings without losing the current session.
  • Allow switching from CPU to CUDA before correcting a single-GPU selection; keep Start blocked until diagnostics pass. Report missing CUDA libraries before device-selection problems.
  • Add optional PySide6 packaging, native Windows/Linux build and smoke-test CI, bundled runtime notices, and a user guide.

The default command-line installation remains dependency-free. The inference engines and existing Tauri chat client are unchanged. The launcher does not install Colibri, download models, or install drivers.

Validation

  • Windows and Linux: python -m unittest discover -s tests/launcher -v — 103 tests each; Windows has 1 Linux-only skip and Linux has 5 Windows-only skips.
  • Clean Linux source extraction: make --jobs=2 check — passed, including 964 Python tests with 125 feature/platform skips.
  • Native Windows and Linux packages built and checked after extraction: local installation discovery in both supported layouts, bundled metadata probing with external Python, settings preservation, light/dark arrow assets, and runtime notices.
  • Widget checks cover light/dark text contrast, dropdown and spinbox rendering, and 100%, 150%, and 200% display scaling.
  • DeepSeek V4 Flash on Windows with two NVIDIA GPUs: verified CPU → CUDA → individual GPU selection in the packaged app, reaching Ready to start. Regression tests also verify the selected GPU reaches the engine environment and missing runtime errors remain visible.

No real model inference or GPU kernel computation was performed. Compatibility and process tests use local fixtures; installed Colibri metadata, NVIDIA device enumeration, and CUDA device availability/memory queries were also checked. The local v1.11.0 installation needed its matching DeepSeek CUDA library built separately; this PR does not add engine binaries or automatic installation. Linux binaries target Ubuntu 24.04/glibc 2.39; older distributions can build from source.

Try it

From the Colibri checkout:

python -m pip install -e ".[launcher]"
coli-launcher

See the launcher guide for usage, native packaging, and troubleshooting.

Provide a launch-only Qt interface for existing Colibri installations and
models, including compatibility checks, saved model preferences, CPU/CUDA
selection, process controls, and light/dark themes. Include native packaging,
runtime notices, platform CI, regression tests, and user documentation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant