Pull requests / #686

#686 Add a tiny zero-dependency terminal launcher for Strata

closed · @Ayshinko · 0 Kommentare · Auf GitHub

Setup & installServer & APINVIDIA / CUDAModels & quantsWindowsLinux

Beschreibung

# A small interface, not another layer

This adds an optional terminal launcher for Strata with one deliberately narrow goal: make the existing setup / prepare / start workflow easier to use without building another management stack around it.

It is intentionally small.

There is no second server, no reverse proxy, no daemon, no frontend framework, no background dashboard, and no additional Python dependency.

The launcher is essentially a thin terminal view over functionality Strata already owns.

## What it does

From one compact terminal screen a user can:

- discover existing Strata configs
- discover candidate GGUF models
- prepare a supported model
- start a prepared model
- stop the process it launched
- inspect operation output
- open the existing Strata Chat / Monitor
- change the model directory

Prepare, start and stop automatically switch to an operation-log view, so there is no constantly repainting dashboard in the background.

Press Esc/B and you are back at the model list.

## Strata remains the source of truth

A key design constraint was to avoid creating a second compatibility database.

The launcher reuses the current Strata checkout for model support and GGUF handling instead of trying to teach a UI its own version of Strata.

Where available it consumes the existing definitions/helpers from `setup.py` and uses Strata's own `tools/gguf_reader.py`.

That means model discovery can validate the GGUF metadata and tensor directory — including architecture, split/shard information and routed expert tensors — without reading tens of gigabytes of tensor payload just to identify a model.

If Strata changes its supported families or formats, the launcher is designed to follow Strata rather than maintain a parallel handwritten whitelist.

The launcher also follows whether the current checkout still has Strata's custom `--variant` builds: on a checkout without them, variant labels and flags are simply not offered.

## READY means actually ready

An installed config is shown as READY only when the artifacts the current Strata actually needs exist (the engine binary, the prepared pack's completion markers and tokenizer, the tokenizer directory, every GGUF shard the config points at, and the `--mtp` draft runtime). Only file existence is checked — never the multi-GB payloads.

If a prepared pack was deleted, the config is never shown as READY: the raw GGUF is offered again as PREPARE and Enter re-runs the current `setup.py`; if the source GGUF is gone too, the config is shown as BROKEN with the reason.

## What it deliberately does not do

This PR does not introduce:

- a web manager
- another API endpoint
- a management proxy
- another persistent service
- another model runtime
- another monitoring implementation
- another dependency stack

If the launcher is never opened, normal Strata operation is unchanged.

The idea is closer to a small installer/menu utility than an application layered on top of Strata.

## Why

Strata already has the difficult parts: model validation, preparation, runtime configuration, the server, Chat and Monitor.

This PR adds only the small missing interface between those pieces and a user sitting at a terminal.

The path is deliberately short:

model -> prepare -> start -> logs

I previously experimented with a significantly larger manager UI.

That experiment made the trade-off clear: for this job, less is better.

This version takes the opposite approach:

small surface area, existing Strata logic, zero extra runtime architecture.

Nothing in this PR is required for existing users. It is simply an optional convenience for users who prefer a compact terminal workflow.

## Files

- `tools/strata_tui.py` — the launcher (no third-party dependencies; run with `py -3 tools\strata_tui.py`)
- `START-TUI.bat` / `start-tui.sh` — tiny Windows/Linux launchers (same style as `SETUP.bat` / `setup.sh`)

Mehr auf der Site

Links zu Install, Modellen, Releases.