kumulativ documentation
kumulativ is a family of three desktop apps for macOS and Windows, each built around a model that runs on your own machine:
- smartreader — read a PDF, EPUB, Word file or plain text, highlight the passage that lost you, and have it explained.
- smartwriter — say what you want to write and be questioned, given directions, read back against your own intent, or handed a draft.
- smartdiary — a private diary in one book, activities you tag as you go, companions that answer from your own words, and mentors that count what you said you wanted to do.
They share one thing besides a design language: the
model runtime. One store of weights and engines under
your user config directory, one llama-server started by whichever app first
needs it, at most one model resident across all of them, asleep after a quiet
minute. Install a second app and it finds the model already there.
What never happens
- Nothing you read, write or record leaves the machine. The apps make two outbound requests, ever: the inference engine from GitHub and the model weights from Hugging Face, once each. After that they work with the network off.
- There are no accounts. Nothing to sign into, nothing to leak.
- There is no telemetry. No analytics, no crash pings, no first-run beacon.
- There is no cloud model option. Not switched off — absent.
First run, in every app
- The app detects the machine — NVIDIA VRAM via
nvidia-smi, unified memory on Apple silicon, otherwise system RAM. - It picks the Qwen3.5 size that answers quickly on that hardware: the 9B where it fits, the 4B where it would not. A size already on disk is never downloaded again.
- It downloads the pinned llama.cpp release — the CUDA build on NVIDIA Windows machines, the CPU build elsewhere, with an automatic CPU fallback if the GPU engine will not start — and the weights, resumably, into the shared store.
- From then on the model loads on the first question and sleeps after a quiet minute.
Where things live
<UserConfigDir>/
kumulativ/ the shared store: models/, engines/, run/
smartreader/ the library index, extracted books, notes, settings
smartwriter/ pieces, sources, conversations, settings
smartdiary/ the sealed journal, its unlock parameters, images
<UserConfigDir> is ~/Library/Application Support on macOS and
%AppData% on Windows.
Environment variables shared by every app
| Variable | Effect |
|---|---|
KUMULATIV_HOME |
Move the shared store (portable installs, tests) |
KUMULATIV_BIN_DIR |
Look for a staged llama-server here first |
KUMULATIV_IDLE_UNLOAD_MIN |
Minutes of quiet before the server sleeps a model (default 1; 0 = never) |
KUMULATIV_LLAMA_ASSET / KUMULATIV_LLAMA_RELEASE |
Pin a different llama.cpp asset or release |
KUMULATIV_LLAMA_EXTRA_ARGS |
Extra flags appended to the server command line |
KUMULATIV_FORCE_CPU |
Never use the CUDA build |
KUMULATIV_NO_ENGINE_FETCH |
Refuse to download an engine |
KUMULATIV_DEBUG |
Forward the server’s output to stderr |
Each app also has <APP>_CONFIG_DIR to move its own data and <APP>_GGUF to
point it at a specific weights file.