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.
- 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, 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.
- 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.
| Homepage | Search Results |
|---|---|
![]() |
![]() |
| Zimipedia | Bookshelf |
|---|---|
![]() |
![]() |
| Maps | ZimiTube |
|---|---|
![]() |
![]() |
| Reddot | Catalog |
|---|---|
![]() |
![]() |
| Sharing | Make a ZIM |
|---|---|
![]() |
![]() |
macOS
brew tap epheterson/zimi
brew trust --tap epheterson/zimi # Homebrew 6 and later
brew install --cask zimiLinux: 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 8899Two 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.
- 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.
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.
Issues and ideas are welcome, and every one gets answered. See CONTRIBUTING.md; security reports go privately per SECURITY.md.
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.









