No description
Find a file Use this template
Robin L. M. Cheung, MBA cd8ba0e3e1 fix(ci): proper ICO format for Windows + Android NDK/verbose build
Windows: regenerated icon.ico as real ICO (was PNG renamed to .ico)
Android: set NDK_HOME via GITHUB_ENV, verbose build, verify init output
2026-02-08 23:37:55 -05:00
.github/workflows fix(ci): proper ICO format for Windows + Android NDK/verbose build 2026-02-08 23:37:55 -05:00
.serena Correct ZIM header structure to match official specification and fix magic number, UUID field, and field naming across TypeScript implementation 2026-02-08 12:43:39 -05:00
AnZimmermanLIB docs: add Phase 11 'Talk to your ZIMs' voice conversation roadmap 2026-02-08 16:19:52 -05:00
DOCS Add comprehensive annotation system with voice, ink, text, photo, video, and highlighting capabilities 2026-02-08 11:45:40 -05:00
src feat: article browser in reader view 2026-02-08 16:36:11 -05:00
src-tauri fix(ci): proper ICO format for Windows + Android NDK/verbose build 2026-02-08 23:37:55 -05:00
.gitignore Add emergency ZIM library changes documentation to gitignore 2026-02-08 12:43:45 -05:00
build.ps1 Initial commit 2026-02-04 21:49:29 -05:00
build.sh Initial commit 2026-02-04 21:49:29 -05:00
CHECKLIST-downloader-annotator.md Add comprehensive annotation system with voice, ink, text, photo, video, and highlighting capabilities 2026-02-08 11:45:40 -05:00
CHECKLIST.md Add comprehensive annotation system with voice, ink, text, photo, video, and highlighting capabilities 2026-02-08 11:45:40 -05:00
CLAUDE.md Add comprehensive annotation system with voice, ink, text, photo, video, and highlighting capabilities 2026-02-08 11:45:40 -05:00
index.html Initial commit 2026-02-04 21:49:29 -05:00
LICENSE Initial commit 2026-02-04 21:49:29 -05:00
package-lock.json fix(ci): align tauri crate and CLI to 2.10.x, regenerate lock files 2026-02-08 15:09:03 -05:00
package.json Initial commit 2026-02-04 21:49:29 -05:00
postcss.config.js Initial commit 2026-02-04 21:49:29 -05:00
PR_DESCRIPTION.md Add Serena AI assistant configuration and document critical ZIM library fixes for magic number and directory reading 2026-02-08 12:10:37 -05:00
PROJECT_INDEX.json Add Serena AI assistant configuration and document critical ZIM library fixes for magic number and directory reading 2026-02-08 12:10:37 -05:00
PROJECT_INDEX.md Add Serena AI assistant configuration and document critical ZIM library fixes for magic number and directory reading 2026-02-08 12:10:37 -05:00
README.md Initial commit 2026-02-04 21:49:29 -05:00
tailwind.config.js Initial commit 2026-02-04 21:49:29 -05:00
tsconfig.json Initial commit 2026-02-04 21:49:29 -05:00
tsconfig.node.json Initial commit 2026-02-04 21:49:29 -05:00
vite.config.ts Initial commit 2026-02-04 21:49:29 -05:00
ZIM_LIBRARY_FIXES.md Add Serena AI assistant configuration and document critical ZIM library fixes for magic number and directory reading 2026-02-08 12:10:37 -05:00

Copyright (C) 20252026 Robin L. M. Cheung, MBA All rights reserved. Unauthorized use without prior written consent is strictly prohibited.

EnZIM — Offline ZIM Reader & Knowledge Assistant

Copyright (C) 2025-2026 Robin L. M. Cheung, MBA. All rights reserved.


EnZIM is an offline-first knowledge companion that transforms static ZIM archives (like Wikipedia) into an interactive, AI-powered exploration experience.


🌟 Features

Core Capabilities

  • 📚 Offline Article Reader — High-fidelity rendering of ZIM archives with full text, images, links, and styling
  • 📂 Library Management — Manage multiple ZIM archives with metadata display and easy switching
  • 🔍 Full-Text Search — Fast title and content search with result ranking and snippets
  • 🕸️ Semantic Mesh — Interactive 2.5D knowledge graph visualization of article relationships
  • Bookmarks & History — Persistent user data for quick access to favorite and recent content
  • 📝 Annotations — Highlights, text notes, voice notes, and ink drawings on articles
  • 🤖 AI Assistant — "Chat with ZIM" for natural language Q&A, summaries, and navigation guidance
  • 🔊 Text-to-Speech — Read articles aloud using system or bundled TTS engines

Platform Support

Platform Technology Status
Windows Tauri (Rust + WebView) Planned
macOS Tauri (Rust + WebView) Planned
Linux Tauri (Rust + WebView) Planned
Web (PWA) React + Service Worker Planned
Chrome Extension Manifest V3 Planned
Android Tauri Mobile Planned
iOS Tauri Mobile Future

Multi-Theme Support

EnZIM includes 9+ beautiful themes with Light/Dark/System auto modes:

Theme Aesthetic
Synaptic Cartography Veil Neon, glassmorphic, neural network
Brutalist Archive Monolith Bold, print-like, utilitarian
Prismatic Swiss Utility Clean Swiss design, multi-color
Spectral ZIM Reader Sci-fi, spectral glows
Kinetic Colorful, dynamic, Gumroad-inspired
Cyberpunk Neon-soaked dystopian
Neumorphism Soft shadows, extruded surfaces
Glassmorphism Frosted glass with depth
Minimal Clean Swiss design

