ProviderUnavailableError or fine-tuning a large corpus workflow, this page covers the questions that come up most often. Each answer links out to deeper reference pages where relevant. If your question isn’t here, check the GitHub Issues tracker - it’s the best place to surface new problems and search prior reports.
What Node.js version does llmwiki require?
What Node.js version does llmwiki require?
llm-wiki-compiler@<0.5.0 until you can upgrade your runtime. Earlier versions supported Node 18 and above.Can I use llmwiki without an Anthropic API key?
Can I use llmwiki without an Anthropic API key?
claude-agent for automated compilation workloads.For Codex, run codex login, set LLMWIKI_PROVIDER=codex-agent, and set
LLMWIKI_EMBEDDING_PROVIDER. A missing binary or unusable login fails with a
Codex-specific error and never falls back to an API key.Codex Agent requires a compatible Codex CLI; the minimum verified version is
0.152.1. Update with npm install -g @openai/codex@latest if llmwiki reports
that the installed CLI does not support its required secure flags. Export Codex
Agent and embedding settings in the shell: explicit Codex selection bypasses
the project .env file so llmwiki never opens a file that may contain API keys.How do I switch providers mid-project?
How do I switch providers mid-project?
LLMWIKI_PROVIDER (and any required credentials for the new provider) and re-run compile. llmwiki’s incremental hash-based change detection means only sources whose content has changed since the last compile are sent through the LLM pipeline again - your existing pages are not lost or regenerated wholesale.Why does compile take a long time?
Why does compile take a long time?
- Switching to a faster model: set
LLMWIKI_MODELto a faster variant for your provider (e.g. a smaller Anthropic or Ollama model). - Checking per-concept truncation warnings: if many sources discuss the same topic, the prompt budget cap may be firing. Review stderr for truncation warnings and adjust
LLMWIKI_PROMPT_BUDGET_CHARSif needed. - Starting smaller: use
llmwiki quickstart <source>to ingest and compile a single source first, then add the rest incrementally.
The query isn't finding relevant pages - what can I do?
The query isn't finding relevant pages - what can I do?
llmwiki query uses a hybrid retrieval stack: semantic chunk embeddings narrow the candidate set, BM25 reranks it, and wikilink-graph expansion adds neighbors. If semantic retrieval isn’t working, results fall back to lexical (full-index BM25) selection.Check whether an embedding store exists:embeddings.bin or embeddings.json. Binary takes precedence when both exist. File presence alone does not prove the index is usable: embedding-store-unavailable means it could not be loaded. See storage recovery and limits.If both are missing, embeddings haven’t been built yet (they are created during compile when the provider supports them). Possible causes:- No embedding support on the active provider. The
copilotandclaude-agentproviders do not expose embedding endpoints. Forclaude-agent, setVOYAGE_API_KEYto enable semantic retrieval; forcopilot, switch to theopenaiprovider and supplyOPENAI_API_KEY. - Freshly initialized project. Run
llmwiki compileat least once to build both pages and embeddings.
Can I use llmwiki with Obsidian?
Can I use llmwiki with Obsidian?
wiki/ directory produced by llmwiki is Obsidian-compatible by design.[[wikilinks]]are generated in slug-based form ([[slug|Display Title]]) so Obsidian resolves the file directly, even when the display title differs from the slug.- Alias-aware resolution: a
[[term]]link resolves to any page that declarestermin itsaliasesfrontmatter, not just the page whose slug matches. This means links survive renames and synonyms - rename a page and declare the old name as an alias, and all existing links continue to work. - Tags and Map of Content: compiled pages carry LLM-extracted tags, and
wiki/MOC.mdgroups concept pages by tag for Obsidian’s graph view.
wiki/ (or the project root) as an Obsidian vault.How do I add sources in a different language?
How do I add sources in a different language?
--lang flag on compile to generate wiki content in a specific language:--lang flag wins over LLMWIKI_OUTPUT_LANG when both are set. The flag also works on llmwiki query to generate answers in the specified language. Unset, llmwiki produces output in whatever language the model derives naturally from your source material (typically English).What happens if I delete a source file from sources/?
What happens if I delete a source file from sources/?
.llmwiki/state.json against the current state of sources/ on disk. No recompile is needed to detect it.To see which pages are affected:How many sources can llmwiki handle?
How many sources can llmwiki handle?
- Semantic chunk retrieval (the v3 JSON or binary index) narrows hundreds of pages down to a small top-K via cosine similarity before any LLM selection, with BM25 reranking on top. Large stores automatically use binary storage to avoid the JSON size limit; binary limits still depend on dimensions and text size, and retrieval loads the index into memory.
- Incremental compilation means only changed sources re-run. Re-running on an unchanged large corpus takes seconds.
- Per-concept prompt budget (
LLMWIKI_PROMPT_BUDGET_CHARS, default200000) prevents popular shared concepts from exhausting the model’s context window. Each contributing source gets a fair share when the cap fires, with a truncation warning to stderr.
The viewer won't open on a remote server - how do I access it?
The viewer won't open on a remote server - how do I access it?
llmwiki view binds to 127.0.0.1 (loopback only). This is intentional - the viewer renders your local source files and wiki pages, and exposing it on a network interface requires an explicit opt-in.To allow access from another machine on your local network, you must provide both flags together:--allow-lan acts as an explicit acknowledgment that you intend to expose the server beyond loopback. Omitting either flag causes the server to fall back to 127.0.0.1.How do I gate CI on wiki quality?
How do I gate CI on wiki quality?
.llmwiki/eval/thresholds.yaml in your project with your minimum acceptable scores:llmwiki eval to your CI pipeline. It exits non-zero when any threshold is violated and lists the violations in the report:--suite full. The fast suite (no API key required) covers health score, citation coverage, citation precision, and corpus stats.For a deeper walkthrough of CI threshold configuration, see /guides/ci-quality-gates.What's the difference between llmwiki query and llmwiki context?
What's the difference between llmwiki query and llmwiki context?
llmwiki query when you want a direct answer. Use llmwiki context (or MCP get_context_pack) when you want to supply structured evidence to an agent or build your own reasoning layer on top.Both commands expose a --json flag for machine-readable output.Can I run llmwiki in watch mode to auto-recompile?
Can I run llmwiki in watch mode to auto-recompile?
llmwiki watch monitors your sources/ directory and automatically triggers an incremental recompile whenever a file changes:llmwiki compile, so only the files that actually changed are sent through the LLM pipeline. It’s useful during active research or writing sessions where you’re frequently updating or adding source files.