Engineered for panels and spreads
Seamlessly switch between continuous vertical webtoon scroll and dual-page Japanese right-to-left spreads with instant page buffering.
A unified reader and player for desktop & Android. Inspired by Aniyomi and Mihon, rebuilt on Tauri 2 with local-first storage and sandboxed TypeScript plugins.
Stop juggling four different apps with four different libraries. Woyomi unifies every format into a single, cohesive workflow.
Seamlessly switch between continuous vertical webtoon scroll and dual-page Japanese right-to-left spreads with instant page buffering.
High-performance native HLS and MP4 video playback. Auto-tracks episode history, manages seasons, and remembers timestamps across restarts.
Clean typography controls designed for multi-hour reading sessions. Tailor font sizes, line height, margins, and OLED black or warm sepia tones.
Group multi-part movies and multi-season series into a single clean catalog entry with unified status tracking and metadata inspection.
A single taxonomy for all your content
Organize across Reading, Watching, Plan to Watch, Completed, and Paused. Statuses, chapter read counts, and episode timestamps stay unified in local SQLite.
No internet? No problem.
Save manga chapters, novel text, and direct MP4 streams straight to your local device for seamless offline reading anywhere.
No intrusive sidebars during reading, no video player ads, and zero clutter. Every pixel serves your media.
Rich metadata inspection, multi-tag filtering, one-click reading status transitions, and single-click episode mark-as-read.
Keyboard shortcuts, custom zoom steps, automatic page fitting, and subtle floating HUD that disappears when you read.
On smaller touchscreens, Woyomi naturally shifts navigation to a bottom tab bar with thumb-reach actions, compact horizontal rails, and swipe gestures.
Woyomi is an open player engine. It ships with no pre-bundled scrapers — you install and manage only the sources you trust.
Each source plugin runs inside its own isolated Web Worker thread with zero raw DOM access and strict memory isolation.
Plugins talk to an injected context interface with rate limiting, header customization, and built-in HTML/JSON parsers.
Remote plugin packages are cryptographically validated against manifest hashes before executing in your client.
Plugin repositories can live anywhere — GitHub Releases, Cloudflare R2, or any static HTTPS endpoint.
import { MediaSource, MediaItem, SourceContext } from '@woyomi/plugin-sdk'
export class MangaVaultSource implements MediaSource {
readonly id = 'community.mangavault'
readonly name = 'Manga Vault'
readonly mediaType = 'manga'
readonly apiVersion = 1
// Discovers home rails with injected transport
async getTrending(ctx: SourceContext): Promise<MediaItem[]> {
const res = await ctx.fetch('https://api.vault.org/v1/popular')
const json = await res.json()
return json.items.map((item: any) => ({
id: item.slug,
title: item.title,
coverUrl: item.poster_image,
format: 'manga',
status: item.is_completed ? 'completed' : 'ongoing'
}))
}
} Download v0.1.0 preview builds from GitHub Releases or compile from source with your own Rust toolchain.
Native desktop shell with hardware acceleration for Windows 10 and 11.
Universal AppImage and native packages for Ubuntu, Debian, Fedora, and Arch.
Touch-optimized mobile shell with bottom navigation for Android 10+.