Ctrl K
ComunidadGuías…

PRODUCT.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Product

<!-- impeccable:product-schema 1 -->

## Platform

web

(One Svelte bundle, served by the Go binary to a browser tab and to a frameless WebView2 app window
on Windows. The app window is a wrapper around the same web UI, not a native design language.)

## Users

Two audiences, one per app. Neither app compromises for the other's user.

- **The operator** uses the **dashboard** (main listen port). The technical person who owns the box:
  runs local models on their own GPU, tunes them, points tools like Claude Code, Open WebUI and the
  SDKs at the API. Often glancing at the dashboard while something else is running.
- **Household members** use the **playground** (its own port, login per person). People who know
  ChatGPT and nothing else, and have never heard of a GGUF. They chat, search the web, make pictures
  and use voice, from a phone or a laptop on the home network.

## Product Purpose

An all-in-one local inference platform: point it at a models folder and it works out what fits in
VRAM, launches each model with computed flags, and hot-swaps between them on demand behind one
OpenAI- and Anthropic-compatible API. It also ships its own chat app, a private ChatGPT for the
household.

Success for the operator: any model runs without hand-tuning a flag, and the dashboard shows what
the box is doing instead of a log to tail. Success for a household member: it works like the chat
apps they already know, and their conversations stay on the home computer.

## Positioning

Built for the box that runs several models, of different kinds (text, image, video, 3D, speech), on a
fixed amount of VRAM, with ONE shared scheduler accounting for all of it. Ollama and LM Studio are
good at getting one model running; Quartermaster computes context, offload and KV sizing per model
from the GGUF header and measured free VRAM, and orchestrates the inference servers the operator
already trusts (llama-server, stable-diffusion.cpp, whisper.cpp, vLLM, ...) rather than running
models itself.

## Operating Context

- Runs on the operator's own machine, reached over the LAN. Often a box with no internet access.
- Dashboard: desktop browser or the Windows app window, at a user-chosen interface scale, dark or
  light. Desktop only.
- Playground: any browser on the network, **including phones**. Login-gated, server-backed history
  per user.
- One GPU is often shared: the operator's agents and the household's chats hand models back and
  forth, so loading, eviction and swap state are part of what users see.
- Help ships inside the app (the wiki behind the sidebar Help button); the playground assistant can
  search it as a tool.

## Capabilities and Constraints

- **Offline / LAN-only:** nothing may be fetched at runtime (fonts, scripts, images are bundled).
- **No telemetry:** no analytics, tracking or phoning home, in the UI or anywhere else.
- **Plain-language playground:** every word in the playground must make sense to someone who only
  knows ChatGPT. No GGUF / quant / KV / offload jargon there. Technical vocabulary is fine, and
  expected, on the dashboard.
- **Mobile:** the playground must be fully usable on a phone. The dashboard does not need to be.
- Terminology: a "model" row in the catalog is one runnable configuration; quants, context tiers and
  `-vision` twins of the same weights are variants of one model. "Listener" is a port with its own
  model catalog.

## Brand Commitments

- Name: **Quartermaster**. Mark: the helm (`ui-svelte/public/favicon.svg`, `QmMark`).
- Tagline: "Run any model without tuning a single flag." Sub-line: "Chat, images and voice, all on
  one machine."
- Voice: plain, specific, first-person-honest ("A config file I got tired of writing"). States what
  it does and where it differs, checked claims, no hype.
- Copy rule: **no em dashes**, in UI copy or docs. Use a colon, comma or parentheses.

## Evidence on Hand

- Screenshots: `docs/assets/` (dashboard, model config, social preview), regenerated by
  `npm run shots` in `ui-svelte/`.
- Landing copy: `ui-svelte/site/content.mjs`, including a comparison with Ollama and LM Studio
  checked against their docs (September 2026).
- User guide: the help wiki (`internal/server/wiki_articles.json`, rendered to `docs/`).
- **None of these exist, do not fabricate them:** testimonials, customer names, user counts, press,
  benchmark claims beyond what the repo documents.

## Product Principles

1. **Compute it, then hand over the pen.** Defaults are derived from the hardware and the model;
   every computed value stays visible and overridable.
2. **Show the machine, not a log.** State (loaded, loading, evicted, VRAM, throughput) is surfaced
   where the user is looking, as it happens.
3. **Two users, two apps.** The operator gets density and precision; the household gets something
   that feels like the chat app they already use. Do not leak one app's vocabulary into the other.
4. **Private by construction.** Local, offline-capable, no telemetry, a login per person.

## Accessibility & Inclusion

- Interface scale is a product feature (the app window has no browser zoom): layouts must hold at
  every scale step.
- Motion honours `prefers-reduced-motion`; every control shows a keyboard focus ring.