🏗️ Architecture

EnZIM is built on the AnZimmermanLib clean-room ZIM library implementations, ensuring:

  • Proprietary Licensed — No GPL contamination
  • Multi-Language — Rust, TypeScript, Python, Go, PHP implementations
  • Cross-Platform — Single codebase for all platforms
  • Offline-First — All features work without internet
┌─────────────────────────────────────────────────────────┐
│                    EnZIM Application                     │
├─────────────────────────────────────────────────────────┤
│  Frontend Layer     │  React + TypeScript + Tailwind    │
├─────────────────────────────────────────────────────────┤
│  State Layer        │  Zustand (Global State Store)     │
├─────────────────────────────────────────────────────────┤
│  Service Layer      │  ZIM, Search, Semantic, AI, TTS   │
├─────────────────────────────────────────────────────────┤
│  Core Layer         │  AnZimmermanLib (Clean-Room ZIM)  │
└─────────────────────────────────────────────────────────┘

Full architecture documentation: DOCS/ARCHITECTURE/ARCHITECTURE.md


📁 Project Structure

EnZIMe/
├── AnZimmermanLIB/           # Clean-room ZIM library implementations
│   └── AnZimmermanLib/
│       ├── zimlib.py         # Python ZIM library
│       ├── zimlib.ts         # TypeScript ZIM library
│       ├── zimlib.go         # Go ZIM library
│       ├── zimlib.php        # PHP ZIM library
│       ├── api/              # REST API implementations
│       ├── TOOLS/            # zim-downloader, zimmer-extension
│       └── examples/         # Usage examples
├── DOCS/
│   ├── ARCHITECTURE/         # Architecture diagrams (.puml, .mmd)
│   │   ├── ARCHITECTURE.md   # Main architecture document
│   │   ├── *.puml            # PlantUML diagrams
│   │   └── *.mmd             # Mermaid diagrams
│   └── PLANNING/             # PRD and specification documents
├── CLAUDE.md                 # Agent configuration & dev guidelines
├── README.md                 # This file
└── CHECKLIST.md              # Development milestones (to be created)

🚀 Quick Start

Prerequisites

  • Node.js 18+ (for frontend development)
  • Rust 1.70+ (for Tauri desktop builds)
  • pnpm or npm (package manager)

Development Setup

# Clone the repository
git clone https://github.com/rebots-online/EnZIMe.git
cd EnZIMe

# Install dependencies (when frontend is set up)
pnpm install

# Run development server
pnpm dev

# Build for production
pnpm build

Using the AnZimmermanLib

Python

from AnZimmermanLIB.AnZimmermanLib.zimlib import ZIMReader, ZIMWriter, Namespace

# Read a ZIM file
with ZIMReader('wikipedia.zim') as reader:
    entry = reader.get_entry_by_path('A/Main_Page')
    content = reader.get_article_content(entry)
    print(content.decode('utf-8'))

TypeScript

import { ZIMReader, ZIMReaderBrowser } from './AnZimmermanLIB/AnZimmermanLib/zimlib';

// Node.js
const reader = new ZIMReader('wikipedia.zim');
reader.open();
const entry = reader.getEntryByPath('A/Main_Page');
const content = reader.getArticleContent(entry);
reader.close();

// Browser
const zimReader = new ZIMReaderBrowser(arrayBuffer);
await zimReader.open();
const article = await zimReader.getArticleContent(entry);

📖 Documentation

Document Purpose
CLAUDE.md Agent configuration, development rules, versioning
ARCHITECTURE.md System design, components, data models
AnZimmermanLib README ZIM library documentation
PRD Documents Product requirements and specifications

🎯 Development Guidelines

For AI agents and human developers, see CLAUDE.md for:

  • Operating mode and architecture-first principles
  • Required project artifacts
  • Attribution and versioning scheme
  • UI theming system requirements
  • Checklist conventions
  • PiecesOS MCP integration for long-term memory

Key Principles

  1. Architecture First — Do not begin coding until architecture is approved
  2. Living Documentation — Keep docs accurate and current
  3. Single Source of Truth — One checklist, one architecture spec
  4. Clean-Room — No GPL code contamination

📊 Development Roadmap

Milestone Features Target
M1: Core Reader MVP ZIM open, article rendering, basic nav Week 1-2
M2: Library & Search Multi-archive, title/full-text search Week 2-3
M3: Semantic Explorer Mesh view, graph navigation Week 3-4
M4: AI Assistant Chat interface, Q&A, summaries Week 4-5
M5: Production Performance, cross-platform, polish Week 5-6

🛠️ Technology Stack

Layer Technology
Frontend React 18, TypeScript, Tailwind CSS
State Zustand
Desktop Tauri 2.0 (Rust)
Mobile Tauri Mobile
Web Vite, Service Workers
ZIM Parsing AnZimmermanLib (Rust/TS/Python/Go/PHP)
Icons Lucide React
Diagrams PlantUML, Mermaid

📜 License

Copyright (C) 2025 Robin L. M. Cheung, MBA. All rights reserved.

This software is proprietary. No part of this Software may be reproduced, distributed, or transmitted in any form without prior written permission.

This is a clean-room implementation with no licensing contamination from existing GPL ZIM implementations.



👤 Author

Robin L. M. Cheung, MBA


EnZIM — Bringing offline knowledge to life.