Skip to main content

Zimi

CI Lighthouse Accessibility WCAG 2.1 AA i18n Docker Pulls PyPI License: GPL-3.0-or-later

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.

If you ❤️ Zimi, leave a ⭐️ to help others find it.

Use as much as you need:

  • Search for agents. pip install zimi-mcp searches and reads every ZIM over MCP. 280 KB.
  • A reader and library. ZIMI_APPS=0 zimi serve reads, 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: and in: 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
Homepage Search
Zimipedia Bookshelf
Zimipedia Bookshelf
Maps ZimiTube
Maps ZimiTube
Reddot Catalog
Reddot Catalog
Sharing Make a ZIM
Sharing Create

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.
  • Saved web pages: pages saved from Firefox, Chrome and Safari (complete, single file, web archive) as a ZIM.
  • 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.
  • Project NOMAD: read NOMAD's Information Library in Zimi without copying it, and an offline research agent over the same files.

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

GPL-3.0-or-later, like the Kiwix and openZIM libraries it builds on; 1.13.3 and earlier were 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.14.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zimi 1.14.1
File Size Uploaded Provenance Actions
zimi-1.14.1.tar.gz 16.4 MB Without provenance Details for zimi-1.14.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for zimi 1.14.1
File Interpreter ABI Platform Actions
zimi-1.14.1-py3-none-any.whl Python 3 none any Details for zimi-1.14.1-py3-none-any.whl

Total release size: 32.0 MB

Release files / zimi-1.14.1.tar.gz

Download URL zimi-1.14.1.tar.gz
Size 16.4 MB
Tags Source
SHA-256 checksum
How to use checksums
2252f1ae4f8350d34062f2dfd951843e0681651a062db4a2b49d01f15ecb7ec5
BLAKE2b-256 checksum
How to use checksums
87dc6471dafe95d1cdc76d8e19f07ef5524f791fb9fe290445a2a59de7b76c15
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.14.1-py3-none-any.whl

Download URL zimi-1.14.1-py3-none-any.whl
Size 15.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
01717b47c5b84a9ce2bbaef331f99e72e55eb5756a4c14f5dfad712c16219f39
BLAKE2b-256 checksum
How to use checksums
39e9d80b05989c1b9ac1ec3b1a714c6ccfab06e6b213dc8633b0de613c3ad439
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for zimi 1.14.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.14.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page