PHPackages                             mikespub/codedread-kthoom - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mikespub/codedread-kthoom

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mikespub/codedread-kthoom
=========================

Comic Book Reader in the Browser

2026.1.24(5mo ago)0561MITJavaScriptCI passing

Since Oct 10Pushed 5mo agoCompare

[ Source](https://github.com/mikespub-org/codedread-kthoom)[ Packagist](https://packagist.org/packages/mikespub/codedread-kthoom)[ RSS](/packages/mikespub-codedread-kthoom/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (4)Used By (1)

[![Node.js CI](https://github.com/codedread/kthoom/actions/workflows/node.js.yml/badge.svg)](https://github.com/codedread/kthoom/actions/workflows/node.js.yml)[![CodeQL](https://github.com/starnowski/posmulten/workflows/CodeQL/badge.svg)](https://github.com/codedread/kthoom/actions/workflows/codeql-analysis.yml)

kthoom
======

[](#kthoom)

[![kthoom logo](images/logo.svg)](images/logo.svg)

kthoom is a comic book / ebook reader that runs in the browser using modern web technologies such as JavaScript, HTML5, the [File System Access API](https://wicg.github.io/file-system-access/), ES Modules, Web Workers, Typed Arrays, and more. It can open files and directories from your local file system, the network, or Google Drive. It can be embedded in larger web apps.

It is built using pure JavaScript with no external dependencies and no JS frameworks. It can run out of the box without any build / compile / transpile / pack step, straight from the browser. Try it here:

[OPEN KTHOOM COMIC BOOK READER](https://codedread.com/kthoom/index.html).

You can also specify a comic book to load via the ?bookUri parameter. Some examples:

-
-

Or a [comic book reading list](https://github.com/codedread/kthoom/tree/master/reading-lists) via the ?readingListUri parameter.

About this fork
---------------

[](#about-this-fork)

This fork is only used to create packages for use in other projects.

The [code/ files](code/) are available as:

- PHP composer package: [mikespub/codedread-kthoom](https://packagist.org/packages/mikespub/codedread-kthoom), or
- NPM javascript package: see kthoom

Documentation
-------------

[](#documentation)

### File Support

[](#file-support)

- .cbz (zip)
- .cbr ([rar](https://codedread.github.io/bitjs/docs/unrar.html))
- .cbt (tar)
- .epub (Alpha-level support, a work-in-progress, see [issue list](https://github.com/codedread/kthoom/labels/epub))

### Keyboard Shortcuts

[](#keyboard-shortcuts)

- O / D / U: Open books by choosing files/directories from computer or by URL.
- Right/Left: Next/Previous page of book.
- Shift + Right/Left: Last/First page of book.
- \[ / \]: Prev / Next book
- H/W: Scale to height/width
- B: Best Fit mode
- R/L: Rotate right/left
- 1/2: Show 1 or 2 pages side-by-side in the viewer.
- 3: Long Strip viewer.
- F: Toggle fullscreen.
- P: Hide metadata viewer and reading stack panel buttons.
- S: Toggle the Reading Stack tray open.
- T: Toggle the Metadata Tag Viewer tray open.
- ?: Bring up Help screen

You can tell kthoom to open as many books as you like in the Choose Files dialog (shift-select all the books you want to open). Then navigate between books using the square bracket keys or use the Reading Stack tray.

### Binary File Support

[](#binary-file-support)

NOTE: kthoom loads in local compressed files and decompresses them in the browser, which means that kthoom has an implementation of unzip, unrar and untar in JavaScript. This code lives in its own library: [BitJS](https://github.com/codedread/bitjs), a more general purpose library to deal with binary file data in native JavaScript. Kthoom keeps an up-to-date version of bitjs in its repository.

### JSON Reading Lists

[](#json-reading-lists)

kthoom supports loading lists of comic book files at once. Think audio playlists but for comic books! See [JSON Reading Lists](https://github.com/codedread/kthoom/tree/master/reading-lists) for more.

### URL parameters

[](#url-parameters)

- alwaysOptimizedForStreaming=true: Tells kthoom to render pages immediately as they are de-compressed (this might not work for all comic books as some are not compressed in the order of reading)
- bookUri=&lt;url&gt;: Tells kthoom to open the given book (cbz/cbr file).
- doNotPromptOnClose=true: Tells kthoom not to ask the user if they are sure they want to close.
- preventUserOpeningBooks=true: Prevents users from opening files in kthoom (useful for hosting kthoom from a web app).
- readingListUri=&lt;url&gt;: Tells kthoom to load the given JSON Reading List (jrl) file and open the first file in that list.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance72

Regular maintenance activity

Popularity11

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 64.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~53 days

Total

3

Last Release

160d ago

Major Versions

2025.11.22 → 2026.1.242026-01-24

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1447115?v=4)[Mike's Pub](/maintainers/mikespub)[@mikespub](https://github.com/mikespub)

---

Top Contributors

[![codedread](https://avatars.githubusercontent.com/u/100364?v=4)](https://github.com/codedread "codedread (522 commits)")[![ProgramComputer](https://avatars.githubusercontent.com/u/22284856?v=4)](https://github.com/ProgramComputer "ProgramComputer (234 commits)")[![antimatter15](https://avatars.githubusercontent.com/u/30054?v=4)](https://github.com/antimatter15 "antimatter15 (31 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (13 commits)")[![mikespub](https://avatars.githubusercontent.com/u/1447115?v=4)](https://github.com/mikespub "mikespub (3 commits)")[![barais](https://avatars.githubusercontent.com/u/598311?v=4)](https://github.com/barais "barais (2 commits)")[![jphastings](https://avatars.githubusercontent.com/u/42999?v=4)](https://github.com/jphastings "jphastings (1 commits)")

### Embed Badge

![Health badge](/badges/mikespub-codedread-kthoom/health.svg)

```
[![Health](https://phpackages.com/badges/mikespub-codedread-kthoom/health.svg)](https://phpackages.com/packages/mikespub-codedread-kthoom)
```

###  Alternatives

[laravel-admin-ext/grid-lightbox

Turn your grid into a lightbox &amp; gallery

58186.3k2](/packages/laravel-admin-ext-grid-lightbox)[wapplersystems/ws-scss

Compiles SCSS to CSS at runtime with caching, TypoScript variables and EXT: import support

11149.9k8](/packages/wapplersystems-ws-scss)[hannesvdvreken/pip

The Polygon class

1738.8k1](/packages/hannesvdvreken-pip)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
