Skip to main content

Zimi

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

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-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.0

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.0
File Size Uploaded Provenance
zimi-1.14.0.tar.gz 16.4 MB Without provenance Details

Built distribution (wheel)

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

Total release size: 31.9 MB

Release files / zimi-1.14.0.tar.gz

Download URL zimi-1.14.0.tar.gz
Size 16.4 MB
Tags Source
SHA-256 checksum
How to use checksums
eae66924123f3c256c43ce08ee9f08e83e7cd6a19ff7067b2fe42f5f6ae778f9
BLAKE2b-256 checksum
How to use checksums
efa29881df0ae16a902cab7b2756a1ff27d31df93347d119a7a4b9842ad5e1ae
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.0-py3-none-any.whl

Download URL zimi-1.14.0-py3-none-any.whl
Size 15.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
48fd1f8533231573cfc770bed7a5ad97cb65a71bf47e9ce481773540c95ffc50
BLAKE2b-256 checksum
How to use checksums
8d3bc138d95dabe292fd27043ac0b8e688ae89d57feaa13d8f6f7c43487401ac
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.0

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.

Release history Release notifications | RSS feed

This release

1.14.0 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