{"id":13658021,"url":"https://github.com/codedread/kthoom","last_synced_at":"2025-04-24T08:31:03.481Z","repository":{"id":9984014,"uuid":"64002841","full_name":"codedread/kthoom","owner":"codedread","description":"Comic Book Reader in the Browser","archived":false,"fork":true,"pushed_at":"2025-03-12T22:33:05.000Z","size":6409,"stargazers_count":137,"open_issues_count":19,"forks_count":26,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-17T15:18:52.525Z","etag":null,"topics":["books","cbr","cbt","cbz","comic-reader","comics","ebook","ebook-reader","ebooks","epub","epub-reader","javascript","unrar","unzip"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"gitter-badger/kthoom","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codedread.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-23T06:35:10.000Z","updated_at":"2025-02-23T19:46:48.000Z","dependencies_parsed_at":"2023-01-16T20:00:14.580Z","dependency_job_id":null,"html_url":"https://github.com/codedread/kthoom","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedread%2Fkthoom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedread%2Fkthoom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedread%2Fkthoom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedread%2Fkthoom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codedread","download_url":"https://codeload.github.com/codedread/kthoom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250591941,"owners_count":21455469,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["books","cbr","cbt","cbz","comic-reader","comics","ebook","ebook-reader","ebooks","epub","epub-reader","javascript","unrar","unzip"],"created_at":"2024-08-02T05:00:55.175Z","updated_at":"2025-04-24T08:31:00.521Z","avatar_url":"https://github.com/codedread.png","language":"JavaScript","readme":"[![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)\n[![CodeQL](https://github.com/starnowski/posmulten/workflows/CodeQL/badge.svg)](https://github.com/codedread/kthoom/actions/workflows/codeql-analysis.yml)\n\n# kthoom\n\n![kthoom logo](images/logo.svg)\n\nkthoom is a comic book / ebook reader that runs in the browser using modern web technologies such as\nJavaScript, HTML5, the [File System Access API](https://wicg.github.io/file-system-access/), ES\nModules, Web Workers, Typed Arrays, and more.  It can open files and directories from your local\nfile system, the network, or Google Drive. It can be embedded in larger web apps.\n\nIt is built using pure JavaScript with no external dependencies and no JS frameworks. It can run\nout of the box without any build / compile / transpile / pack step, straight from the browser.\nTry it here:\n\n[OPEN KTHOOM COMIC BOOK READER](https://codedread.com/kthoom/index.html).\n\nYou can also specify a comic book to load via the ?bookUri parameter.  Some examples:\n\n  * https://codedread.github.io/kthoom/index.html?bookUri=examples/codedread.cbz\n  * https://codedread.github.io/kthoom/index.html?bookUri=examples/alice-in-wonderland.epub\n\nOr a [comic book reading list](https://github.com/codedread/kthoom/tree/master/reading-lists) via\nthe ?readingListUri parameter.\n\n## Documentation\n\n### File Support\n\n  * .cbz (zip)\n  * .cbr ([rar](https://codedread.github.io/bitjs/docs/unrar.html))\n  * .cbt (tar)\n  * .epub (Alpha-level support, a work-in-progress, see\n    [issue list](https://github.com/codedread/kthoom/labels/epub))\n\n### Keyboard Shortcuts\n  * O / D / U: Open books by choosing files/directories from computer or by URL.\n  * Right/Left: Next/Previous page of book.\n  * Shift + Right/Left: Last/First page of book.\n  * [ / ]: Prev / Next book\n  * H/W: Scale to height/width\n  * B: Best Fit mode\n  * R/L: Rotate right/left\n  * 1/2: Show 1 or 2 pages side-by-side in the viewer.\n  * 3: Long Strip viewer.\n  * F: Toggle fullscreen.\n  * P: Hide metadata viewer and reading stack panel buttons.\n  * S: Toggle the Reading Stack tray open.\n  * T: Toggle the Metadata Tag Viewer tray open.\n  * ?: Bring up Help screen\n\nYou can tell kthoom to open as many books as you like in the Choose Files dialog (shift-select all\nthe books you want to open). Then navigate between books using the square bracket keys or use the\nReading Stack tray.\n\n### Binary File Support\n\nNOTE: kthoom loads in local compressed files and decompresses them in the browser, which means that\nkthoom has an implementation of unzip, unrar and untar in JavaScript. This code lives in its own\nlibrary: [BitJS](https://github.com/codedread/bitjs), a more general purpose library to deal with\nbinary file data in native JavaScript. Kthoom keeps an up-to-date version of bitjs in its\nrepository.\n\n### JSON Reading Lists\n\nkthoom supports loading lists of comic book files at once.  Think audio playlists but for comic\nbooks!  See [JSON Reading Lists](https://github.com/codedread/kthoom/tree/master/reading-lists) for\nmore.\n\n### URL parameters\n\n  * alwaysOptimizedForStreaming=true: Tells kthoom to render pages immediately as they are\n    de-compressed (this might not work for all comic books as some are not compressed in the order\n    of reading)\n  * bookUri=\u0026lt;url\u0026gt;: Tells kthoom to open the given book (cbz/cbr file).\n  * doNotPromptOnClose=true: Tells kthoom not to ask the user if they are sure they want to close.\n  * preventUserOpeningBooks=true: Prevents users from opening files in kthoom (useful for hosting\n    kthoom from a web app).\n  * readingListUri=\u0026lt;url\u0026gt;: Tells kthoom to load the given JSON Reading List (jrl) file and open\n    the first file in that list.\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodedread%2Fkthoom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodedread%2Fkthoom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodedread%2Fkthoom/lists"}