Dependencies
Requires Python 3.8+ and at least one CLI installed: copilot, claude, or gemini.
pip install -r requirements.txt
Obsidian RLM Distiller
Status: Active
Author: Richard Fremmerlid
Domain: Obsidian Wiki Engine
Replaces: rlm-distill-ollama (fully deprecated)
Purpose
Distills registered wiki source files into the three-layer RLM summary structure
inside {wiki_root}/rlm/{concept}/. Delegates work to the cheapest available
LLM CLI — never a local Ollama server.
Cheap-Model Fallback Chain (Strict)
1. copilot CLI available? → use gpt-5-mini (fastest, Paid - AI Credits)
2. claude CLI available? → use claude-haiku-4-5 (fallback, Paid)
3. gemini CLI available? → use gemini-3-flash-preview (final fallback, Paid)
4. none found → exit with instructions
rlm-distill-ollamais fully deprecated. Onlyrlm-distill-agentpointing at cheap cloud models is supported.
Output: Three-Layer RLM Structure
{wiki_root}/rlm/{concept}/
summary.md ← 1-5 sentence distilled summary
bullets.md ← key idea bullets (6-10 points)
deep.md ← full multi-pass distillation
Usage
Distill all stale wiki nodes
python ./scripts/distill_wiki.py --wiki-root /path/to/wiki-root
Distill one named source
python ./scripts/distill_wiki.py --wiki-root /path/to/wiki-root --source arch-docs
Force engine override
python ./scripts/distill_wiki.py --wiki-root /path/to/wiki-root --engine claude
python ./scripts/distill_wiki.py --wiki-root /path/to/wiki-root --engine gemini
python ./scripts/distill_wiki.py --wiki-root /path/to/wiki-root --engine copilot
Use shared .agent/learning/ cache (colocates with rlm-factory)
python ./scripts/distill_wiki.py --wiki-root /path/to/wiki-root \
--rlm-cache-dir /path/to/project/.agent/learning/rlm_wiki_cache
Dry run
python ./scripts/distill_wiki.py --wiki-root /path/to/wiki-root --dry-run
Engine Detection Logic
distill_wiki.py calls shutil.which() for each CLI in priority order.
The first one found and authenticated is used for the entire batch:
ENGINE_PRIORITY = [
("copilot", "gpt-5-mini"),
("claude", "claude-haiku-4-5"),
("gemini", "gemini-3-flash-preview"),
]
RLM Cache Storage
distill_wiki.py writes summaries directly into its own RLM cache directory.
No cross-plugin script execution — instead, inter-plugin coordination routes through agent skill delegation.
Default cache: {wiki-root}/rlm/{concept}/
To colocate with rlm-factory under .agent/learning/, pass --rlm-cache-dir:
python ./scripts/distill_wiki.py --wiki-root /path/to/wiki-root \
--rlm-cache-dir /path/to/project/.agent/learning/rlm_wiki_cache
The cache location is determined by configuration in .agent/learning/rlm_profiles.json
(the cache key of the wiki profile) — not by hard-coded cross-plugin paths.
When to Use
- After
/wiki-ingestpopulates new wiki nodes - When RLM summaries are missing or stale
- Before running
/wiki-queryfor optimal recall - As part of the
/wiki-rebuildfull pipeline
Related Scripts
distill_wiki.py— cheap-model fallback orchestratorraw_manifest.py—WikiSourceConfigloaderaudit.py— identifies stale/missing RLM summaries