MemoDocumentation
EN

Model Management — The Factory

The Factory is Memo's built-in model store. It provides a unified interface for discovering, downloading, and managing GGUF models — no terminal required.

Two-Panel Layout

┌──────────────────────────────┐  ┌──────────────────────────────┐
│  YOUR MODELS                 │  │  HUGGINGFACE CATALOGUE       │
│                              │  │                              │
│  ✓ llama-3.1-8b-instruct    │  │  🔍 Search models...         │
│    Q4_K_M · 4.9 GB · GPU    │  │                              │
│                              │  │  llama-3.2-3b-instruct       │
│  ✓ nomic-embed-text-v1.5    │  │  Q4_K_M · 2.0 GB · CPU       │
│    F32 · 548 MB · CPU       │  │  ⬇ Download                  │
│                              │  │                              │
│  ⬇ qwen2.5-7b-instruct      │  │  phi-4-mini-instruct         │
│    78% · 3.8 / 4.9 GB       │  │  Q4_0 · 2.4 GB · GPU        │
│                              │  │  ⬇ Download                  │
└──────────────────────────────┘  └──────────────────────────────┘
  • Left panel: Your installed models, each with quantization label, file size, and hardware compatibility badge
  • Right panel: Searchable HuggingFace model catalogue filtered for GGUF format

HuggingFace Model Search

The Factory queries the HuggingFace Hub API to surface compatible models:

  • Filter: Only models with GGUF files are shown
  • Sort: By downloads, recency, or name
  • Preview: Shows model card, parameter count, available quantizations
  • One-click download: Select a quantization and start downloading immediately

Background Download Manager

Downloads run in the background with full progress tracking:

  • Progress bar: Percentage and bytes downloaded / total size
  • Resume support: Interrupted downloads resume from the last byte
  • Concurrent downloads: Several models can download at once (previously a second download was rejected outright); combined progress is shown in the engine status bar
  • Download speed: Real-time MB/s indicator
  • Notifications: Desktop notification on completion
type DownloadState struct {
    ModelID    string  `json:"model_id"`
    FileName   string  `json:"file_name"`
    Progress   float64 `json:"progress"`    // 0.0 – 1.0
    Downloaded int64   `json:"downloaded"`  // bytes
    Total      int64   `json:"total"`       // bytes
    Speed      float64 `json:"speed"`       // bytes/sec
    Status     string  `json:"status"`      // downloading | completed | failed
}

System Diagnostics

On first launch, Memo runs hardware diagnostics to determine model compatibility:

Diagnostic Detection Method
NVIDIA VRAM nvidia-smi or CUDA library probe
AMD VRAM rocm-smi or ROCm library probe
System RAM OS-level memory query
Apple Metal MPS device check (macOS)
CPU Cores runtime.NumCPU()
Disk Space Filesystem stat for model directory

Hardware Compatibility Badges

Each model in the catalogue displays one or more badges:

Badge Meaning
GPU Can offload layers to NVIDIA/AMD GPU
Metal Compatible with Apple Metal acceleration
CPU Runs on CPU only
8 GB Minimum system RAM required
4 GB VRAM Recommended GPU memory

The badge is determined by comparing model size against detected hardware capabilities. Tool-calling and code-capability badges are derived from the model's actual chat template and tags, not a hardcoded list of "known" model families — more accurate for newer or less common models. The logo shown for a model reflects who actually made it, even for a requantized/repackaged upload.

Discover Tab & Filters

Discover's filters (Tools / Vision / Code / Embedding / Size) combine with OR instead of AND — selecting two used to often return nothing. Filters are grouped into multi-select dropdowns with an "N filters active · clear" indicator instead of a flat chip row. First-run setup also uses Discover's hardware detection to recommend a matching chat + memory model pair, with one button to start both downloading.

Context Size Guard

Local model context size used to be a free-text field with no upper bound — an unrealistic value could crash the model server. Memo now reads the model's real maximum context straight from the GGUF file and won't let the slider go past it.

Quantization Labels

GGUF quantization types are translated into plain-language descriptions:

GGUF Label Display Quality Speed
Q8_0 "Maximum quality" ★★★★★ ★★
Q6_K "Excellent quality" ★★★★ ★★★
Q5_K_M "Great quality, balanced" ★★★★ ★★★★
Q4_K_M "Great quality, fast" ★★★ ★★★★
Q4_0 "Good quality, very fast" ★★★ ★★★★★
Q3_K_M "Decent quality, fastest" ★★ ★★★★★
Q2_K "Low quality, maximum speed" ★★★★★
F16 "Unquantized, original" ★★★★★
F32 "Full precision" ★★★★★


Start with Q4_K_M for most models. It offers the best balance of quality, speed, and memory usage. Decrease quantization only if you need to fit a larger model into limited RAM.