Zimi
A modern experience for your ZIM files.
Kiwix packages the world's knowledge into ZIM files. Zimi makes them feel like the real internet with a rich web UI, fast JSON API, and an MCP server for AI agents. Everything works offline, in your language.
Use as much as you need:
- Search for agents.
pip install zimi-mcpsearches and reads every ZIM over MCP. 280 KB. - A reader and library.
ZIMI_APPS=0 zimi servereads, searches and manages your ZIMs, nothing more. - The whole app. Everything below.
What it does
- Search everything. One query across every ZIM, 100M+ articles, with
-word,"exact words",OR,lang:andin:when you need them. - Apps over your library. Zimipedia for every wiki, the Dictionary for every Wiktionary, Bookshelf for every book, ZimiTube for video, ZimiExchange for Q&A, Reddot for subreddits, and offline street Maps.
- Keep what you find. Bookmarks, lists, likes and highlights in every app, synced across devices when you sign in.
- A real library. The whole Kiwix catalog one click away, even offline, with auto-updates and BitTorrent downloads that seed back.
- Make your own ZIMs. A web page, a whole site, a video playlist, a subreddit, a web archive or a folder of your files.
- Share on your network. Zimi devices find each other and pass ZIMs at LAN speed.
- Every language. Articles across languages by Wikidata ID; ten UI languages, right-to-left included; offline voices.
- For people and agents. Web app, JSON API and an MCP server. Runs on Docker, Podman, pip, macOS, Windows, Linux, or your phone as a PWA.
Screenshots
| Homepage | Search Results |
|---|---|
| Zimipedia | Bookshelf |
|---|---|
| Maps | ZimiTube |
|---|---|
| Reddot | Catalog |
|---|---|
| Sharing | Make a ZIM |
|---|---|
Install
macOS
brew tap epheterson/zimi
brew trust --tap epheterson/zimi # Homebrew 6 and later
brew install --cask zimi
Linux: sudo snap install zimi, or the AppImage (it updates itself; the window needs WebKitGTK 4.1 from your distro, otherwise Zimi opens in your browser).
Windows: the installer or portable zip from Releases.
Docker
docker run --network host -v ./zims:/zims -v ./zimi-config:/config epheterson/zimi
/zims holds your ZIM files, /config keeps settings and indexes. Open http://localhost:8899. Host networking lets LAN discovery and seeding work; for bridge mode, Compose, rootless Podman and Kubernetes see operations and networking.
Python
pip install zimi
ZIM_DIR=./zims zimi serve --port 8899
Two packages: pip install zimi is the complete experience; pip install zimi-mcp is only the MCP server and search, for AI agents (280 KB, no web app).
Most people configure nothing. Everything is in Settings; zimi config prints every effective value and where it came from, and each ZIMI_* variable is documented in the guides below.
Documentation
- Reading: search, the reader, Reader View, find in page, languages, PDFs, offline use.
- Apps: Zimipedia, Bookshelf, ZimiTube, ZimiExchange, Reddot and Maps.
- Saving: bookmarks, lists, likes, highlights, sync.
- Making ZIMs: every capture mode, folders and their metadata files, web archives.
- Getting & sharing: the catalog, downloads, auto-update, BitTorrent, Nearby.
- Access: public access, accounts, per-ZIM allowlists, single sign-on.
- Operations: configuration, backup, air-gapped use, monitoring, updates.
- API & MCP: the JSON API (
/openapi.json), RAG chunks, the MCP server and its tools.
MCP server
pip install zimi-mcp
zimi-mcp /path/to/zims
{
"mcpServers": {
"zimi": { "command": "zimi-mcp", "args": ["/path/to/zims"] }
}
}
zimi-mcp is the MCP server and search alone, built from this repository and released with it. pip install "zimi[mcp]" gives the full install the same command, and zimi mcp. Three tools by default (search, read a page as Markdown, read one section), about 360 tokens of schema, sized for small local models; --tools full serves every tool. No web server is started. For Docker on another machine, run docker exec -i zimi python3 -m zimi mcp over ssh. See API & MCP for the tools and measured numbers, and the SearXNG and OpenWebUI guides.
Contributing
Issues and ideas are welcome, and every one gets answered. See CONTRIBUTING.md; security reports go privately per SECURITY.md.
License
MIT. Desktop and Docker builds bundle libtorrent-rasterbar (BSD-3-Clause), see THIRD_PARTY_NOTICES.md.
Built with ❤️ in California by @epheterson and Claude Code.
Metadata
Release files for zimi 1.13.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zimi-1.13.2.tar.gz | 14.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zimi-1.13.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.0 MB
Release files / zimi-1.13.2.tar.gz
| Download URL | zimi-1.13.2.tar.gz |
|---|---|
| Size | 14.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
18ec99fc436f21febcd903c743b885e3c923310bcd59b97910abaa442234ba70
|
|
BLAKE2b-256 checksum How to use checksums |
d6930a66da24503ac0e1e19d1ee9de49146a21b557399fc647066fe07bf34c83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / zimi-1.13.2-py3-none-any.whl
| Download URL | zimi-1.13.2-py3-none-any.whl |
|---|---|
| Size | 14.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e1f467b66cf32e7b64ef4fd21b034edfd3352f44956e6a3bfd1e65b417b8361
|
|
BLAKE2b-256 checksum How to use checksums |
738b1c0ceba639583dd74e6cde670142fdd2a6d31290d8050e653b167536c140
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|