Developers
Everything Nyora reads is powered by one cloud catalog — and you can use it directly.
Two SDKs, Python and JavaScript, are thin clients over
the Nyora cloud helper at api.nyora.xyz (the kotatsu-parsers engine,
~960 sources) and expose an identical, helper-compatible REST API. Nothing to bundle,
nothing to keep fresh — Nyora() points at the cloud by default, in the
language you already work in. Read like the world can wait.
Python SDK
pip install nyora — a pure-Python client for the Nyora cloud, the nyora-cli command and an interactive TUI. Talks to the cloud helper, so ~960 sources stay current with no local engine.
Open Python docsJavaScript SDK
npm install nyora-sdk — the same cloud client for Node, with the exact same API as the Python SDK. Nyora() points at api.nyora.xyz by default.
Open JS docsCloud helper & REST API
The Nyora cloud helper REST API (api.nyora.xyz — the kotatsu-parsers engine, ~960 sources) and the Nyora Sync API (account + library sync).
Read the specQuick start
Install once, then pull popular manga and download a chapter as a .cbz.
Python
pip3 install nyora
# launch the TUI
nyora-cli
# or use the library
python -c "import nyora; print(nyora.sources())" JavaScript
npm install nyora-sdk # or: npm i -g nyora-sdk
# launch the TUI
nyora-cli
# download a chapter as .cbz
nyora-cli download What you can build
- Library scripts & bots — search sources, fetch details and page images programmatically.
- Bulk downloaders —
nyora-cli downloadwrites ready-to-read.cbzarchives. - Synced companion apps — sign in with
NyoraSyncand read or write the same cloud library the native apps use. - Custom front-ends — point any UI at the cloud helper REST API (
api.nyora.xyz) that both SDKs wrap.
Nyora Sync
Both SDKs ship Nyora Sync — NyoraSync in Python
(nyora.sync.NyoraSync) and JavaScript (NyoraSync from
nyora-sdk). Register or sign in with OAuth2 + JWT against
sync.nyora.xyz, then upsert() and select()
your manga, favourites, history and bookmarks with last-write-wins merges. Tokens
persist to ~/.config/nyora/sync.json, so a session survives restarts.
It is one account across the whole ecosystem: the same login works in
the iOS app, the Python and JavaScript SDK TUIs, and the SDKs themselves. In the TUIs,
type sync for the account menu, lib for your synced library,
and answer the “Favourite to library?” prompt in a title's details — favourites
you add anywhere show up everywhere you sign in.
Python
from nyora.sync import NyoraSync
sync = NyoraSync()
sync.sign_in("you@example.com", "password")
sync.upsert("nyora_favourite", rows)
rows = sync.select("nyora_favourite", since=0) JavaScript
import { NyoraSync } from 'nyora-sdk';
const sync = new NyoraSync();
await sync.signIn('you@example.com', 'password');
await sync.upsert('nyora_favourite', rows);
const rows = await sync.select('nyora_favourite', 0); Ready to wire it up? See the cloud helper & REST API reference for the endpoints both SDKs call and the full endpoint table.