ZIM 文件阅读与搜索工具

Zimi 是一款以 ZIM 文件为核心的离线知识库阅读与搜索工具,提供多应用界面、跨设备同步、ZIM 制作与分享,并支持 JSON API 和 MCP 服务器,适用于离线知识获取与 AI 代理接入。

  • by epheterson
  • JavaScript
  • 本地部署
  • 88 星标
  • 更新于
在 GitHub 查看 epheterson/Zimi

使用说明

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.

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