Sovereignty — no paper text leaves your machine.
Every routine that touches ~/Reading or your bib runs against a local Ollama model. Escalation to a frontier API is disabled by default for research routines.
route = "ollama" · enforcedvinOS runs open-source LLMs on your GPU via Ollama. No paper
uploaded to a server. No prompt logged by a third party.
Reproducible: pin the model, pin the routine, share the
.vinos/routines.yaml alongside your paper.
Sovereignty, reproducibility, ambient synthesis. Your reading pile turns into notes overnight — on your hardware, with a model you control.
Every routine that touches ~/Reading or your bib runs against a local Ollama model. Escalation to a frontier API is disabled by default for research routines.
route = "ollama" · enforcedModel tag and routine TOML pinned by SHA. vinos-routine run prints the exact model version, quantization, and seed on every invocation.
model = "qwen2.5:32b-instruct-q4_K_M" · pinned~/Reading for you.Long-context local model summarizes new PDFs, cross-links to your bib, and emits spaced-repetition cards. Wakes you up with the synthesis, not the pile.
research-recap · 22:00 nightlyTwo files. The routine (versioned in your paper's repo) and the
exact ollama pull to reproduce the model behind it.
[routine]
name = "research-recap"
schedule = "0 22 * * *" # nightly · 22:00 local
agent = "recap"
route = "ollama" # local only · never escalates
[model]
local = "qwen2.5:32b-instruct-q4_K_M" # 32B · 128k ctx · pinned
seed = 42 # for reproducibility
[tools]
allow = ["read:~/Reading", "read:~/Zotero", "shell:pandoc"]
[prompt]
system = """You synthesize the night's reading.
For each new PDF in ~/Reading since last run:
1. Two-paragraph summary.
2. Cross-links to prior papers in ~/Zotero (by DOI).
3. Three spaced-repetition Q/A pairs.
Cite the model version and today's date at the bottom."""
[out]
render = "markdown"
sink = "~/Notes/recap-{{date}}.md"
open_on_login = true
[budget]
max_tokens = 32000
max_dollars = 0.00 # local · no dollar cost# One-time: pull the 32B long-context local model.
$ ollama pull qwen2.5:32b-instruct-q4_K_M
pulling manifest ... 100%
digest: sha256:6c5f... · size: 19 GB
# Enable the routine.
$ vinos-routine enable research-recap
enabled · timer armed · next run: 22:00 today
# Verify what will run.
$ vinos-routine explain research-recap
routine: research-recap
model: qwen2.5:32b-instruct-q4_K_M (local · sha256:6c5f...)
route: ollama (frontier escalation disabled)
tools: read:~/Reading, read:~/Zotero, shell:pandoc
budget: 32000 tokens · $0.00 · local-onlyGPU + RAM sizing for local models: /models/. qwen2.5:32b at Q4 needs ~24 GB VRAM (or CPU + 32 GB system RAM at ~2 tok/s).
qwen2.5:32b-instruct-q4_K_M) and the SHA-256 of
the manifest is printed on every run. Cite the tag, the SHA, and
the routine's git commit; anyone with the same three can reproduce
your synthesis bit-for-bit given the same input files.zotero-cli) are in the standard bundle. Routines
can invoke any of them as a shell: tool — the recap
routine above uses pandoc to normalize PDFs before feeding them
to the model..vinos/routines.yaml in your paper's
repo and commit. Any collaborator who's booted vinOS runs
vinos-routine load . to install the same set. Pair
that with an ollama-models.lock file (list of tags
+ SHAs) for full reproducibility across machines.vinos-routine explain output as evidence of
the pipeline.Flash a USB, pull a model, enable the recap. Tomorrow morning the pile is a page of notes.
pacman -Rns vinos-*. No lock-in. MIT-licensed.