Operator UI

A web console for the uaii CLI, running locally or self-hosted from dashboard/. Chat with Hugging Face decoder folders and GGUF blk.* models, pull from the Hub, and manage device and memory settings.

What it provides

Chat
Generation through uaii generate or a warm uaii chat --jsonl worker, with streaming output, system prompt, token limit, temperature, top-p, top-k, repetition penalty, cancellation, and a FIFO request queue.
Hugging Face
Hub pulls and folder imports for decoder-only CausalLM checkpoints, which require a current uaii build. See Hugging Face.
GGUF
Dense and MoE blk.* transformers including the MLA expand path, plus a built-in demo model for smoke tests.
Model library
Upload GGUF files, list Hugging Face and GGUF models, convert, and delete.
Runtime health
Run uaii doctor --load-plugins from the browser.
Benchmarks
Run uaii_bench and read the results as a table or raw JSON.
Settings
Bind address, port, binary paths, device selection defaulting to auto, GEMM provider, thread count, and auth token.
API
A REST surface under /api/* plus OpenAI-compatible /v1/models and /v1/chat/completions.
Themes
Light and dark, following your system preference by default.

Running locally

Build the runtime first, then start the dashboard on loopback:

# 1) Build UAII
cmake --build build --target uaii uaii_bench --parallel

# Windows App Control frequently blocks unsigned .exe files. Build under WSL:
#   bash scripts/build_uaii_wsl.sh
#   bash scripts/test_generate_wsl.sh

# 2) Dashboard
cd dashboard
npm run install:all
npm run build && npm start
# → http://127.0.0.1:8787

# Development, with hot reload
npm run dev   # UI :5174 · API :8787

Helper scripts: dashboard/scripts/start-local.ps1 on Windows and dashboard/scripts/start-local.sh on Linux and macOS.

Self-hosting on a LAN or server

Required

Binding to any address other than loopback requires a token. The process refuses to start without one.

export UAII_DASH_TOKEN=$(openssl rand -hex 16)
export UAII_DASH_BIND=0.0.0.0
cd dashboard
./scripts/start-host.sh
# Open http://SERVER:8787 and unlock with the token

Docker:

export UAII_DASH_TOKEN=$(openssl rand -hex 16)
export UAII_HOST_BIN=$PWD/../build/libs/uaii-cli/uaii
export UAII_HOST_BENCH=$PWD/../build/benchmarks/uaii_bench
cd dashboard
docker compose up --build

Configuration

Copy dashboard/uaii-dash.example.json to uaii-dash.json, or set environment variables, which take precedence over the file. The default device is "backend": "auto"; an older config pinned to "cpu" keeps that value until you reset it in Settings. Bind address and port changes take effect after restarting the process.

VariableDefaultMeaning
UAII_BINauto-detect build treePath to uaii
UAII_BENCH_BINauto-detectPath to uaii_bench
UAII_MODEL_DIRdashboard/modelsModel library directory
UAII_DASH_BIND127.0.0.1Set to 0.0.0.0 to self-host
UAII_DASH_PORT8787HTTP port
UAII_DASH_TOKEN(empty)Required when the bind address is not loopback
UAII_GEMM / UAII_NUM_THREADSPassed through to CLI jobs
UAII_USE_WSL / UAII_WSL_BINauto on WindowsForce the WSL uaii binary when Windows App Control blocks the .exe
UAII_BACKENDautoDevice for chat and run jobs. auto uses a native GPU when available, or pin cpu, cuda, and so on
UAII_MAX_CONTEXT0Maximum session context for chat workers. The sliding KV window from the CLI preset still applies

Common workflows

  1. Verify the installOpen Chat, select the uaii-tiny-demo model, and run. Tokens stream immediately with no download.
  2. Run a Hugging Face modelOpen Models, choose Pull from Hub or Import HF folder, then switch to Chat, select the folder, and run with paging and device selection applied.
  3. Run a GGUF modelOpen Models, import a .gguf file, then switch to Chat, select it, set a token limit, and run.
  4. Check runtime healthOpen Runtime and run doctor.
  5. Measure performanceOpen Benchmarks and run the microbenchmark suite.
  6. Serve a teamSelf-host, then issue a Bearer token for /v1/chat/completions.

OpenAI-compatible clients

curl -s http://SERVER:8787/v1/models \
  -H "Authorization: Bearer $UAII_DASH_TOKEN"

curl -s http://SERVER:8787/v1/chat/completions \
  -H "Authorization: Bearer $UAII_DASH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model":"uaii-tiny-demo","messages":[{"role":"user","content":"hi"}]}'

# Reference a local file as "uaii-file-my-model.gguf"

Related

  • dashboard/README.md and docs/prd-dashboard.md in the repository
  • CLI — the generate and chat commands the console drives
  • Features — GGUF architecture coverage
  • Configuration — runtime and dashboard environment variables