Expose offline wiki and stack exchange archives to llms.
Project description
llm-tools-kiwix
Expose offline Kiwix ZIM archives (like Wikipedia, Stack Exchange, DevDocs) to Large Language Models (LLMs) via the LLM CLI tool and Python library. This plugin allows LLMs to search and read content from your local ZIM files.
Key Features
- Automatic ZIM File Discovery: Finds
.zimfiles in the current working directory and in the directory specified by theKIWIX_HOMEenvironment variable. - Dynamic Tool Descriptions: Tool descriptions are automatically updated with the list of discovered ZIM files, guiding the LLM on what's available.
- Offline Content Access: Enables LLMs to access information from ZIM archives without an internet connection.
- Multiple Tools:
kiwix_search_and_collect: Searches a ZIM file and returns the content of matching articles. (Most commonly used)kiwix_search: Performs a search and returns metadata and article paths.kiwix_read: Reads the content of a specific article path.
Installation
Install this plugin in the same environment as LLM.
llm install llm-tools-kiwix
Usage
-
Download ZIM Files: Obtain ZIM files from Kiwix Downloads or other sources. For example, you might download:
wikipedia_en_all_nopic_2023-10.zimdevdocs_en_docker_2025-04.zimaskubuntu.com_en_all_2024-10.zim
-
Place ZIM Files: Put the downloaded
.zimfiles in:- The directory where you'll be running your
llmcommands or Python scripts (current working directory). - The directory specified by the
KIWIX_HOMEenvironment variable, if set. The plugin will automatically detect files from these locations.
Example (based on your provided snippet):
# In your project directory ls *.zim # Expected output (if files are in current directory): # askubuntu.com_en_all_2024-10.zim devdocs_en_docker_2025-04.zim devdocs_en_scala_2025-04.zim
- The directory where you'll be running your
-
Discovering Tools and Available ZIMs: You can see the tools provided by this plugin and which ZIM files they've detected by running:
llm tools list
This will show entries like
kiwix_search_and_collect, and its description will include a line similar to:Available ZIM files for 'zim_file_path' argument: ./askubuntu.com_en_all_2024-10.zim, ./devdocs_en_docker_2025-04.zim, ...The tool's full description will also detail the format of its output.
Command-Line Interface (CLI) Example
You can instruct an LLM to use these tools directly from the command line. For example, if you want to find information about fixing a rootless Docker installation error using your devdocs_en_docker_2025-04.zim file:
llm -m gpt-4o-mini --tool kiwix_search_and_collect \
"I'm getting a permission error while trying to run Docker in rootless mode. \
Please search and provide relevant information from the Docker devdocs." \
--tools-debug
- Replace
gpt-4o-miniwith your desired model. - The LLM will use the prompt to identify that it needs to call the
kiwix_search_and_collecttool. - It will extract
zim_file_path: "devdocs_en_docker_2025-04.zim"(or another relevant ZIM file from the available list) andsearch_string: "docker rootless permission error"(or similar) as arguments for the tool. --tools-debug(optional) shows the tool calls and responses.
The LLM will then receive the search results (content from the ZIM file) and use that to formulate its answer.
Development
To set up this plugin locally, first check out the code. Then create a new virtual environment:
cd llm-tools-kiwix
python -m venv venv
source venv/bin/activate
# On Windows: venv\Scripts\activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
python -m pytest
Make sure you have some .zim files in the project root, or in a directory specified by KIWIX_HOME, or mock the ZIM interactions appropriately for tests to run against.
Project details
Release history Release notifications | RSS feed
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 llm_tools_kiwix-0.1.tar.gz.
File metadata
- Download URL: llm_tools_kiwix-0.1.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5601c1ae35e8d34e1dd79d22cda9aa8ef986bc2192d370e78013e6abc65ab899
|
|
| MD5 |
96aa4feab5ed73ae815d9bc1edf6821d
|
|
| BLAKE2b-256 |
a8cc3774b8a51e70706e8def0c394935258a668f53d21866cd8050924bd0389d
|
Provenance
The following attestation bundles were made for llm_tools_kiwix-0.1.tar.gz:
Publisher:
publish.yml on mozanunal/llm-tools-kiwix
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llm_tools_kiwix-0.1.tar.gz -
Subject digest:
5601c1ae35e8d34e1dd79d22cda9aa8ef986bc2192d370e78013e6abc65ab899 - Sigstore transparency entry: 229777211
- Sigstore integration time:
-
Permalink:
mozanunal/llm-tools-kiwix@c0c6173d37ad8c977902530975fe41751aab50a5 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/mozanunal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c0c6173d37ad8c977902530975fe41751aab50a5 -
Trigger Event:
release
-
Statement type:
File details
Details for the file llm_tools_kiwix-0.1-py3-none-any.whl.
File metadata
- Download URL: llm_tools_kiwix-0.1-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3d58d431b01b9dfe8ef6c1d5a3fa410af32f7de126448c79a43134a8368035c
|
|
| MD5 |
c544a13fbfc68d6b4e2d598a53c42162
|
|
| BLAKE2b-256 |
49d8922e5f00e5856ed8618a13fd411ca6840f16e631dfefd9ee7f4d7e58c16e
|
Provenance
The following attestation bundles were made for llm_tools_kiwix-0.1-py3-none-any.whl:
Publisher:
publish.yml on mozanunal/llm-tools-kiwix
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llm_tools_kiwix-0.1-py3-none-any.whl -
Subject digest:
c3d58d431b01b9dfe8ef6c1d5a3fa410af32f7de126448c79a43134a8368035c - Sigstore transparency entry: 229777212
- Sigstore integration time:
-
Permalink:
mozanunal/llm-tools-kiwix@c0c6173d37ad8c977902530975fe41751aab50a5 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/mozanunal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c0c6173d37ad8c977902530975fe41751aab50a5 -
Trigger Event:
release
-
Statement type: