llmwiki
Local, cited search for an Obsidian vault, available as a command-line tool, an MCP server, and a plugin for Nous Hermes Agent.
Your Markdown remains the source of truth. llmwiki reads it, builds a private SQLite search index outside the vault, and combines keyword and semantic search to find the most useful sections. Results include vault-relative citations so you can open and verify the source.
Why use it?
- Local-first: indexing and search run on your machine after the embedding model is downloaded once.
- Your vault stays untouched: llmwiki never writes, moves, or deletes vault files.
- Better than one search method: BM25 keyword search and local vector search are combined by default.
- Useful results, not loose snippets: headings, page roles, project scope, wikilinks, and authority are preserved.
- Works with multiple agents: use the CLI directly, connect any MCP client, or add the native Hermes tools.
- No telemetry: queries, retrieved text, and conversation history are not sent to the project or persisted by llmwiki.
Status
Version 0.1.0 is the first public alpha release. The indexing, search, watcher, CLI, MCP, and Hermes-plugin paths are implemented and verified. Automatic context injection and the optional reranker remain opt-in while their release gates continue to be evaluated.
Install
Requirements: Python 3.11 or newer and SQLite with FTS5.
CLI and MCP
git clone https://github.com/TechZeph/llmwiki-rag.git
cd llmwiki-rag
./install.sh
The installer creates an isolated environment under
~/.local/share/llmwiki/venv, adds a launcher at
~/.local/bin/llmwiki, and starts interactive setup.
Hermes plugin
git clone https://github.com/TechZeph/llmwiki-rag.git
cd llmwiki-rag
./install.sh --hermes
hermes gateway restart
The plugin uses the vault selected during setup and keeps its index current in
the background by default. Set watch: false in the plugin settings to opt out.
It also bundles the llmwiki:using-llmwiki Hermes skill, which gives agents
retrieval guidance for profile selection, citations, related-page exploration,
freshness checks, and safe reindex behavior. Load it with
skill_view("llmwiki:using-llmwiki") when that guidance is useful.
Windows CLI and MCP installation, manual setup, upgrades, and uninstall steps are in the installation guide.
First use
If setup did not already run:
llmwiki init
init finds an Obsidian vault or creates a starter vault, saves the selection,
and builds the first index. The initial run downloads a local embedding model
and can take a while for a large vault; later updates index only changed pages.
Check the installation and search:
llmwiki doctor
llmwiki search --query "what decisions did we make about backups?"
llmwiki search --query "what changed this week?" --profile history --context
The default answer profile searches curated wiki pages. Other profiles target
one project (project:<id>), raw evidence (evidence), chronological logs
(history), or the whole vault for diagnostics (all).
Connect an MCP client
Run the server over stdio:
llmwiki mcp --watch
It exposes four tools:
llmwiki_search— cited hybrid retrieval.llmwiki_status— health, freshness, and index integrity.llmwiki_reindex— controlled incremental or confirmed full indexing.llmwiki_related— pages connected through links, mentions, or communities.
Client configuration examples are in the installation guide.
Documentation
Using llmwiki
- Installation
- Configuration
- Commands and tools
- Security and privacy
- Security reporting
- Operations and offline use
Contributing or building on llmwiki
Development material is kept separate from the user guide:
See the documentation index for the complete map. Development
documentation stays on main with the code so behavior and instructions cannot
drift; contributors work in normal fork or feature branches.
Privacy summary
The selected vault is read-only. The generated SQLite projection contains vault text and embeddings, so llmwiki stores it outside the vault with restrictive permissions on POSIX systems. It does not persist query history or conversation history and has no telemetry client. See Security and privacy before enabling automatic context injection.
License
MIT. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llmwiki_rag-0.1.0.tar.gz.
File metadata
- Download URL: llmwiki_rag-0.1.0.tar.gz
- Upload date:
- Size: 122.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9da226387a195f74ca181a1a92a7eb53afac202a92c65f9838667544fc873133
|
|
| MD5 |
206ec134bd87a3a47ae35d702e0ed6c9
|
|
| BLAKE2b-256 |
c61d23ed756faedc8e1004ea11454a2cf217f0d52c084c880fc75ba4c04a3e7b
|
Provenance
The following attestation bundles were made for llmwiki_rag-0.1.0.tar.gz:
Publisher:
publish.yml on TechZeph/llmwiki-rag
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llmwiki_rag-0.1.0.tar.gz -
Subject digest:
9da226387a195f74ca181a1a92a7eb53afac202a92c65f9838667544fc873133 - Sigstore transparency entry: 2701140624
- Sigstore integration time:
-
Permalink:
TechZeph/llmwiki-rag@453e4794dc6e90ce093019db97a598e0f10581aa -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/TechZeph
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@453e4794dc6e90ce093019db97a598e0f10581aa -
Trigger Event:
release
-
Statement type:
File details
Details for the file llmwiki_rag-0.1.0-py3-none-any.whl.
File metadata
- Download URL: llmwiki_rag-0.1.0-py3-none-any.whl
- Upload date:
- Size: 140.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89f401f4dea95eb2dc5119783d3dac2f977386cbc2ba3b573ff0d157a10e8984
|
|
| MD5 |
35af504c066a369c74a978aad60b4b27
|
|
| BLAKE2b-256 |
224f168a1081c0382f8730ca3c15c8bb1c300f0d7e041f6015fb2d739c73965a
|
Provenance
The following attestation bundles were made for llmwiki_rag-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on TechZeph/llmwiki-rag
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llmwiki_rag-0.1.0-py3-none-any.whl -
Subject digest:
89f401f4dea95eb2dc5119783d3dac2f977386cbc2ba3b573ff0d157a10e8984 - Sigstore transparency entry: 2701140638
- Sigstore integration time:
-
Permalink:
TechZeph/llmwiki-rag@453e4794dc6e90ce093019db97a598e0f10581aa -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/TechZeph
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@453e4794dc6e90ce093019db97a598e0f10581aa -
Trigger Event:
release
-
Statement type: