The official Node.js package for Nyora — script your library,
search ~960 manga sources, and fetch chapters and pages straight from
JavaScript or TypeScript. A thin cloud client: no local engine to compile, no
companion app to launch. Just npm install.
npm install nyora-sdk
This single install gives you three things, documented as clearly separate surfaces:
import { Nyora } from "nyora-sdk").nyora-cli command-line tool (and its terminal reader / TUI).NyoraSync) — account + library sync across devices.Looking for the Python twin? See nyora.pages.dev/docs/python.
Nyora is a cloud-only SDK. The default Nyora client is a thin wrapper
over Node's native fetch that talks to the Nyora cloud helper
(https://api.hasanraza.tech). The helper runs the kotatsu-parsers engine
(~960 sources) server-side, so the package has nothing to compile and no
companion app to launch. Point the client at your own helper by passing
baseUrl or setting NYORA_BASE_URL.
A separate NyoraSync client signs in against the Nyora sync server
(https://stream.hasanraza.tech) so your favourites, history, and bookmarks
follow you across devices.
npm install nyora-sdk)Import the SDK and drive the cloud helper from your own code:
import { Nyora } from "nyora-sdk";
const client = new Nyora();
const source = await client.sources.find("mangadex"); // resolve by id or fuzzy name
const page = await client.manga.popular(source.id); // SearchPage of entries
const entry = page.entries[0];
const details = await client.manga.details(source.id, entry.url, { title: entry.title });
const pages = await client.manga.pages(source.id, details.chapters[0].url);
for (const p of pages) console.log(p.url);
client.close(); // no-op, kept for API compatibility
The client exposes two typed services:
client.sources — list() the loaded sources, catalog() the full catalog, or find(...) a source by id or fuzzy name.client.manga — popular(...), latest(...), search(...), details(...), and pages(...).→ Library guide · API reference: Nyora, MangaService, SourcesService
nyora-cli)Install globally to get the nyora-cli command:
npm install -g nyora-sdk
nyora-cli # bare command launches the interactive TUI
nyora-cli sources --search asura # list/filter sources
nyora-cli popular -s mangadex # browse a source
nyora-cli --json search -s asura "Solo Leveling"
nyora-cli download -s mangadex "<chapter-url>" # save a chapter as .cbz
NyoraSync)Sign in once and sync your library across devices:
import { NyoraSync } from "nyora-sdk";
const sync = new NyoraSync();
await sync.signIn("you@example.com", "password");
await sync.upsert("nyora_favourite", [{ manga_id: "…", added_at: new Date().toISOString() }]);
const favs = await sync.select("nyora_favourite");
→ Sync guide · API reference: NyoraSync
| Guide | What it covers |
|---|---|
| Quickstart | Install, first script, first CLI run. |
| Library | The Nyora cloud client: every service method, types, and errors. |
| CLI | The complete nyora-cli manual — every subcommand, flags, exit codes, recipes. |
| TUI | The interactive terminal reader: start, flow, navigation, sync, non-TTY behavior. |
| Sync | NyoraSync: register / sign in, upsert/select, tables, token storage. |
| Agents | Using Nyora from an AI agent / programmatically, with an intent cheat-sheet. |
The full typed API is generated from the source by TypeDoc. Start with:
fetch transport..aix proxy sources for stock Aidoku.Licensed under Apache-2.0. Nyora is not affiliated with any of the manga sources it can access.