Skip to content

Shared files

Plotweaver shares runtimes and model files with the other Voxprint apps. The installer checks what is already there and fills the gaps before the first book. A later launch runs voxprint-mdl verify --repair --app plotweaver, then opens only when the required files are present at the expected size.

Location

VOXPRINT_HOME replaces the Voxprint directory when it is set. Otherwise:

System Shared folder
Windows %LOCALAPPDATA%\Voxprint\shared\
Linux $XDG_DATA_HOME/voxprint/shared or ~/.local/share/voxprint/shared

Inside that folder:

Directory Contents
runtime/ Python, llama.cpp b11476 Vulkan, llama.cpp b11476 CUDA
models/llm/ GGUF weights
tools/ Reserved for shared helper programs
manifest.json Which apps use each resource

PLOTWEAVER_MODELS still overrides the model folder. PLOTWEAVER_LLAMA_DIR overrides the Vulkan tree.

Manifest

manifest.json is schema 1: schema and components. A component has kind, version, path (relative to the shared folder), sha256, installed_at, and refs. Plotweaver also stores files (name to SHA-256), bytes, and source on the component. An older file with version and resources is rewritten to schema 1 the first time it is read. Refs that belong to other apps are kept.

{
  "schema": 1,
  "components": {
    "gemma-4-12b-it-q4": {
      "kind": "model",
      "version": "1",
      "path": "models/llm/gemma-4-12b-it-Q4_K_M.gguf",
      "sha256": "<sha256>",
      "installed_at": "2026-10-11T12:00:00+00:00",
      "refs": ["audiobook-builder", "plotweaver"],
      "bytes": 7121861440,
      "files": {"gemma-4-12b-it-Q4_K_M.gguf": "<sha256>"},
      "source": "unsloth/gemma-4-12b-it-GGUF"
    }
  }
}

Removing Plotweaver runs plotweaver release-shared. That drops plotweaver from each component through voxprint-common and deletes a shared file only when that call leaves refs empty. A component Audiobook Builder still lists is left in place. models/, runtime/, voices/, cache/, and the suite home are never one component and are never deleted. Plotweaver's own refuse-list runs first, then voxprint-common's guard. Launch repair runs voxprint-mdl verify --repair --app plotweaver, which clears a dangerous manifest path and does not delete those bytes. Uninstall removes the program folder only.

Model weights

Plotweaver stores GGUF files under the suite models root from voxprint-common, <home>/models/llm. On Windows that is %LOCALAPPDATA%\Voxprint\models\llm. On Linux it is ~/.local/share/voxprint/models/llm. PLOTWEAVER_MODELS and VOXPRINT_MODELS_DIR override it. A matching file already in shared/models/llm from an older Plotweaver install is hard-linked and not downloaded again. Audiobook Builder copies in the same <home>/models/llm folder are reused. Plotweaver still writes plotweaver: true in <home>/models/.users.json. The older file is not deleted.

What the installer checks

  1. Python 3.14, copied from the app bundle or recorded from the interpreter that is already running.
  2. llama.cpp b11476 Vulkan. The copy shipped beside the app is reused. Otherwise the pinned archive is downloaded.
  3. llama.cpp b11476 CUDA, when the NVIDIA driver is new enough: 570.117 or newer on Linux, 551.61 or newer on Windows. Those floors are the CUDA toolkit drivers paired with the pinned builds (CUDA 12.8 on Linux, CUDA 12.4 on Windows).
  4. The stock models for the detected VRAM tier.

An older driver does not stop the install. The message names the installed version, the minimum, and https://www.nvidia.com/Download/index.aspx. The app then uses the Vulkan runtime.

Least-censored models are not part of this set. Settings downloads them when the user turns the feature on. The window shows the file size and a time estimate, then a remaining-time line while the bytes arrive.

Checks after install

Every launch of the window and every real plotweaver run call voxprint-mdl verify --repair --app plotweaver, then open only when ready('plotweaver') is true. That repair clears a dangerous manifest path and does not delete the shared bytes. plotweaver --selftest --json still checks the bundled runtime copy. The window shows a progress dialog. Failures are one sentence, not a traceback.