Skip to content

everpcpc/KMReader

Repository files navigation

📚 KMReader

KMReader Icon

Native iOS, macOS, and tvOS client for Komga with comic and EPUB readers

iOS macOS tvOS Swift Xcode

Download on the App Store


✨ Highlights

  • Multi-server vault: Save unlimited Komga servers with password or API key authentication.
  • Cloud-drive-like offline: Background downloads with Live Activity on iOS. Offline policies (manual, latest, all) per series. Progress syncs when connection restores.
  • Browse + dashboards: Search, filters, grid/list layouts. Customizable dashboard sections per library.
  • Readers: DIVINA (LTR/RTL/vertical/Webtoon) with spreads, zoom, tap zones, and exports. EPUB with custom fonts/themes, pagination, TOC navigation, and incognito mode.
  • Admin tools: Metadata editing, scans, task management, and live metrics via SSE.
  • Caching: Three-tier caches (pages, books, thumbnails) with adjustable limits and auto-cleanup.

🧭 Overview

  • Shared SwiftUI scenes cover browsing, reading, dashboards, and admin tasks across iPhone, iPad, Mac, and Apple TV.
  • SwiftData stores Komga instances, libraries, and custom fonts so server profiles, cache budgets, and dashboard preferences stay local per device.
  • Services centralize API access, authentication, caching, SSE subscriptions, and error handling for consistent behavior on every platform.
  • Local storage keeps profiles, recent activity, and cached downloads so switching servers does not reset your state.

🚀 Getting Started

  1. Prerequisites: iOS 17.0+, macOS 14.0+, tvOS 17.0+, Xcode 15.0+.
  2. Clone and open the project:
    git clone https://github.com/everpcpc/KMReader.git
    cd KMReader
    open KMReader.xcodeproj
  3. Build and run on your target device or simulator, then enter your Komga server URL and credentials.

Build helpers (optional):

  • make build-ios, make build-macos, make build-tvos for device builds.
  • make build-ios-ci, make build-macos-ci, make build-tvos-ci for code-signing-free simulator builds.
  • make release archives/exports all platforms; see Makefile for archive/export targets.

tvOS currently supports DIVINA. EPUB and Webtoon modes are available on iOS/iPadOS/macOS.


🔌 Compatibility

  • Requires Komga 1.19.0 or later.
  • Works with Komga API v1 and v2 (authentication, libraries/series/books, reading progress/pages, collections, and read lists).
  • SSE keeps dashboards and task analytics synchronized with toggles for auto-refresh and connection notifications.

🛠️ Debugging

  • Verbose API logging is available in Xcode Console or Console.app (process Komga, subsystem Komga, category API).
  • Sample entry:
    📡 GET https://your-server.com/api/v2/users/me
    ✅ 200 GET https://your-server.com/api/v2/users/me (45.67ms)
    

🛣️ Roadmap

  • Handoff support
  • Live Text / automatic page translation

📄 License

Released under the terms of the LICENSE file.


💬 Discuss

Join the discussion on Discord.


Made with ❤️ for the Komga community ⭐ Star this repo if it helps you keep your library in sync!